樸素貝葉斯=樸素+貝葉斯原理。
樸素:navie,天真,天真的認爲特徵獨立同分布(但現實是複雜的,一般都不是獨立的)
貝葉斯原理:p ( y ∣ x ) = p ( x , y ) p ( x ) p(y|x)=\frac{p(x,y)}{p(x)} p ( y ∣ x ) = p ( x ) p ( x , y )
樸素貝葉斯是生成式模型,用於做分類的,它是通過argmax p(y|x)來生成類別。
那麼argmax p(y|x)如何來的呢?如何使得後驗概率p(y|x)最大化呢?
在0-1損失函數中,後驗概率最大化等價於經驗風險最小化。所以現在來看0-1損失的期望風險最小化問題。
後驗概率最大化與(條件)期望風險最小化
L ( Y , f ( X ) ) = { 1 , Y ̸ = f ( X ) 0 , Y = f ( X )
L(Y,f(X))=\begin{cases}
1,&Y \not=f(X) \\ 0,&Y=f(X)
\end{cases}
L ( Y , f ( X ) ) = { 1 , 0 , Y ̸ = f ( X ) Y = f ( X )
R e x p ( f ( x ) ) = E [ L ( Y , f ( X ) ) ] R_{exp}(f(x))=E[L(Y,f(X))] R e x p ( f ( x ) ) = E [ L ( Y , f ( X ) ) ]
因爲這個期望是對聯合概率P(X,Y)取得,而我們只是需要條件期望(我們的目的是後驗概率最大化)。
那如何獲得條件期望風險呢?
條件期望風險可以通過期望風險得到:
KaTeX parse error: No such environment: align at position 8:
\begin{̲a̲l̲i̲g̲n̲}̲
R_{exp}(f(x))=…
從而就獲得了P(Y|X)的條件期望(這個是離散表示,上面是連續函數表示)。
R e x p ( f ( x ) ) = E ∑ k = 1 K [ L ( c k , f ( X ) ) ] p ( c k ∣ x ) R_{exp}(f(x))=E\sum_{k=1}^{K}[L(c_k,f(X))]p(c_k|x) R e x p ( f ( x ) ) = E ∑ k = 1 K [ L ( c k , f ( X ) ) ] p ( c k ∣ x )
得到條件期望後,就開始求期望風險最小化:
KaTeX parse error: No such environment: align at position 8:
\begin{̲a̲l̲i̲g̲n̲}̲
f(x)=argmin_{y…
這樣,就得到了期望風險最小化等價於後驗概率最大化,從而知道了後驗概率最大化的由來。
如何實現後驗概率最大化呢?
現在我們知道了,對於樸素貝葉斯而言,要達到分類的目的,就要後驗概率最大化。
而如何實現後驗概率最大化呢?
我們先來看一下我們已經有的條件:
結合我們的目的和已知條件得到:
a r g m a x c k P ( Y ∣ X ) = a r g m a x c k P ( X ∣ Y ) P ( Y ) P ( X ) argmax_{ck} P(Y|X)=argmax_{ck} \frac{P(X|Y)P(Y)}{P(X)} a r g m a x c k P ( Y ∣ X ) = a r g m a x c k P ( X ) P ( X ∣ Y ) P ( Y )
現在求P(Y|X)的求解問題就變味了求解a r g m a x P ( X ∣ Y ) P ( Y ) P ( X ) arg max \frac{P(X|Y)P(Y)}{P(X)} a r g m a x P ( X ) P ( X ∣ Y ) P ( Y ) 的問題。
又因爲在這個最大化的過程中,P(X)作爲一個實例,P(X)是一個常量值,所以僅剩下分子是我們要求的最大化:a r g m a x c k P ( X ∣ Y ) P ( Y ) argmax_{ck} P(X|Y)P(Y) a r g m a x c k P ( X ∣ Y ) P ( Y )
而因爲這個貝葉斯樸素的,特徵獨立同分布,所以:
a r g m a x c k P ( X ∣ Y ) P ( Y ) = a r g m a x c k P ( Y ) ∏ j = 1 N P ( X j = x j ∣ Y = c k ) argmax_{ck}P(X|Y)P(Y)=argmax_{ck}P(Y)\prod_{j=1}^{N}{P(X^{j}=x^{j}|Y=c_k)} a r g m a x c k P ( X ∣ Y ) P ( Y ) = a r g m a x c k P ( Y ) ∏ j = 1 N P ( X j = x j ∣ Y = c k )
現在我們得到了如何根據訓練集來求得最大的分類。
不過呢,在P(X|Y)中,X = X ( 1 ) , X ( 2 ) , . . . , X ( N ) X={X^{(1)},X^{(2)},...,X^{(N)}} X = X ( 1 ) , X ( 2 ) , . . . , X ( N ) ,每一個特徵取X ( i ) X^{(i)} X ( i ) 取值有a s i a_{si} a s i 個,a s i = a 1 i , a 2 i , . . . , a n i a_{si}={a_{1i},a_{2i},...,a_{ni}} a s i = a 1 i , a 2 i , . . . , a n i ,從而使得X個特徵乘積的結果爲
∏ i = 1 N a s i \prod_{i=1}^{N}{a_si} ∏ i = 1 N a s i ,而因爲需要計算每個類別下的特徵乘積,總共有K個類別,那麼計算量爲K∏ i = 1 N a s i \prod_{i=1}^{N}{a_si} ∏ i = 1 N a s i
這個計算量是很大的,很耗時,往往使用不太現實。此時就用極大似然估計來計算條件概率。
極大似然估計與貝葉斯估計
好了,那爲了減少計算量級,就通過最大似然估計來進行貝葉斯方法的參數估計:
我們根據求解的結果可知,我們需要利用極大似然估計來求解P ( Y = c k ) P(Y=c_k) P ( Y = c k ) 和P ( X j = x j ∣ Y = c k ) P(X^j=x^j|Y=c_k) P ( X j = x j ∣ Y = c k ) 。
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , . . , K P(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}}{N}, k=1,2,..,K P ( Y = c k ) = N ∑ i = 1 N I ( y i = c k ) , k = 1 , 2 , . . , K
P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^j=x^j|Y=c_k)=\frac{\sum_{i=1}^{N}{I(x_i^{(j)}=a_{sj},y_i=c_k)}}{\sum_{i=1}^{N}{I(y_i=c_k)}} P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( y i = c k ) ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k )
其中,KaTeX parse error: Expected '}', got 'EOF' at end of input: x_i^{(j) 指的是第i個樣本第j個特徵,a s j a_{sj} a s j 是第j個特徵取到第i個屬性值,I表示指示函數。
得到了先驗概率和條件概率得極大似然估計值,就可以進行簡便求解了。
不過在極大似然估計中,可能存在得問題,在先驗概率的極大似然估計中,可能存在某個類別(ck)的樣本數目爲零,從而導致了其先驗概率爲0,求解無意義;同時對於條件概率也一樣,既是分母不爲零,但某一個特徵值下且取得asj值的樣本可能也不存在,使得條件概率爲0。
爲了優化這個問題,從而得到了貝葉斯估計。
貝葉斯估計是在分子都加上了一個λ \lambda λ 值,分母分別加上k倍或者是Sj倍的λ \lambda λ 值。
從而得到的先驗概率和條件概率爲:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ , k = 1 , 2 , . . , K P(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}+\lambda}{N+K\lambda}, k=1,2,..,K P ( Y = c k ) = N + K λ ∑ i = 1 N I ( y i = c k ) + λ , k = 1 , 2 , . . , K
P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ P(X^j=x^j|Y=c_k)=\frac{\sum_{i=1}^{N}{I(x_i^{(j)}=a_{sj},y_i=c_k)}+\lambda}{\sum_{i=1}^{N}{I(y_i=c_k)}+S_j\lambda} P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( y i = c k ) + S j λ ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k ) + λ
當λ \lambda λ 取值爲零時,就是極大似然估計
當λ \lambda λ 取值爲1時,就是拉普拉斯平滑。