- 樸素貝葉斯方法,是指
- 樸素:特徵條件獨立
- 貝葉斯:基於貝葉斯定理
根據貝葉斯定理,對一個分類問題,給定樣本特徵x,樣本屬於類別y的概率是
在這裏,x是一個特徵向量,將設x維度爲M。因爲樸素的假設,即特徵條件獨立,根據全概率公式展開,公式(1)可以表達爲
這裏,只要分別估計出,特徵
如何統計,就是下一部分——學習——所關心的內容。
學習(參數估計)
下面介紹如何從數據中,學習得到樸素貝葉斯分類模型。概述分類方法,並提出一個值得注意的問題。
學習
-
訓練集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=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(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=1I(yi=ck)+λN+Kλ。。。。(7)
K 是類的個數
p(xj=ajl|y=ck)=∑Ni=1I(xji=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Ljλ。。。(8)
Lj 是第j 維特徵的最大取值
可以證明,改進以後的(7)(8)仍然是概率。平滑因子