朴素貝葉斯方法



貝葉斯公式

貝葉斯公式:

\[P(A|B)=\frac{P(B|A)P(A)}{P(B)} \]

  • \(B\)出現的前提下\(A\)出現的概率,等於\(A\)\(B\)都出現的概率除以\(B\)出現的概率。

假設事件\(A\)本身包含多種可能性,集\(A=\{A_1,A_2,\cdots,A_n\}\),那么對於集合中任意的\(A_i\),貝葉斯定理表示為:

\[P(A_i|B)=\frac{P(B|A_i)P(A_i)}{\sum_{j}P(B|A_j)P(A_j)} \]

  1. 某 AI 公司招聘工程師,來了8名應聘者,這8個人里,有5個人是985院校畢業的,另外3人不是。
  2. 面試官拿出一道算法題准備考察他們。根據以前的面試經驗,面試官知道:985畢業生做對這道題的概率是80%,非985畢業生做對率只有30%。
  3. 現在,面試管從8個人里隨手指了一個人——小甲,讓 TA 出來做題。結果小甲做對了,那么請問,小甲是985院校畢業的概率是多大?

\[\frac{0.8*5/8}{0.8*5/8+0.3*3/8} \]


朴素貝葉斯法假設條件概率分布是條件獨立的。即:

\[P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)}|Y=c_k)\\ = \prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)\]

條件獨立假設等於是說用於分類的特征在類確定的條件下都是條件獨立的。

朴素貝葉斯法分類時,對給定的輸入\(x\),通過學習到的模型計算后驗概率分布\(P(Y=c_k|X=x)\),將后驗概率最大的類作為\(x\)的類輸出。

\[P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{k}^{ }P(X=x|Y=c_k)P(Y=c_k)} \]

朴素貝葉斯分類器可表示為:

\[y=f(x)=arg\ \underset{c_k}{max}\ P(Y=c_k)\prod_{j}^{ }P(X^{(j)}=x^{(j)}|Y=c_k) \]

后驗概率最大化,等價於期望風險最小化。

上式,基於訓練集\(D\)來估計類先驗概率\(P(Y=c_k)\),並為每個屬性估計條件概率\(P(X^{(j)}=x^{(j)}|Y=c_k)\)

\(D_k\)表示訓練集\(D\)中第\(k\)類樣本組成的集合,若有充分的獨立同分布樣本,則可估計出類先驗概率為:

\[P(Y=c_k)=\frac{|D_k|}{|D|} \]

\(D_k^{(j)}\)表示\(D_k\)中的第\(j\)個屬性上取值為\(x^{(j)}\)的樣本組成的集合,則條件概率為:

\[P(X^{(j)}=x^{(j)}|Y=c_k)=\frac{|D_k^{(j)}|}{|D_k|} \]


極大似然估計

\[P(Y=c_k)=\frac{\sum_{i=1}^{N} I(y_i=c_k)}{N}, k=1,2,\cdots,K \]

\[P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)} \]

\(x_i^{(j)}\):是第\(i\)個樣本的第\(j\)個特征。
\(a_{jl}\):第\(j\)個特征可能取的第\(l\)個值。
缺點:用極大似然估計可能會出現所要估計的概率值為0的情況,而影響到后驗概率的計算,使分類產生誤差。


貝葉斯估計

\[P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^{N}I(y_i=c_k)+S_j \lambda} \]

其中,\(\lambda \geqslant 0\),常取\(\lambda = 1\),此時稱為拉普拉斯平滑。\(S_j\)可取第\(j\)個屬性可能的取值數。

\[P(Y=c_k)=\frac{\sum_{i=1}^{N} I(y_i=c_k)+\lambda}{N+K \lambda} \]

其中,\(K\)可取訓練集\(D\)中可能的類別數。

拉普拉斯平滑避免了因訓練集樣本不充分而導致概率估值為零的問題,並且在訓練集變大時,平滑過程所引入的先驗的影響也會逐漸變得可忽略,使得估值漸趨向於實際概率值。


朴素貝葉斯算法

實際中,往往影響一件事的因素有多個。假設,影響\(B\)的因素有\(n\)個,分別是\(b_1,b_2,\cdots, b_n\),則\(P(A|B\))可寫為:

\[P(C|b_1,b_2,\cdots,b_n)=\frac{P(C)P(b_1,b_2,\cdots,b_n|C)}{P(b_1,b_2,\cdots,b_n)} \]

根據鏈式法則,可得:

\[P(b_1,b_2,\cdots,b_n|C)=P(b_1|C)P(b_2|C,b_1)\cdots P(b_n|C,b_1,b_2,\cdots,b_{n-1}) \]

如果從\(b_1\)\(b_n\)這些特征之間,在概率分布上是條件獨立的,即每個特征\(b_i\)與其他特征都不相關。則有:

\[P(C|b_1,b_2,\cdots,b_n)=\frac{1}{Z}P(C)\prod_{i=1}^{n}P(b_i|C) \]

其中,\(Z=P(b_1,b_2,\cdots,b_n)\)\(C\)是最終的類別(class)。

上式即為朴素貝葉斯分類器的模型函數。


  • 朴素貝葉斯分類器,它能夠區分出\(k\)個類\((c_1,c_2,\cdots,c_k)\),用來分類的特征有\(n\)個:\((F_1,F_2,\cdots,F_n)\)
  • 現在有個樣本\(s\),用NB分類器對它做預測,則需要先提取出這個樣本的所有特征\(F_1\)\(F_n\),將其代入到下式中進行\(k\)次運算:

\[P(C=c_j)\prod_{i=1}^{n}P(F_i=f_i|C=c_j) \]

  • 然后比較這\(k\)次的結果,選出使得運算結果達到最大值的那個\(c_j\)作為預測值。

先驗概率和條件概率通過在訓練樣本中間做統計,即可直接獲得。


頻率 VS 概率

如果簡單地將頻率當成了概率,實際上默認了“未被觀測到”地就是出現概率未0的。這樣做顯然不合理。

解決思路1:拉普拉斯平滑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM