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