1. 程式人生 > >開源框架Mahout配置

開源框架Mahout配置

開源框架mahout配置


開源框架Mahout配置

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

一、Mahout簡介

Mahout的中文意思:馭象的人,再看看Mahout的logo,騎在象頭上的那個Mahout。機器學習是人工智能的一個分支,它涉及通過一些技術來允許計算機根據之前的經驗改善其輸出。此領域與數據挖掘密切相關,並且經常需要使用各種技巧,包括統計學、概率論和模式識別等。雖然機器學習並不是一個新興領域,但它的發展速度是毋庸置疑的。許多大型公司,包括 IBM、GoogleAmazon、Yahoo

! 和 Facebook,都在自己的應用程序中實現了機器學習算法。此外,還有許多公司在自己的應用程序中應用了機器學習,以便學習用戶以及過去的經驗,從而獲得收益。

技術分享

技術分享

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配置