1. 程式人生 > >樸素貝葉斯方法(Naive Bayes)

樸素貝葉斯方法(Naive Bayes)

本文主要描述了樸素貝葉斯分類方法,包括模型匯出和學習描述。例項部分總結了《machine learning in action》一書中展示的一個該方法用於句子感情色彩分類的程式。1

  • 方法概述
  • 學習(引數估計)
  • 實現:樸素貝葉斯下的文字分類

模型概述

樸素貝葉斯方法,是指
樸素:特徵條件獨立
貝葉斯:基於貝葉斯定理

根據貝葉斯定理,對一個分類問題,給定樣本特徵x,樣本屬於類別y的概率是

p(y|x)=p(x|y)p(y)p(x)1
在這裡,x是一個特徵向量,將設x維度為M。因為樸素的假設,即特徵條件獨立,根據全概率公式展開,公式(1)可以表達為
p(y=ck|x)=Mi=1p(xi|
y=ck)p(y=ck)
kp(y=ck)Mi=1P(xi|y=ck)
2

這裡,只要分別估計出,特徵xi在每一類的條件概率就可以了。類別y的先驗概率可以通過訓練集算出,同樣通過訓練集上的統計,可以得出對應每一類上的,條件獨立的特徵對應的條件概率向量。
如何統計,就是下一部分——學習——所關心的內容。

學習(引數估計)

下面介紹如何從資料中,學習得到樸素貝葉斯分類模型。概述分類方法,並提出一個值得注意的問題。

學習

訓練集TrainingSet={(x1,y1),(x2,y2),...,(xN,yN)} 包含N條訓練資料,其中 xi=(x(1)i,x(2)i,...,x(M)i
)T
是M維向量,yi{c1,c2,...cK}屬於K類中的一類。

學習 1.首先,我們來計算公式(2)中的p(y=ck)

p(y=ck)=Ni=1Iyi=ckN3
其中I(x)為指示函式,若括號內成立,則計1,否則為0。

學習 2.接下來計算分子中的條件概率,設M維特徵的第j維有L個取值,則某維特徵的某個取值ajl,在給定某分類ck下的條件概率為:

p(xj=ajl|y=ck)=Ni=1I(xji=ajl,yi=ck)Ni=1I(yi=ck)4

經過上述步驟,我們就得到了模型的基本概率,也就完成了學習的任務。

分類

通過學到的概率,給定未分類新例項X,就可以通過上述概率進行計算,得到該例項屬於各類的後驗概率p
(y=ck|X)
,因為對所有的類來說,公式(2)中分母的值都相同,所以只計算分子部分即可,具體步驟如下:
分類 1.計算該例項屬於y=ck類的概率
p(y=ck|X)=p(y=ck)j=1np(X(j)=x(j)|y=ck)5
分類 2.確定該例項所屬的分類y
y=argmaxckp(y=ck|X)6
於是我們得到了新例項的分類結果

拉普拉斯平滑

到這裡好像方法已經介紹完了,實則有一個小問題需要注意,在公式(3)(4)中,如果從樣本中算出的概率值為0該怎麼辦呢?
下面介紹一種簡單方法,給學習步驟中的兩個概率計算公式,分子和分母都分別加上一個常數,就可以避免這個問題。更新過後的公式如下:
p(y=ck)=Ni=1Iyi=ck+λN+Kλ