首頁 > 軟體

Mahout原始碼目錄說明

2020-06-16 17:16:01
Mahout專案是由多個子專案組成的,各子專案分別位於原始碼的不同目錄下,下面對Mahout的組成進行介紹:
1、mahout-core:核心程式模組,位於/core目錄下;
2、mahout-math:在核心程式中使用的一些資料通用計算模組,位於/math目錄下;
3、mahout-utils:在核心程式中使用的一些通用的工具性模組,位於/utils目錄下;
上述三個部分是程式的主題,儲存所有mahout專案的原始碼。
另外,mahout提供了樣例程式,分別在taste-web和examples目錄下:
4、taste-web:利用mahout推薦演算法而建立的基於WEB的個性化推薦系統demo;
5、examples:對mahout中各種機器學習演算法的應用程式;
6、bin:bin目錄下只有一個名為mahout的檔案,是一個shell指令碼檔案,用於在Hadoop平台的命令列下呼叫mahout中的程式;
在buildtools、eclipse和distribution目錄下,有mahout相關的組態檔
7、buildtools目錄下是用於核心程式構建的組態檔,以mahout-buildtools的模組名稱在mahout的pom.xml檔案中進行說明;
8、eclipse下的xml檔案是對利用eclipse開發mahout的設定說明;
9、distribution目錄下有兩個組態檔:bin.xml和src.xml,進行mahou安裝時的一些設定資訊。
(在開發的時候一般很少對這個目錄下的檔案進行修改,所以不用太關注,知道大體什麼意思就ok)
 
另 外,在mahout的下載地址下可以看到有個資料夾與mahout處於同一級別,它是mahout專案的分支專案—mahout- collections,用於實現了核心程式中使用的集合類操作,該模組獨立於mahout進行開發,是對標準jdk中關於集合類的修改,使其可以適應數 據密集型專案的開發。

在Mahout實現的機器學習演算法見下表

演算法類

演算法名

中文名

分類演算法

Logistic Regression

邏輯回歸

Bayesian

貝葉斯

SVM

支援向量機

Perceptron

感知器演算法

Neural Network

神經網路

Random Forests

隨機森林

Restricted Boltzmann Machines

有限波爾茲曼機

聚類演算法

Canopy Clustering

Canopy聚類

K-means Clustering

K均值演算法

Fuzzy K-means

模糊K均值

Expectation Maximization

EM聚類(期望最大化聚類)

Mean Shift Clustering

均值漂移聚類

Hierarchical Clustering

層次聚類

Dirichlet Process Clustering

狄里克雷過程聚類

Latent Dirichlet Allocation

LDA聚類

Spectral Clustering

譜聚類

關聯規則挖掘

Parallel FP Growth Algorithm

並行FP Growth演算法

回歸

Locally Weighted Linear Regression

區域性加權線性回歸

降維/維約簡

Singular Value Decomposition

奇異值分解

Principal Components Analysis

主成分分析

Independent Component Analysis

獨立成分分析

Gaussian Discriminative Analysis

高斯判別分析

進化演算法

並行化了Watchmaker框架

 

推薦/協同過濾

Non-distributed recommenders

Taste(UserCF, ItemCF, SlopeOne)

Distributed Recommenders

ItemCF

向量相似度計算

RowSimilarityJob

計算列間相似度

VectorDistanceJob

計算向量間距離

非Map-Reduce演算法

Hidden Markov Models

隱馬爾科夫模型

集合方法擴充套件

Collections

擴充套件了java的Collections類

Mahout最大的優點就是基於hadoop實現,把很多以前執行於單機上的演算法,轉化為了MapReduce模式,這樣大大提升了演算法可處理的資料量和處理效能。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-04/143208.htm


IT145.com E-mail:sddin#qq.com