一. 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安裝、配置
1. 下載Mahout
http://archive.apache.org/dist/mahout/
2. 解壓
tar -zxvf mahout-distribution-0.9.tar.gz
3. 配置環境變量
3.1、配置Mahout環境變量
# set mahout environment
export MAHOUT_HOME=/home/slshop/mahout/mahout-distribution-0.9
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
3.2、配置Mahout所需的Hadoop環境變量
# set hadoop environment
export HADOOP_HOME=/home/slshop/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
4. 驗證Mahout是否安裝成功: 執行命令mahout。若列出一些算法,則成功
三. 使用Mahout之入門級使用
1. 啓動Hadoop
2.下載測試數據 http://archive.ics.uci.edu/ml/databases/synthetic_control/ 鏈接中的synthetic_control.data
3.上傳測試數據 hadoop fs -putsynthetic_control.data /user/root/testdata
4. 使用Mahout中的kmeans聚類算法,執行命令:mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
5 查看聚類結果: 執行hadoop fs -ls /user/root/output