樸素貝葉斯的推導

樸素貝葉斯=樸素+貝葉斯原理。

樸素:navie,天真,天真的認爲特徵獨立同分布(但現實是複雜的,一般都不是獨立的)

貝葉斯原理:p(yx)=p(x,y)p(x)p(y|x)=\frac{p(x,y)}{p(x)}

樸素貝葉斯是生成式模型,用於做分類的,它是通過argmax p(y|x)來生成類別。

那麼argmax p(y|x)如何來的呢?如何使得後驗概率p(y|x)最大化呢?

在0-1損失函數中,後驗概率最大化等價於經驗風險最小化。所以現在來看0-1損失的期望風險最小化問題。

後驗概率最大化與(條件)期望風險最小化

  • 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}

  • 那麼其期望風險爲:

Rexp(f(x))=E[L(Y,f(X))]R_{exp}(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)的條件期望(這個是離散表示,上面是連續函數表示)。

Rexp(f(x))=Ek=1K[L(ck,f(X))]p(ckx)R_{exp}(f(x))=E\sum_{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…
這樣,就得到了期望風險最小化等價於後驗概率最大化,從而知道了後驗概率最大化的由來。

如何實現後驗概率最大化呢?

現在我們知道了,對於樸素貝葉斯而言,要達到分類的目的,就要後驗概率最大化。

而如何實現後驗概率最大化呢?

我們先來看一下我們已經有的條件:

  • 1 一般情況下我們有訓練集樣本(X,Y),根據樣本我們可以學習到兩個分佈一個是先驗分佈,一個是後驗分佈:P(Y)和P(X|Y)

  • 2 條件獨立同分布及貝葉斯方法

結合我們的目的和已知條件得到:

argmaxckP(YX)=argmaxckP(XY)P(Y)P(X)argmax_{ck} P(Y|X)=argmax_{ck} \frac{P(X|Y)P(Y)}{P(X)}

現在求P(Y|X)的求解問題就變味了求解argmaxP(XY)P(Y)P(X)arg max \frac{P(X|Y)P(Y)}{P(X)}的問題。

又因爲在這個最大化的過程中,P(X)作爲一個實例,P(X)是一個常量值,所以僅剩下分子是我們要求的最大化:argmaxckP(XY)P(Y)argmax_{ck} P(X|Y)P(Y)

而因爲這個貝葉斯樸素的,特徵獨立同分布,所以:
argmaxckP(XY)P(Y)=argmaxckP(Y)j=1NP(Xj=xjY=ck)argmax_{ck}P(X|Y)P(Y)=argmax_{ck}P(Y)\prod_{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(i)X^{(i)}取值有asia_{si}個,asi=a1i,a2i,...,ania_{si}={a_{1i},a_{2i},...,a_{ni}},從而使得X個特徵乘積的結果爲
i=1Nasi\prod_{i=1}^{N}{a_si},而因爲需要計算每個類別下的特徵乘積,總共有K個類別,那麼計算量爲Ki=1Nasi\prod_{i=1}^{N}{a_si}

這個計算量是很大的,很耗時,往往使用不太現實。此時就用極大似然估計來計算條件概率。

極大似然估計與貝葉斯估計

好了,那爲了減少計算量級,就通過最大似然估計來進行貝葉斯方法的參數估計:

我們根據求解的結果可知,我們需要利用極大似然估計來求解P(Y=ck)P(Y=c_k)P(Xj=xjY=ck)P(X^j=x^j|Y=c_k)

P(Y=ck)=i=1NI(yi=ck)N,k=1,2,..,KP(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}}{N}, k=1,2,..,K

P(Xj=xjY=ck)=i=1NI(xi(j)=asj,yi=ck)i=1NI(yi=ck)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)}}

其中,KaTeX parse error: Expected '}', got 'EOF' at end of input: x_i^{(j)指的是第i個樣本第j個特徵,asja_{sj}是第j個特徵取到第i個屬性值,I表示指示函數。

得到了先驗概率和條件概率得極大似然估計值,就可以進行簡便求解了。

不過在極大似然估計中,可能存在得問題,在先驗概率的極大似然估計中,可能存在某個類別(ck)的樣本數目爲零,從而導致了其先驗概率爲0,求解無意義;同時對於條件概率也一樣,既是分母不爲零,但某一個特徵值下且取得asj值的樣本可能也不存在,使得條件概率爲0。

爲了優化這個問題,從而得到了貝葉斯估計。

貝葉斯估計是在分子都加上了一個λ\lambda值,分母分別加上k倍或者是Sj倍的λ\lambda值。

從而得到的先驗概率和條件概率爲:

P(Y=ck)=i=1NI(yi=ck)+λN+Kλ,k=1,2,..,KP(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}+\lambda}{N+K\lambda}, k=1,2,..,K

P(Xj=xjY=ck)=i=1NI(xi(j)=asj,yi=ck)+λi=1NI(yi=ck)+Sjλ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}

  • λ\lambda取值爲零時,就是極大似然估計
  • λ\lambda取值爲1時,就是拉普拉斯平滑。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章