樸素貝葉斯分類是一種十分簡單的分類算法,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素,樸素貝葉斯的思想基礎是這樣的:對于給出的待分類項,求解在此項出現的條件下各個類别出現的機率哪個最大,就認為此待分類項屬于哪個類别。
這二十個新聞討論區資料集合是收集大約20,000新聞討論區文檔,均勻的分布在20個不同的集合。這20個新聞討論區集合采集最近流行的資料集合到文本程式中作為實驗,根據機器學習技術。例如文本分類,文本聚集。我們将使用Mahout的Bayes
Classifier創造一個模型,它将一個新文檔分類到這20個新聞討論區集合範例示範
hadoop已經開啟
mahout已經安裝
下載下傳20news-bydate.tar.gz資料包并解壓縮
<a href="http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz">http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz</a>
例如:我已經把資料包放在/root/bayes下了,是以以下的指令都是在這個目錄下的
原以為這麼20個檔案是不可以一起輸出的,但事實證明是可以的
<a>mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups -p/root/bayes/20news-bydate-train -o /root/bayesoutput/train -a org.apache.mahout.vectorizer.DefaultAnalyzer -c UTF-8</a>
上傳檔案到HDFS
hadoop fs -put /root/bayesoutput/train/ bayes
下面将在hadoop運作4個map reduce工作,為了Train這個分器并且将運作一段時間如果在隻有一個節點的機器上
mahout trainclassifier -i /bayes/train/ -o newsmodel -type bayes -ng 3 -source hdfs(由于hadoop叢集未開,這條指令暫時沒用)
由于案例資料較多,跑了将近30分鐘,新的newmodel的大小有300多mb
在input目錄運作Test分類器
<a>mahout testclassifier -m newsmodel -d /root/bayesoutput/test/ -type bayes -ng 3 -source hdfs -method mapreduce</a>