博客內容源於《統計機器學習》一書的閱讀筆記。Python的源碼實現源於《機器學習實戰》部分內容。
首先,需要回顧下面的三個重要的公式:
- 條件概率:
P(A|B)=P(AB)P(B) - 全概率公式:
P(A)=∑iP(A|Bi)P(Bi) - 貝葉斯(Bayes)公式:
P(Bi|A)=P(A|Bi)P(Bi)∑iP(A|Bi)P(Bi)
1. 樸素貝葉斯法的學習
樸素貝葉斯(naive bayes)法是基於貝葉斯定理與條件獨立假設的分類方法。樸素貝葉斯基於兩個重要的假設建立的:
1. 一個特徵出現的概率與其他特徵(條件)獨立;(特徵獨立性)
2. 每個特徵同等重要。(特徵均衡性)
【算法描述】
設輸入空間
由
樸素貝葉斯法通過訓練數據集學習聯合概率分佈
條件概率分佈:
於是學習到聯合概率分佈
【分類】
樸素貝葉斯法分類時,對給定的輸入
由於前面已經假設了特徵獨立,所以有:
將上式帶入到
那麼,樸素貝葉斯分類器就可以表示爲:
由於上述表示中的分母對於所有的
先驗概率 ( Prior probability)
先驗概率是在缺乏某個事實的情況下描述一個變量; 而後驗概率是在考慮了一個事實之後的條件概率. 先驗概率通常是經驗豐富的專家的純主觀的估計.後驗概率 ( posterior probability)
後驗概率是指通過調查或其它方式獲取新的附加信息,利用貝葉斯公式對先驗概率進行修正,而後得到的概率。
2. 樸素貝葉斯法使用流程
- 計算先驗概率和條件概率
P(Y=ck)=∑Ni=1I(yi=ck)N,k=1,2,...,K.P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i,yi=ck)∑Ni=1I(yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K - 對於給定的實例
x=(x(1),x(2),...,x(n))T ,計算:
P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K - 確定實例
x 的分類
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K
3. 舉例
- 首先計算先驗概率和條件概率
P(Y=1)=915,P(Y=−1)=615P(X(1)=1|Y=1)=29,P(X(1)=2|Y=1)=39,P(X(1)=3|Y=1)=49P(X(2)=S|Y=1)=19,P(X(2)=M|Y=1)=49,P(X(2)=L|Y=1)=49P(X(1)=1|Y=−1)=36,P(X(1)=2|Y=−1)=26,P(X(1)=3|Y=−1)=16P(X(2)=S|Y=−1)=36,P(X(2)=M|Y=−1)=26,P(X(2)=L|Y=−1)=16 - 對於給定的
x=(2,S)T 計算:
P(Y=1)P(X(1)=2|Y=1)P(X(2)=S|Y=1)=915⋅39⋅19=145P(Y=−1)P(X(1)=2|Y=−1)P(X(2)=S|Y=−1)=615⋅26⋅36=115 - 根據得出的概率,取得最大的概率的類,所以:
y=−1.