1. 程式人生 > >hadoop mahout 執行自帶的例子

hadoop mahout 執行自帶的例子

The 20 Newsgroups資料集合收集了大約20,000 個新聞群組的文件,它們被劃分成為大約20個新聞組。在機器學習領域,這個資料集合被廣泛的應用與分類和聚類測試資料集。下面是介紹如何利用這個資料集合來進行分類。

準備工作:

(1)首先確保安裝了hadoop和mahout,關於hadoop和mahout的安裝與配置,可以參考hadoop.apache.org 和mahout.apache.org中的guide部分,可以讓你快速入門。

(2)確保你安裝了maven,這個是為後邊的編譯做準備。

(3)環境變數 設定

      export HADOOP_HOME hadoop的trunk目錄

      export MAHOUT_HOME hadoop的trunk目錄

 mahout中例子程式的執行過程詳細說明

 1 首先啟動hadoop  start-all.sh

 2 (此步驟僅僅是在下載的是mahout的原始檔是需要)進入mahout的源trunk目錄,執行 mvn install,對mahout進行編譯並建立一個mahout job。

 3執行mahout中自帶的20 newsgroup 例子。

  ./examples/bin/classify-20newsgroups.sh
 這個shell指令碼將為你完成以下工作:下載20-new-bydat.tar.gz資料集合檔案;抽取資料集合;為訓練分類器生成符合要求的輸入資料集合;生成測試分類的輸入資料集合;運用訓練資料集合訓練分類器,生成分類模型;運用測試資料集合測試分類器。

最終輸出的內容格式如下:

輸出的是一個混合矩陣:

=======================================================
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   0   2   0   1   0   0   3   0   0    |  398  a     = rec.motorcycles
1   284 0   0   0   0   1   0   6   3   11  0   66  3   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   0   5   1   4   12  0   2   0   0    |  364  d     = talk.politics.guns
7   0   4   32  27  7   7   2   0   12  0   0   6   0   100 9   7   31  0   0   0    |  251  e     = talk.religion.misc
10  0   0   0   0   359 2   2   0   1   3   0   1   6   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   5   12  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   10  4   1   3   2   0   2   0   0    |  394  j     = sci.space
0   0   0   0   0   3   1   0   27  2   291 0   11  25  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  1   3   11  10  27  1   1   0   0    |  310  l     = talk.politics.misc
0   11  0   0   0   3   6   0   10  6   11  0   299 13  0   2   13  0   7   8   0    |  389  m     = comp.graphics
6   0   1   0   0   4   2   0   5   2   12  0   8   321 0   4   14  0   8   6   0    |  393  n     = sci.electronics
2   0   0   0   0   0   4   1   0   3   1   0   3   1   372 6   0   2   1   2   0    |  398  o     = soc.religion.christian
4   0   0   1   0   2   3   3   0   4   2   0   7   12  6   342 1   0   9   0   0    |  396  p     = sci.med
0   1   0   1   0   1   4   0   3   0   1   0   8   4   0   2   369 0   1   1   0    |  396  q     = sci.crypt
10  0   4   10  1   5   6   2   2   6   2   0   2   1   86  15  14  152 0   1   0    |  319  r     = alt.atheism
4   0   0   0   0   9   1   1   8   1   12  0   3   6   0   2   0   0   341 2   0    |  390  s     = misc.forsale
8   5   0   0   0   1   6   0   8   5   50  0   40  2   1   0   9   0   3   256 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

 這個混合矩陣的意思說明:

a~u分別表示了一類。

第一行的資料

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.95728643216080402010050251256281 ,可見其正確率還是很高的了。