機器學習 - 樸素貝葉斯法

博客內容源於《統計機器學習》一書的閱讀筆記。Python的源碼實現源於《機器學習實戰》部分內容。

首先,需要回顧下面的三個重要的公式:

  1. 條件概率:
    P(A|B)=P(AB)P(B)
  2. 全概率公式:
    P(A)=iP(A|Bi)P(Bi)
  3. 貝葉斯(Bayes)公式:
    P(Bi|A)=P(A|Bi)P(Bi)iP(A|Bi)P(Bi)

1. 樸素貝葉斯法的學習

樸素貝葉斯(naive bayes)法是基於貝葉斯定理與條件獨立假設的分類方法。樸素貝葉斯基於兩個重要的假設建立的:

1. 一個特徵出現的概率與其他特徵(條件)獨立;(特徵獨立性)
2. 每個特徵同等重要。(特徵均衡性)

【算法描述】
設輸入空間XRnn 維向量的集合,輸出空間爲類標記集合Y={c1,c2,...,ck} 。輸入爲特徵向量xX , 輸出爲標記yYX 是定義在輸入空間X 上的隨機向量,Y 是定義在輸出空間Y 上的隨機向量。P(X,Y)X,Y 的聯合概率分佈。訓練數據集

T={(x1,y1),(x2,y2),...,(xN,yN)}

P(X,Y) 獨立同分布產生。
樸素貝葉斯法通過訓練數據集學習聯合概率分佈P(X,Y)。先驗概率分佈:
P(Y=ck),k=1,2,...,K

條件概率分佈:
P(X=x|Y=ck)=P(X(1)=x(1),...,Xn=xn|Y=ck),k=1,2,...,k

於是學習到聯合概率分佈P(X,Y)

【分類】
樸素貝葉斯法分類時,對給定的輸入x ,通過學習到的模型計算後驗概率分佈P(Y=ck|X=x) ,將後驗概率最大的類作爲x類的輸出。後驗概率計算根據貝葉斯定理進行:

P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)iP(X=x|Y=ck)P(Y=ck)

由於前面已經假設了特徵獨立,所以有:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)=j=1nP(X(j)=x(j)|Y=ck)

將上式帶入到P(Y=ck|X=x) 中,得到(樸素貝葉斯的基本公式):
P(Y=ck|X=x)=P(Y=ck)nj=1P(X(j)=x(j)|Y=ck)iP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)k=1,2,...,K

那麼,樸素貝葉斯分類器就可以表示爲:
y=f(x)=argmaxckP(Y=ck|X=x)=argmaxckP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)iP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)k=1,2,...,K

由於上述表示中的分母對於所有的ck 都是相同的,所以可以略去分母,表示成:
argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K

先驗概率 ( Prior probability)
先驗概率是在缺乏某個事實的情況下描述一個變量; 而後驗概率是在考慮了一個事實之後的條件概率. 先驗概率通常是經驗豐富的專家的純主觀的估計.

後驗概率 ( posterior probability)
後驗概率是指通過調查或其它方式獲取新的附加信息,利用貝葉斯公式對先驗概率進行修正,而後得到的概率。

2. 樸素貝葉斯法使用流程

  1. 計算先驗概率和條件概率
    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
  2. 對於給定的實例x=(x(1),x(2),...,x(n))T ,計算:
    P(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K
  3. 確定實例x 的分類
    y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K

3. 舉例


這裏寫圖片描述

  1. 首先計算先驗概率和條件概率
    P(Y=1)=915P(Y=1)=615P(X(1)=1|Y=1)=29P(X(1)=2|Y=1)=39P(X(1)=3|Y=1)=49P(X(2)=S|Y=1)=19P(X(2)=M|Y=1)=49P(X(2)=L|Y=1)=49P(X(1)=1|Y=1)=36P(X(1)=2|Y=1)=26P(X(1)=3|Y=1)=16P(X(2)=S|Y=1)=36P(X(2)=M|Y=1)=26P(X(2)=L|Y=1)=16
  2. 對於給定的x=(2,S)T 計算:
    P(Y=1)P(X(1)=2|Y=1)P(X(2)=S|Y=1)=9153919=145P(Y=1)P(X(1)=2|Y=1)P(X(2)=S|Y=1)=6152636=115
  3. 根據得出的概率,取得最大的概率的類,所以:
    y=1.
發佈了110 篇原創文章 · 獲贊 125 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章