一、Mahout簡介
Mahout 是一個很強大的數據挖掘工具,是一個分佈式機器學習算法的集合,包括:被稱爲Taste的分佈式協同過濾的實現、分類、聚類等。Mahout最大的優點就是基於hadoop實現,把很多以前運行於單機上的算法,轉化爲了MapReduce模式,這樣大大提升了算法可處理的數據量和處理性能。
在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安裝、配置
一、下載Mahout
http://archive.apache.org/dist/mahout/
二、解壓
tar -zxvf mahout-distribution-0.9.tar.gz
三、配置環境變量
3.1、配置Mahout環境變量
# set mahout environment
export MAHOUT_HOME=/usr/local/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATHma
四、驗證Mahout是否安裝成功
執行命令mahout。若列出一些算法,則成功,如圖:
五、使用Mahout 之入門級使用
5.1、啓動Hadoop
5.2、下載測試數據
a.下載一個文件synthetic_control.data,下載地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,並把這個文件放在$MAHOUT_HOME目錄下。
5.3、上傳測試數據
c.創建測試目錄testdata,並把數據導入到這個tastdata目錄中(這裏的目錄的名字只能是testdata)
hadoop fs -mkdir –p /user/root/testdata
hadoop fs -put synthetic_control.data /user/root/testdata
5.4 使用Mahout中的kmeans聚類算法,執行命令:
mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
花費5分鐘左右完成聚類。
5.5 查看聚類結果
執行hadoop fs -ls/user/root/output,查看聚類結果。