開源框架Mahout配置
開源框架Mahout配置
機器學習這兩年特別火,ATB使勁開百萬到幾百萬年薪招美國牛校的機器學習方向博士,作為一個技術控,也得折騰下,就這樣來初步折騰下Mahout這個機器學習的主流開源框架。
一、Mahout簡介
Mahout的中文意思:馭象的人,再看看Mahout的logo,騎在象頭上的那個Mahout。機器學習是人工智能的一個分支,它涉及通過一些技術來允許計算機根據之前的經驗改善其輸出。此領域與數據挖掘密切相關,並且經常需要使用各種技巧,包括統計學、概率論和模式識別等。雖然機器學習並不是一個新興領域,但它的發展速度是毋庸置疑的。許多大型公司,包括 IBM、Google、Amazon、Yahoo
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/ 下載最新版本包
wget http://archive.apache.org/dist/mahout/0.12.2/apache-mahout-distribution-0.12.2.tar.gz
2、解壓
tar zxvf apache-mahout-distribution-0.12.2.tar.gz
3、配置環境變量(必備前提是hadoop已完全配置好並能正常使用,hadoop的部署文檔很多了,我就不說了。)
配置Mahout環境變量
export MAHOUT_HOME=/root/apache-mahout-distribution-0.12.2
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
4、驗證Mahout是否安裝成功
運行命令mahout,若列出一些算法就配置成功,如圖:
三、Mahout 之入門使用
1、啟動Hadoop集群
2、下載測試數據,把這個文件放在$MAHOUT_HOME/testdata目錄下:
/root/apache-mahout-distribution-0.12.2
mkdir testdata
cd testdata
wget http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
3、使用Mahout中的kmeans聚類算法,執行命令:
mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
大概28秒完成聚類,結果如下圖: (根據集群機器的硬件配置,有人說要10分鐘)
註意:當你運行上面命令看到如下的代碼時以為是錯的,其實不是,原因:MAHOUT_LOCAL:設置是否本地運行,如果設置該參數就不會在hadoop運行了,一旦設置這個參數那HADOOP_CONF_DIR
和HADOOP_HOME兩個參數就自動失效了。
MAHOUT_LOCAL is not set, so we don’t add HADOOP_CONF_DIR to classpath.
no HADOOP_HOME set , running locally
4、查看聚類分析結果,結果會在根目錄建立output新文件夾,如下圖表示mahout配置正確且運行正常:
好了,先到這,下次再深入研究。
本文出自 “李世龍” 博客,謝絕轉載!
開源框架Mahout配置