樸素貝葉斯方法(Naive Bayes)
阿新 • • 發佈:2019-01-24
本文主要描述了樸素貝葉斯分類方法,包括模型匯出和學習描述。例項部分總結了《machine learning in action》一書中展示的一個該方法用於句子感情色彩分類的程式。1
- 方法概述
- 學習(引數估計)
- 實現:樸素貝葉斯下的文字分類
模型概述
- 樸素貝葉斯方法,是指
- 樸素:特徵條件獨立
- 貝葉斯:基於貝葉斯定理
根據貝葉斯定理,對一個分類問題,給定樣本特徵x,樣本屬於類別y的概率是
在這裡,x是一個特徵向量,將設x維度為M。因為樸素的假設,即特徵條件獨立,根據全概率公式展開,公式(1)可以表達為
p(y=ck|x)=∏Mi=1p(xi|
這裡,只要分別估計出,特徵xi在每一類的條件概率就可以了。類別y的先驗概率可以通過訓練集算出,同樣通過訓練集上的統計,可以得出對應每一類上的,條件獨立的特徵對應的條件概率向量。
如何統計,就是下一部分——學習——所關心的內容。
學習(引數估計)
下面介紹如何從資料中,學習得到樸素貝葉斯分類模型。概述分類方法,並提出一個值得注意的問題。
學習
- 訓練集TrainingSet={(x1,y1),(x2,y2),...,(xN,yN)}
包含N條訓練資料,其中 xi=(x(1)i,x(2)i,...,x(M)i
-
學習 1.首先,我們來計算公式(2)中的p(y=ck)
p(y=ck)=∑Ni=1I(yi=ck)N。。。。(3)
其中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
-
分類 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=1I(yi=ck)+λN+Kλ。