1. 程式人生 > >用樸素貝葉斯分類演算法做中文文字分類

用樸素貝葉斯分類演算法做中文文字分類

一. 樸素貝葉斯分類演算法的原理

樸素貝葉斯分類器基於屬性條件獨立假設:對於已知類別,假設所有屬性相互獨立,也就是說,假設每個屬性獨立地對分類結果產生影響。
設待分類的樣本屬性集為T,其中包含n個屬性,分別為t1,t2,t3...tn,類別集合為γ,當前待判斷類別為c,基於屬性條件獨立性假設,可得:

P(c|T)=P(c)P(T|c)P(T)=P(c)P(T)i=1nP(ti|c)
因為我們的目標是在當前的屬性集T下,找到一個儘可能正確的類別,也就是說,使得後驗概率
P(c|T)
儘可能大。又因為對於所有類別來說P(T)相同,所以樸素貝葉斯分類器hnb的計算公式如下:
hnb(T)=argmaxcγP(c)i=1nP(ti|c)
可以看到上面的公式i=1nP(ti|c)0P(ti|c)1,連乘運算很容易得到一個雙精度都難以表示的極小的數值,不利於計算。因此一般情況下對上面的公式兩邊取對數,得到如下公式:
log(
hnb(T))=argmaxcγ(log(P(c))+i=1nlog(P(ti|c)))

另外P(c)P(ti|c)的計算公式如下:
P(c)=|Dc||D|
P(ti|c)=|Dc,ti||Dc|
其中,|D|表示訓練語料庫中包含的文件總數,|Dc|表示訓練語料庫中類別c包含的文件總數,