轉】機器學習開源框架Mahout配置與入門研究

原博文出自於:http://www.ha97.com/5803.html    感謝!html

 

  PS:機器學習這兩年特別火,ATB使勁開百萬到幾百萬年薪招美國牛校的機器學習方向博士,做爲一個技術控,也得折騰下,就這樣來初步折騰下Mahout這個機器學習的主流開源框架。java

 

 

 

 

 

1、Mahout簡介算法

  查了Mahout的中文意思:馭象的人,再看看Mahout的logo,騎在象頭上的那個Mahout。機器學習是人工智能的一個分支,它涉及經過一些技術來容許計算機根據以前的經驗改善其輸出。此領域與數據挖掘密切相關,而且常常須要使用各類技巧,包括統計學、機率論和模式識別等。雖然機器學習並非一個新興領域,但它的發展速度是毋庸置疑的。許多大型公司,包括 IBM、Google、Amazon、Yahoo! 和 Facebook,都在本身的應用程序中實現了機器學習算法。此外,還有許多公司在本身的應用程序中應用了機器學習,以便學習用戶以及過去的經驗,從而得到收益。apache

 

 

 

    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類

 

 

 

 

 

 

 

2、Mahout安裝配置(網上不少相關文檔是錯誤的,我這個方法能成功運行)網絡

一、下載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
 
二、解壓
tar zxvf apache-mahout-distribution-0.12.2.tar.gz
 
三、配置環境變量(必備前提是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
 
四、驗證Mahout是否安裝成功
運行命令mahout,若列出一些算法就配置成功,如圖:
 

 

 

 

 

 

 

3、Mahout 之入門使用
一、啓動Hadoop集羣
二、下載測試數據,把這個文件放在$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
 三、使用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
 
 
 
四、查看聚類分析結果,結果會在根目錄創建output新文件夾,以下圖表示mahout配置正確且運行正常:
 

 

 

 

好了,先到這,下次再深刻研究。

 : http://www.ha97.com/5803.htmldom

相關文章
相關標籤/搜索