大資料學習 Mahout入門

2021-07-30 18:47:39 字數 3900 閱讀 2321

實驗環境: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

192.168.40.4 fee... hadoop

./start-all.sh

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上安...