• <tfoot id="ukgsw"><input id="ukgsw"></input></tfoot>
    
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      mahout

       閑來看看 2014-01-17

      mahout


      運行自帶的例子來進行測試

      (1)http://archive.ics./ml/databases/synthetic_control/synthetic_control.data
      點擊鏈接,下載數據集synthetic_control.data。
      將數據集synthetic_control.data放到MAHOUT_HOME目錄下面,(注意:這里一定要放到此目錄下,否則會異常報錯)
      (2)啟動Hadoop
      hadoop@master:~$ start-all.sh
      (3)創建測試目錄testdata(這里的目錄的名字只能是testdata)
      hadoop@master:~$ hadoop dfs -mkdir testdata     (創建后的路徑為:/user/hadoop/testdata)
      (4)并把數據導入到這個tastdata目錄中
      hadoop@master:~$ hadoop fs -put /home/hadoop/mahout/mahout-distribution-0.7/synthetic_control.data testdata
      (5)使用kmeans算法
      hadoop@master:~$ hadoop jar $MAHOUT_HOME/mahout-examples-0.7-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

      (方法有:kmeans canopy fuzzykmeans dirichlet meanshift)
      (6)查看運行結果。依次運行下列命令:                (運行結果保存在:/user/hadoop/output)
      hadoop@master:~$ hadoop dfs -ls output
      hadoop@master:~$ hadoop dfs -get output $MAHOUT_HOME/examples    (從hdfs上下載到本地)
      hadoop@master:~$ cd $MAHOUT_HOME/examples/output
      hadoop@master:~/mahout/mahout-distribution-0.7/examples/output$ ls
      如果看到以下結果,那么算法運行成功,你的安裝也就成功了:
      canopies    clusters-1  clusters-3  clusters-5  clusters-7  points
      clusters-0  clusters-2  clusters-4  clusters-6  data
      (這些文件都是sequenceFile的方式,直接打開會出現亂碼!)
      (7)對測試結果進行分析:
      <1>數據類型分析:
      <a>clusteredPoints:存放的是最后聚類的結果,將cluster-id和documents-id都展示出來了,用mahout seqdumper讀clusteredPoints結果的key-value類型是(IntWritable,WeightedVectorWritable)
      <b>clusters-N:是第N次聚類的結果,其中n為某類的樣本數目,c為各類各屬性的中心,r為各類屬性的半徑。 clusters-N結果類型是(Text,Cluster)
      <c>data:存放的是原始數據,這個文件夾下的文件可以用mahout vectordump來讀取,原始數據是向量形式的,其它的都只能用mahout seqdumper來讀取,向量文件也可以用mahout seqdumper來讀取,只是用vectordump讀取出來的是數字結果,沒有對應的key,用seqdumper讀出來的可以看到key,即對應的url,而value讀出來的是一個類描述,而不是數組向量
      <2>命令類型分析:
      mahout seqdumper:將SequenceFile文件轉成可讀的文本形式,對應的源文件是org.apache.mahout.utils.SequenceFileDumper.java
      mahout vectordump:將向量文件轉成可讀的文本形式,對應的源文件是org.apache.mahout.utils.vectors.VectorDumper.java
      mahout clusterdump:分析最后聚類的輸出結果,對應的源文件是org.apache.mahout.utils.clustering.ClusterDumper.java
      <3>實際命令如下(-i <hdfs上的路徑> -o <本地路徑>):
      hadoop@master:~$ mahout seqdumper -i /user/hadoop/output/clusteredPoints/part-m-00000 -o /home/hadoop/data/result_points.txt
      hadoop@master:~$ mahout vectordump -i /user/hadoop/output/data/part-m-00000 -o /home/hadoop/data/result_data.txt
      hadoop@master:~$ mahout seqdumper -i /user/hadoop/output/clusters-2/part-r-00000 -o /home/hadoop/data/result_clusters2.txt
      hadoop@master:~$ mahout clusterdump --input /user/hadoop/output/clusters-0 --pointsDir /user/hadoop/output/clusteredPoints --output /home/hadoop/data/result_clusters0.txt
      (這個命令會將每一類的點列出來,input指向的目錄存放的是某類有幾個點和該類的質心點及半徑,即clusters-N目錄,pointsDir指向的是所有輸入點歸于哪一類,即clusteredPoints目錄,兩者聯合起來,就可以列舉出屬于同一類的所有點)
      (注意input指向的目錄,要是最后一次迭代的結果目錄,最后一次迭代的結果才是最終的結果)

      (1)SequenceFile介紹

      SequeceFile是Hadoop API提供的一種二進制文件支持。這種二進制文件直接將<key, value>對序列化到文件中。一般對小文件可以使用這種文件合并,即將文件名作為key,文件內容作為value序列化到大文件中。
      這種文件格式有以下好處:
          支持壓縮,且可定制為基于Record或Block壓縮(Block級壓縮性能較優)
          本地化任務支持:因為文件可以被切分,因此MapReduce任務時數據的本地化情況應該是非常好的。
          難度低:因為是Hadoop框架提供的API,業務邏輯側的修改比較簡單。
      壞處是需要一個合并文件的過程,且合并后的文件將不方便查看。

      (2)mahout與SequenceFile

      首先簡單說明下,mahout下處理的文件必須是SequenceFile格式的,所以需要把txtfile轉換成sequenceFile。
      SequenceFile是hadoop中的一個類,允許我們向文件中寫入二進制的鍵值對,
      具體介紹請看eyjian寫的http://www./viewthread.php?tid=144&highlight=sequencefile
      輸入命令(--input和--output的路徑必須一樣):

      <1>把txt文本文件轉換成sequenceFile

      hadoop@master:~$ mahout seqdirectory --input /test/ --output /test/ --charset UTF-8
      結果可以看到:在test目錄下多了1個文件(chunk-0), 這就是我們要的SequenceFile格式文件


      問題:在我的測試中并沒有用到這個命令??????????

      <2>將SequenceFile文件轉成文本形式:

      hadoop@master:~$ mahout seqdumper -s /test/chunk-0 -o test.txt

      注意1:mahout-0,5中-s:表示輸入文件路徑, mahout-0.8中-i:表示輸入文件路徑。輸入路徑是指HDFS上的路徑

      注意2:輸出路徑test.txt----存放在/home/hadoop中,也就是本地路徑

      (3)mahout中的測試數據下載

      數據源:http://kdd.ics./databases/里面有大量經典數據提供下載

       

      (4)maven編譯mahout的源文件

      下載mahout-0.7的源文件(src文件:mahout-distribution-0.7-src.tar.gz):http://apache.//mahout/0.7/ 解壓,我放在/home/hadoop/mahout-src下,

      <1>進入mahout-0.7源文件目錄:cd $MAHOUT_HOME,

      <2>編譯mahout源文件的命令:mvn install   或  mvn install -Dmaven.test.skip=true

      注意1:因為maven是編譯mahout的源文件,所以要下載mahout-distribution-0.7-src.tar.gz版本,如果下載的是mahout-distribution-0.7.tar.gz版本,在mahout的安 裝目錄下執行命令:mvn install時,會提示錯誤,找不到pom.xml。

      注意2使用mvn install:會比較慢,因為測試過程會比較慢,而且容易失敗!!

      注意3使用mvn install -Dmaven.test.skip=true:Maven 提供了跳過單元測試的能力,只需要使用 Surefire 插件的 skip 參數。 在命令行,只要簡單的給任何目標添加 maven.test.skip 屬性就能跳過測試

      (1)kmeans算法簡介

      同一聚類中的對象相似度較高,而不同聚類中的對象相似度較小。
      以空間中k個點為中心進行聚類,對最靠近他們的對象歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果。
      首先從n個數據對象任意選擇 k個 對象作為初始聚類中心;而對于所剩下其它對象,則根據它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然后 再計算每個所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復這一過程直到標準測度函數開始收斂為止。一般都采用均方差作為標準測度函數. k個聚類具有以下特點:各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
      對于每一個 cluster,我們可以選出一個中心點 (center),使得該 cluster中的所有的點到該中心點的距離小于到其他 cluster的中心的距離

      (2)canopy算法簡介

      Canopy 算法首先會要求輸入兩個閥值 T1和T2,T1>T2;算法有一個集群這里叫Canopy的集合(Set),當然一開始它是空的;然后會將讀取到的第一個點作為集合中的一個 Canopy,接著讀取下一個點,若該點與集合中的每個Canopy計算距離,若這個距離小于T1,則這個點會分配給這個Canopy(一個點可以分配給 多個Canopy),而當這個距離小于T2時這個點不能作為一個新的Canopy而放到集合中。也就是說當一個點只要與集合中任意一個Canopy的距離 小于T2了,即表示它里那個Canopy太近不能作為新的Canopy。若都沒有則生成一個新的Canopy放入集合中。以此循環,直到沒有點了。

      首先通過Canopy算法進行聚類,以確定簇數以及初始簇心的,接著通過K-means算法進行迭代運算,收斂出最后的聚類結果。

      折騰死了,總結下:
      1.運行kmeans算法的時候下載的是mahout-distribution-0.8.tar.gz,是編譯后的版本(安裝版),運行的很順利!當運行bayes(貝葉斯)算法時出問題了,按照mahout官網上的步驟,執行mvn install是報錯:說找不到pom.xml!!發現:這個是在源碼上運行的!!這才又下載了mahout-distribution-0.8-src.tar.gz,直接編譯(mvn install)的時候并沒成功,又把源碼導入到eclipse中,修修改改,終于編譯成功了!!
      2.但是當運行命令:mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups .......的時候,就報錯:說找不到PrepareTwentyNewsgroups!!經過一番折騰,終于發現mahout-distribution-0.7-src里面bayes的文件夾為空(或者就沒有這個文件夾)!!然后就去找mahout前幾個版本,把mahout-distribution-0.4-src到mahout-distribution-0.8-src都下載下來了,0.7和0.8里面沒有bayes的文件夾,0.4和0.6里面雖然bayes的文件夾不為空,但是總編譯不成功,最后只有0.5沒有問題!!

      bayes(貝葉斯)算法簡介

       

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

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

      mahout運行bayes(貝葉斯)算法的前提條件:

      (1)啟動hadoop
      hadoop@master:~$ start-all.sh
      (2)成功編譯mahout源碼
      hadoop@master:~$ cd $MAHOUT_HOME
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ mvn install -Dmaven.test.skip=true

      mahout運行bayes(貝葉斯)算法的步驟:

      (1)生成input的數據
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups -p /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-data/20news-bydate/20news-bydate-train -o /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-result/bayes-train-input -a org.apache.mahout.vectorizer.DefaultAnalyzer -c UTF-8  
      運行結果:
      Running on hadoop, using HADOOP_HOME=/home/hadoop/cloud/hadoop-1.0.4
      HADOOP_CONF_DIR=/home/hadoop/cloud/confDir/hadoop/conf
      Warning: $HADOOP_HOME is deprecated.

      13/08/09 14:07:09 WARN driver.MahoutDriver: No org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.props found on classpath, will use command-line arguments only
      13/08/09 14:07:14 INFO driver.MahoutDriver: Program took 5202 ms
      (2)生成test的數據
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups -p /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-data/20news-bydate/20news-bydate-test -o /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-result/bayes-test-input -a org.apache.mahout.vectorizer.DefaultAnalyzer -c UTF-8  
      運行結果:
      Running on hadoop, using HADOOP_HOME=/home/hadoop/cloud/hadoop-1.0.4
      HADOOP_CONF_DIR=/home/hadoop/cloud/confDir/hadoop/conf
      Warning: $HADOOP_HOME is deprecated.

      13/08/09 14:13:35 WARN driver.MahoutDriver: No org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.props found on classpath, will use command-line arguments only
      13/08/09 14:13:38 INFO driver.MahoutDriver: Program took 3428 ms
      (3)將訓練文本集上傳到HDFS上
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ hadoop dfs -put /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-result/bayes-train-input/ bayes-train-input
      (4)模型訓練:依據訓練文本集來訓練貝葉斯分類器模型
      解釋一下命令:-i:表示訓練集的輸入路徑,HDFS路徑; -o:分類模型輸出路徑; -type:分類器類型,這里使用bayes,可選cbayes;
      -ng:(n-gram)建模的大小,默認為1; -source:數據源的位置,HDFS或HBase
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ mahout trainclassifier -i bayes-train-input -o bayes-newsmodel -type bayes -ng 1 -source hdfs
      (5)將測試文本集上傳到HDFS上
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ hadoop dfs -put /home/hadoop/mahout-0.5-src/mahout-distribution-0.5/my-test-result/bayes-test-input/ bayes-test-input
      (6)模型測試:依據訓練的貝葉斯分類器模型來進行分類測試
      hadoop@master:~/mahout-0.5-src/mahout-distribution-0.5$ mahout testclassifier -m bayes-newsmodel -d bayes-test-input -type bayes -ng 1 -source hdfs -method mapreduce
      運行結果(與apache官網里面的一致):
      13/08/09 14:56:34 INFO bayes.BayesClassifierDriver: =======================================================
      Confusion Matrix
      -------------------------------------------------------
      a        b        c        d        e        f        g        h        i        j        k        l        m        n        o        p        q        r        s        t        u        <--Classified as
      381      0        0        0        0        9        1        0        0        0        1        0        2        0        0        1        0        0        3        0        0         |  398       a     = rec.motorcycles
      1        284      0        0        0        0        1        0        6        3        11       0        3        66       0        1        6        0        4        9        0         |  395       b     = comp.windows.x
      2        0        339      2        0        3        5        1        0        0        0        0        1        1        12       1        7        0        2        0        0         |  376       c     = talk.politics.mideast
      4        0        1        327      0        2        2        0        0        2        1        1        5        0        1        4        12       0        2        0        0         |  364       d     = talk.politics.guns
      7        0        4        32       27       7        7        2        0        12       0        0        0        6        100      9        7        31       0        0        0         |  251       e     = talk.religion.misc
      10       0        0        0        0        359      2        2        0        1        3        0        6        1        0        1        0        0        11       0        0         |  396       f     = rec.autos
      0        0        0        0        0        1        383      9        1        0        0        0        0        0        0        0        0        0        3        0        0         |  397       g     = rec.sport.baseball
      1        0        0        0        0        0        9        382      0        0        0        0        1        1        1        0        2        0        2        0        0         |  399       h     = rec.sport.hockey
      2        0        0        0        0        4        3        0        330      4        4        0        12       5        0        0        2        0        12       7        0         |  385       i     = comp.sys.mac.hardware
      0        3        0        0        0        0        1        0        0        368      0        0        4        10       1        3        2        0        2        0        0         |  394       j     = sci.space
      0        0        0        0        0        3        1        0        27       2        291      0        25       11       0        0        1        0        13       18       0         |  392       k     = comp.sys.ibm.pc.hardware
      8        0        1        109      0        6        11       4        1        18       0        98       3        1        11       10       27       1        1        0        0         |  310       l     = talk.politics.misc
      6        0        1        0        0        4        2        0        5        2        12       0        321      8        0        4        14       0        8        6        0         |  393       m     = sci.electronics
      0        11       0        0        0        3        6        0        10       7        11       0        13       298      0        2        13       0        7        8        0         |  389       n     = comp.graphics
      2        0        0        0        0        0        4        1        0        3        1        0        1        3        372      6        0        2        1        2        0         |  398       o     = soc.religion.christian
      4        0        0        1        0        2        3        3        0        4        2        0        12       7        6        342      1        0        9        0        0         |  396       p     = sci.med
      0        1        0        1        0        1        4        0        3        0        1        0        4        8        0        2        369      0        1        1        0         |  396       q     = sci.crypt
      10       0        4        10       1        5        6        2        2        6        2        0        1        2        86       15       14       152      0        1        0         |  319       r     = alt.atheism
      4        0        0        0        0        9        1        1        8        1        12       0        6        3        0        2        0        0        341      2        0         |  390       s     = misc.forsale
      8        5        0        0        0        1        6        0        8        5        50       0        2        39       1        0        9        0        3        257      0         |  394       t     = comp.os.ms-windows.misc
      0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0         |  0         u     = unknown
      Default Category: unknown: 20


      13/08/09 14:56:34 INFO driver.MahoutDriver: Program took 118128 ms

      參考文章:
      (1)mahout官網:https://cwiki./confluence/display/MAHOUT/Twenty+Newsgroups
      (2)http://blog.csdn.net/crazyzhb2012/article/details/9795609

      (3)http://blog.csdn.net/zc55803903/article/details/7933126
       

      Top 只看目錄平板模式刷新

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 爆乳无码AV一区二区三区 | 免费国产黄线在线观看| 狠狠色丁香婷婷综合潮喷| 久久人与动人物a级毛片| 国产综合有码无码中文字幕 | 久久综合亚洲色HEZYO国产| 亚洲精品中文av在线| 亚洲男女一区二区三区| 日韩精品人妻中文字幕| 亚洲人成伊人成综合网久久久| 无套内谢少妇一二三四| 国精品无码一区二区三区在线蜜臀| 中文字幕永久精品国产| 亚洲男人的天堂一区二区| 国产精品有码在线观看| 人妻少妇精品无码专区动漫| 又湿又紧又大又爽A视频男| 色综合久久久久综合体桃花网| 国产精品一区在线蜜臀| 国产乱码卡二卡三卡4| 国产网友愉拍精品视频手机| 一区二区三区无码免费看| 两个人看的视频WWW在线高清| 亚洲成在人线在线播放无码| 麻豆成人传媒一区二区| 日韩少妇人妻vs中文字幕| 国产精品无码无需播放器| 久久精品国产99国产精品严洲| 久久久无码精品亚洲日韩按摩| 国产好大好硬好爽免费不卡| 中文字幕少妇人妻精品| 亚洲精品国产精品国自产观看| 国产成人啪精品视频免费APP| 久久人与动人物a级毛片 | 日韩av片无码一区二区不卡| 国产成A人片在线观看视频下载| 日本一区不卡高清更新二区| 2019亚洲午夜无码天堂 | 日韩人妻无码一区二区三区99| 免费播放一区二区三区| 成人无码潮喷在线观看|