<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Hadoop入門進階課程9--Mahout介紹、安裝與應用案例

      本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,博主為石山園,博客地址為 http://www.rzrgm.cn/shishanyuan  。該系列課程是應邀實驗樓整理編寫的,這里需要贊一下實驗樓提供了學習的新方式,可以邊看博客邊上機實驗,課程地址為 https://www.shiyanlou.com/courses/237

      【注】該系列所使用到安裝包、測試數據和代碼均可在百度網盤下載,具體地址為 http://pan.baidu.com/s/10PnDs,下載該PDF文件

      1搭建環境

      部署節點操作系統為CentOS,防火墻和SElinux禁用,創建了一個shiyanlou用戶并在系統根目錄下創建/app目錄,用于存放Hadoop等組件運行包。因為該目錄用于安裝hadoop等組件程序,用戶對shiyanlou必須賦予rwx權限(一般做法是root用戶在根目錄下創建/app目錄,并修改該目錄擁有者為shiyanlou(chown R shiyanlou:shiyanlou /app)。

      Hadoop搭建環境:

      l  虛擬機操作系統: CentOS6.6  64位,單核,1G內存

      l  JDK1.7.0_55 64

      l  Hadoop1.1.2

      2Mahout介紹

      Mahout Apache Software FoundationASF) 旗下的一個開源項目,提供一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。AMahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴展到云中。

      Mahout的意思是大象的飼養者及驅趕者。Mahout 這個名稱來源于該項目(有時)使用 Apache Hadoop —其徽標上有一頭黃色的大象 —來實現可伸縮性和容錯性。

      Mahout 項目是由 Apache Lucene(開源搜索)社區中對機器學習感興趣的一些成員發起的,他們希望建立一個可靠、文檔翔實、可伸縮的項目,在其中實現一些常見的用于集群和分類的機器學習算法。該社區最初基于 Ng et al. 的文章 “Map-Reduce for Machine Learning on Multicore”(見 參考資料),但此后在發展中又并入了更多廣泛的機器學習方法。Mahout 的目標還包括:

      l  建立一個用戶和貢獻者社區,使代碼不必依賴于特定貢獻者的參與或任何特定公司和大學的資金。

      l  專注于實際用例,這與高新技術研究及未經驗證的技巧相反。

      l  提供高質量文章和示例

      3搭建Mahout環境

      3.1 部署過程

      3.1.1 下載Mahout

      Apache下載最新的Mahout軟件包,點擊下載會推薦最快的鏡像站點,以下為下載地址:http://archive.apache.org/dist/mahout/0.6/

      clip_image002

      也可以在/home/shiyanlou/install-pack目錄中找到該安裝包,解壓該安裝包并把該安裝包復制到/app目錄中

      cd /home/shiyanlou/install-pack

      tar -xzf mahout-distribution-0.6.tar.gz

      mv mahout-distribution-0.6 /app/mahout-0.6

      clip_image004

      3.1.2 設置環境變量

      使用如下命令編輯/etc/profile文件:

      sudo vi /etc/profile

      聲明mahouthome路徑和在path加入bin的路徑:

      export MAHOUT_HOME=/app/mahout-0.6

      export MAHOUT_CONF_DIR=/app/mahout-0.6/conf

      export PATH=$PATH:$MAHOUT_HOME/bin

      clip_image006

      編譯配置文件/etc/profile,并確認生效

      source /etc/profile

      echo $PATH

      3.1.3 驗證安裝完成

      重新登錄終端,確保hadoop集群啟動,鍵入mahout --help命令,檢查Mahout是否安裝完好,看是否列出了一些算法:

      mahout --help

      clip_image008

      3.2 測試例子

      3.2.1 下載測試數據

      下載一個文件synthetic_control.data,下載地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,也可以在/home/shiyanlou/install-pack/class9目錄中找到該測試數據文件,把這個文件放在$MAHOUT_HOME/testdata目錄下

      cd /home/shiyanlou/install-pack/class9

      mkdir /app/mahout-0.6/testdata

      mv synthetic_control.data /app/mahout-0.6/testdata

      clip_image010

      3.2.2 啟動Hadoop

      通過下面命令啟動hadoop并通過jps查看進程

      cd /app/hadoop-1.1.2/bin

      ./start-all.sh

      jps

      clip_image012

      3.2.3 使用kmeans算法

      使用如下命令進行kmeans算法測試:

      cd /app/mahout-0.6/

      mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

      clip_image014

      這里需要說明下,當你看到下面的代碼時以為是錯的,其實不是,原因: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

      3.2.4 查看結果

      結果會在根目錄建立output新文件夾,如果下圖結果表示mahout安裝正確且運行正常:

      cd /app/mahout-0.6/output

      ll

      clip_image016

      4測試例子:運行20newsgroup

      4.1 算法流程

      樸素貝葉斯分類是一種十分簡單的分類算法,樸素貝葉斯的思想基礎是這樣的:對于給出的待分類項,求解在此項出現的條件下各個類別出現的概率哪個最大,就認為此待分類項屬于哪個類別。

      這二十個新聞組數據集合是收集大約20,000新聞組文檔,均勻的分布在20個不同的集合。這20個新聞組集合采集最近流行的數據集合到文本程序中作為實驗,根據機器學習技術。例如文本分類,文本聚集。我們將使用MahoutBayes Classifier創造一個模型,它將一個新文檔分類到這20個新聞組集合范例演示

      clip_image018

       

      4.2 實現過程(mahout 0.6版本)

      4.2.1 下載數據并解壓數據

      下載20Newsgroups數據集,地址為 http://qwone.com/~jason/20Newsgroups/ ,下載20news-bydate.tar.gz數據包,也可以在/home/shiyanlou/install-pack/class9目錄中找到該測試數據文件:

      clip_image020

      解壓20news-bydate.tar.gz數據包,解壓后可以看到兩個文件夾,分別為訓練原始數據和測試原始數據:

      cd /home/shiyanlou/install-pack/class9

      tar -xzf 20news-bydate.tar.gz

      clip_image022

      mahout根目錄下建data文件夾,然后把20news訓練原始數據和測試原始數據遷移到該文件夾下:

      mkdir /app/mahout-0.6/data

      mv 20news-bydate-t* /app/mahout-0.6/data

      ll /app/mahout-0.6/data

      clip_image024

      4.2.2 建立訓練集

      通過如下命令建立訓練集,訓練的數據在20news-bydate-train目錄中,輸出的訓練集目錄為 bayes-train-input

      cd /app/mahout-0.6

      mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \

      -p /app/mahout-0.6/data/20news-bydate-train \

      -o /app/mahout-0.6/data/bayes-train-input \

      -a org.apache.mahout.vectorizer.DefaultAnalyzer \

      -c UTF-8

      clip_image026

      4.2.3 建立測試集

      通過如下命令建立訓練集,訓練的數據在20news-bydate-test目錄中,輸出的訓練集目錄為 bayes-test-input

      mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \

      -p /app/mahout-0.6/data/20news-bydate-test \

      -o /app/mahout-0.6/data/bayes-test-input \

      -a org.apache.mahout.vectorizer.DefaultAnalyzer \

      -c UTF-8

      clip_image028

      4.2.4 上傳數據到HDFS

      HDFS中新建/class9/20news文件夾,把生成的訓練集和測試集上傳到HDFS/class9/20news目錄中:

      hadoop fs -mkdir /class9/20news

      hadoop fs -put /app/mahout-0.6/data/bayes-train-input /class9/20news

      hadoop fs -put /app/mahout-0.6/data/bayes-test-input /class9/20news

      hadoop fs -ls /class9/20news

      hadoop fs -ls /class9/20news/bayes-test-input

      clip_image030

      4.2.5 訓練貝葉斯分類器

      使用trainclassifier類訓練在HDFS/class9/20news/bayes-train-input的數據,生成的模型放到/class9/ 20news/newsmodel 目錄中:

      mahout trainclassifier \

      -i /class9/20news/bayes-train-input \

      -o /class9/20news/newsmodel \

      -type cbayes \

      -ng 2 \

      -source hdfs

      clip_image032

      4.2.6 觀察訓練作業運行過程

      注:實驗樓為命令行界面,無法觀測到該步驟界面,以下描述僅做參考

      在訓練過程中在JobTracker頁面觀察運行情況,鏈接地址為http://**.***.**.***:50030/jobtracker.jsp,訓練任務四個作業,大概運行了15分鐘左右:

      clip_image034

      點擊查看具體作業信息

      clip_image036

      map運行情況

      clip_image038

      作業運行情況

      clip_image040

      4.2.7 查看生成模型

      通過如下命令查看模型內容:

      hadoop fs -ls /class9/20news

      hadoop fs -ls /class9/20news/newsmodel

      hadoop fs -ls /class9/20news/newsmodel/trainer-tfIdf

      clip_image042

      4.2.8 測試貝葉斯分類器

      使用testclassifier類訓練在HDFS./20news/bayestest-input的數據,使用的模型路徑為./ 20news/newsmodel

      mahout testclassifier \

      -m /class9/20news/newsmodel \

      -d /class9/20news/bayes-test-input \

      -type cbayes \

      -ng 2 \

      -source hdfs \

      -method mapreduce

      clip_image044

      4.2.9 觀察訓練作業運行過程

      注:實驗樓為命令行界面,無法觀測到該步驟界面,以下描述僅做參考

      在執行過程中在JobTracker頁面觀察運行情況,鏈接地址為http://hadoop:50030/jobtracker.jsp,訓練任務1個作業,大概運行了5分鐘左右:

      clip_image046

      作業的基本信息

      clip_image048

      map運行情況

      clip_image050

      reduce運行情況

      clip_image052

      4.2.10 查看結果

      這個混合矩陣的意思說明:上述au分別是代表了有20類別,這就是我們之前給的20個輸入文件,列中的數據說明每個類別中被分配到的字節個數,classified說明應該被分配到的總數

      381  0  0  0  0  9  1  0  0  0  1  0  0  2  0  1  0  0  3  0  0  |  398  a = rec.motorcycles

      意思為rec.motorcycles 本來是屬于 a,有381篇文檔被劃為了a類,這個是正確的數據,其它的分別表示劃到 b~u類中的數目。我們可以看到其正確率為 381/398=0.9573 ,可見其正確率還是很高的了。

      clip_image054

      4.3 實現過程(mahout 0.7+版本)

      0.7版本的安裝目錄下$MAHOUT_HOME/examples/bin下有個腳本文件classifu-20newsgroups.sh,這個腳本中執行過程是和前面分布執行結果是一致的,只不過將各個APIshell腳本封裝到一起了。從0.7版本開始,Mahout移除了命令行調用的APIprepare20newsgroupstrainclassifiertestclassifier,只能通過shell腳本執行。

      執行 $MAHOUT_HOME/examples/bin/classify-20newsgroups.sh 四個選項中選擇第一個選項,

      clip_image056

      執行結果如下:

      clip_image058

      5問題解決

      5.1 使用mahout0.7+版本對20Newsgroup數據建立訓練集時出錯

      使用如下命令對20Newsgroupt數據建立訓練集時:

      mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \

      -p /app/mahout-0.9/data/20news-bydate-train \

      -o /app/mahout-0.9/data/bayes-train-input \

      -a org.apache.mahout.vectorizer.DefaultAnalyzer\

      -c UTF-8

      出現如下錯誤,原因在于從0.7版本開始,Mahout移除了命令行調用的prepare20newsgroupstrainclassifiertestclassifier API,只能通過shell腳本執行$MAHOUT_HOME/examples/bin/classify-20newsgroups.sh進行

      14/12/7 21:31:35 WARN driver.MahoutDriver: Unable to add class: org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups

      14/12/7 21:31:35 WARN driver.MahoutDriver: No org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.props found on classpath, will use command-line arguments only

      Unknown program 'org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups' chosen.

      Valid program names are:

        arff.vector: : Generate Vectors from an ARFF file or directory

        baumwelch: : Baum-Welch algorithm for unsupervised HMM training

        .......

      posted @ 2015-07-20 08:36  shishanyuan  閱讀(2671)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产乱子伦视频在线播放| 老司机午夜精品视频资源| 潘金莲高清dvd碟片| 欧美人妻在线一区二区| 国产婷婷精品av在线| 无码毛片一区二区本码视频| 肥臀浪妇太爽了快点再快点| 国产日韩综合av在线| 久久综合激情网| 国产精品午夜精品福利| 四虎在线播放亚洲成人| 国产精品中文字幕日韩| 成人aⅴ综合视频国产| 福利无遮挡喷水高潮| 亚洲欧美在线观看| 亚洲男人的天堂在线观看| 99久久精品久久久久久婷婷| 好吊妞人成视频在线观看27du| 亚洲肥熟女一区二区三区| www国产无套内射com| 亚洲国产精品综合色在线| 精品日本乱一区二区三区| 精品无人乱码一区二区三区的优势| 花莲市| 亚洲色精品vr一区区三区| 国产福利酱国产一区二区| 久久精品久久黄色片看看| 国产国语一级毛片| 国产精品污www在线观看| 成人自拍小视频在线观看| 狠狠躁夜夜躁人人爽天天古典| 在线观看国产精品日韩av | 中文字幕日韩有码国产| 国产成人啪精品午夜网站| 国产剧情福利一区二区麻豆| 亚洲一区二区在线无码| 日韩中文字幕av有码| 亚洲一区二区三区自拍天堂| 国产微拍一区二区三区四区| 国产精品视频免费一区二区三区| 国产av国片精品一区二区|