1. 程式人生 > >《機器學習西瓜書》學習筆記——第七章_貝葉斯分類器_樸素貝葉斯分類器

《機器學習西瓜書》學習筆記——第七章_貝葉斯分類器_樸素貝葉斯分類器

樸素:特徵條件獨立;貝葉斯:基於貝葉斯定理。 樸素貝葉斯是經典的機器學習演算法之一,也基於概率論的分類演算法,屬於監督學習的生成模型。樸素貝葉斯原理簡單,也很容易實現,多用於文字分類,比如垃圾郵件過濾。

1.演算法思想——基於概率的預測

貝葉斯決策論是概率框架下實施決策的基本方法。對分類任務來說,在所有相關概率都已知的情況下,貝葉斯決策論考慮如何基於這些概率和誤判損失來選擇最優的標記類別。

2. 理論基礎

樸素貝葉斯最核心的部分是貝葉斯法則,而貝葉斯法則的基石是條件概率。貝葉斯法則如下:

P(cx)P(c|x)=P(c)P(xc)P(x){P(c)P(x|c)}\over{P(x)}

P(xc)P(x|c):類條件概率,是所有屬性上的聯合概率分佈,難以從有限的訓練集直接估計而得。樸素貝葉斯採用“屬性條件獨立性假設”,對已知類別,假設所有屬性相互獨立。所以,上式可寫為:

P(cx)P(c|x)=P(c)P(xc)P(x){P(c)P(x|c)}\over {P(x)}=P(c)P(x)i=1dP(xic){P(c)\over P(x)} {\prod_{i=1}^d P(x_i|c)} ,

d為屬性數目,xix_ixx在第ii

個屬性上的取值。

對於所有類別來說P(x)P(x)相同,因此基於h(x)=argmaxP(cx)h^*(x)=argmaxP(c|x)貝葉斯判定準則有:

hnb(x)=argmaxP(c)i=1dP(xic)h_nb(x)=argmaxP(c){\prod_{i=1}^d P(x_i|c)} ,

這就是樸素貝葉斯分類器的表示式。

由上式可知,樸素貝葉斯分類器的訓練過程即基於訓練集D來估計類先驗概率P(c)P(c),併為每個屬性估計條件概率P(xic).P(x_i|c).

DcD_c表示訓練集DD中cc類樣本的組成的集合,若有充足的獨立的同分布樣本,則可容易地估計出類先驗概率: P(c)P(c)=DcD|D_c|\over|D|

對離散屬性而言,令Dc,xiD_{c,x_i}表示DcD_c中在第ii個屬性上的取值為xix_i的樣本組成的集合,則條件概率P(xic)P(x_i|c)可估計為

P(xic)P(x_i|c)=Dc,xiD|D_{c,x_i}|\over|D|

對連續屬性,此處省略100字。

為了避免其他屬性攜帶的資訊被訓練集中未出現的屬性值抹去,在概率估計時通常需要進行“平滑”,常用“拉普拉斯修正”,NN表示訓練集DD中可能的類別數,NiN_i表示第ii個屬性可能的取值數。所以上式修改為:

P^(c)\hat{P}(c)=Dc+1D+N{|D_c|+1}\over{|D|+N}

P^(xic)\hat{P}(x_i|c)=Dc,xi+1D+Ni|D_{c,x_i}+1|\over{|D|+N_i} 拉普拉斯修正避免了因訓練樣本集不充分而導致概率估計值為0的問題,且在訓練集變大時,修正過程所引入的先驗的影響會逐漸變得可忽略,使得估計值逐漸趨向於實際概率值。