實驗環境:shiyanlou
centos6.6 64
jdk:1.7.0_55 64
hadoop:1.1.2
mahout是apache旗下的乙個開源專案,提供一些可擴充套件的機器學習領域經典演算法的賓實現,幫助開發人員快捷地建立智慧型應用程式。
mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。
vi /et
cd /home/shiyanlou/install-pack
tar -xzf mahout-distribution
-0.6
.tar.gz
mv mahout-distribution
-0.6
設定環境變數
啟動hadoop
sudo vi /etc/hosts./start-all.sh192.168.40.4 fee... hadoop
jps使用 kmeans演算法
kmeans是聚類演算法中比較簡單的一種。聚類屬於無監督學習,以往的回歸、樸素貝葉斯、svm等都是有類別標籤y的,也就是說樣例中已經給出了樣例的分類。而聚類的樣本中沒有給定y,只有特徵x。比如假設宇宙中的星星中以表示成三維空間中的點集(x,y,x)。聚類的目的是找到每個樣本x潛在的odkly,並將同類別y的樣本x放在一起。比如上面的星星,聚類後結果是乙個星團,星團裡面的點相互距離比較近,星團間的星星距離就比較遠。
可使用如下命令進行kmeans演算法測試:
mahout org.apache
.mahout
.clustering
.syntheticcontrol
.kmeans
.job
檢視結果ll
執行20newsgroup
演算法流程
樸素貝葉斯分類是一種簡單的分類演算法。其思想基礎是:對於給出的待分類項,求解在此項出現的條件下各個類別概率哪個最大,就認為此待分類項屬於哪個類別。
這二十個新聞組資料集合是收集大約20,000新聞組文件,均勻的分布在20個不同的集合。這20個新聞組集合採集最近流行的資料集合到文字程式中作為實驗,根據機器學習技術。例如文字分類,文字聚集。我們將使用mahout的bayes classifier創造乙個模型,它將乙個新文件分類到這20個新聞組集合範例演示。
實現過程 mahout 0.6
cd /home/shiyanlou/install-pack/class9
tar -xzf
20news-bydate
.tar.gz
0.6/data
mv 20news-bydate
-t0.6/data
0.6/data
建立訓練集
建立測試集
上傳資料到hdfs
在hdfs中新建/class9/20news資料夾,把生成的訓練集和測試集上傳到hdfs的/class9/20news目錄中:
hadoop fs -mkdir /class9/20news
0.6/data/bayes-train
-input /class9/20news
0.6/data/bayes-test
-input /class9/20news
hadoop fs -ls /class9/20news
hadoop fs -ls /class9/20news/bayes-test
-input
訓練貝葉斯分類器
使用trainclassifier類訓練在hdfs中/class9/20news/bayes-train-input的資料,生成的模型放到/class9/ 20news/newsmodel 目錄中:
mahout trainclassifier \
-i hdfs://hadoop:9000/class9/20news/bayes-train-input/ \
-o hdfs://hadoop:9000/class9/20news/newsmodel \
-type cbayes \
-ng 2 \
-source hdfs
可以通過hadoop觀察到訓練作業執行過程。
檢視生成模型
hadoop fs -lsr /class9/20news/newsmodel
測試貝葉斯分類器mahout testclassifier \
-m hdfs://hadoop:9000/class9/20news/newsmodel \
-d hdfs://hadoop:9000/class9/20news/bayes-test-input \
-type cbayes \
-ng 2 \
-source hdfs \
-method mapreduce
檢視結果
結果是乙個混合矩陣。
實驗過程最後兩步未能如期輸出結果,待檢查。
mahout 0.7+版本
在0.7版本的安裝目錄下$mahout_home/examples/bin下有個指令碼檔案classifu-20newsgroups.sh,這個指令碼中執行過程是和前面分布執行結果是一致的,只不過將各個api用shell指令碼封裝到一起了。從0.7版本開始,mahout移除了命令列呼叫的api:prepare20newsgroups、trainclassifier和testclassifier,只能通過shell指令碼執行。
執行 $mahout_home/examples/bin/classify-20newsgroups.sh 四個選項中選擇第乙個選項.
大資料入門學習?
第一部分 了解大資料平台架構 大資料有非常大的價值,不管是從幫助企業創造營收還是從提高效率 節省企業成本角度。大資料要是做好了,將會是乙個企業增長的發動機,推動業務突飛猛進的發展。要實現大資料的價值,真正讓大資料為企業創造貢獻,首先必須要積累有大資料,把日常的業務和使用者行為資料收集起來。有些資料是...
大資料入門學習(一) 初識大資料
大資料的定義 大資料 big data 又稱為巨量資料,指需要新處理模式才能具有更強的決策力 洞察力和流程優化能力的海量 高增長率和多樣化的資訊資產。大資料技術,是指從各種各樣型別的資料中,快速獲得有價值資訊的能力。適用於大資料的技術,包括大規模並行處理 mpp 資料庫,資料探勘電網,分布式檔案系統...
大資料學習 linux入門學習
2017 6 6,開始利用業餘時間學習大資料技術,第一步,在本機安裝虛擬機器,安裝虛擬linux系統,虛擬機器安裝vmware,虛擬系統選擇redhat6.5。其它收穫 vmware安裝時,須將電腦bios中vt開啟。linu學習中避免使用圖形介面,要能折騰,不要規避系統裝機。要學會在linux上安...