1.概述
分類器有時很難給出該數據實例屬於哪一類這類問題的明確答案,這時可以要求分類器給出一個最優的類別猜測結果,同時給出這個猜測的概率估計值。之所以稱爲’樸素‘,是因爲整個形式化過程只做最原始,最簡單的假設。
優點:在數據較少的情況下仍然有效,可以處理多類別問題。
缺點:對於輸入數據的準備方式較爲敏感。
適用數據類型:標稱型數據。
標稱型:一般在有限的數據中取,而且只存在‘是’和‘否’兩種不同的結果(一般用於分類)
數值型:可以在無限的數據中取,而且數值比較具體化,例如4.02,6.23這種值(一般用於迴歸分析)
樸素貝葉斯理論是貝葉斯決策理論的一部分,所以先來了解一下貝葉斯理論。
2.貝葉斯理論
假設我們現在有一個數據集,它由兩類數據組成,數據分佈如圖:
我們現在用p1(x,y)表示數據點(x,y)屬於類別1(圖中用圓點表示的類別)的概率;用p2(x,y)表示數據點(x,y)屬於類別2(圖中用三角形表示的類別)的概率。
那麼對於一個新數據點(x,y),可以用下面的規則來判斷他的類別:
&如果p1(x,y)>p2(x,y),那麼類別爲1;
&如果p2(x,y)>p1(x,y),那麼類別爲2。
也就是說,我們會選擇高概率對應的類別。這就是貝葉斯決策理論的核心思想。爲了能夠計算p1和p2,有必要了解一下條件概率。
樸素貝葉斯的一般過程:
樸素貝葉斯假設樣本各特徵之間是不相關的,而且每個特徵是同等重要的。(爲什麼稱之爲樸素)
樸素貝葉斯分類器通常有兩種實現方式:一種基於貝努利模型實現,一種基於多項式模型實現。
python文本分類:對文檔進行分類
1.準備數據:從文本中構建詞向量。
我們先將文本看成單詞向量或者詞條向量,也就是說將句子轉換爲向量。考慮出現在所有文檔中的所有單詞,在決定將哪些詞納入詞彙表或者說所要的詞彙集合,然後必須要將每一篇文檔轉換爲詞彙表上的向量。
2.訓練算法:從詞彙量計算概率。如何使用這些數字計算概率。現在已經知道一個詞是否出現在一篇文檔中,也知道該文檔所屬的類別。
該算法的僞代碼如下:
3.測試算法:根據現實情況修改分類器。
可以用來過濾垃圾郵件。
可以從個人廣告中獲取區域傾向。
4.小結
對於分類而言,使用概率有時要比使用硬規則有效。貝葉斯概率以及貝葉斯規則提供了一種利用已知值來估計位置概率的有效方法。
可以通過特徵之間的條件獨立性假設,來降低對數據量的需求。
利用現代編程語言來實現樸素貝葉斯時需要考慮很多實際因素。下溢出就是其中一個問題,它可以通過對概率取對數來解決。詞袋模型在解決文檔分類上比詞集模型有所提高。