最大似然估計、最大後驗估計與樸素貝葉斯分類演算法

  • 2019 年 10 月 30 日
  • 筆記

最大似然估計、最大後驗估計與樸素貝葉斯分類演算法

目錄

  一、前言

  二、概率論基礎

  三、最大似然估計

  四、最大後驗估計

  五、樸素貝葉斯分類

  六、參考文獻

 

一、前言

  本篇文章的主要內容為筆者對概率論基礎內容的回顧,及個人對其中一些知識點的解讀。另外,在這些上述知識的基礎之上,回顧了概率推斷的基礎內容最大似然估計與最大後驗估計。最後,文章的結尾回顧了樸素貝葉斯分類方法的基本流程,並且用一個小案例來幫助讀者更好地掌握該方法的基本流程。

二、概率論基礎

(1)概率

  定義[1]:設E是隨機實驗,S是它的樣本空間。對於E的每一個事件A賦予一個實數,記為P(A),稱為事件A的概率,如果集和函數P(.)滿足如下條件:

  (1)非負性:對每一個事件A,有P(A)>=0;

  (2)規範性:對於必然事件S,有p(S)=1;

  (3)可列可加性:設A1,A2,…是兩兩互不相容的事件,即對於AiAj=Ø,i≠j,i,j=1,2,…,有:

  P(A1∪A2∪A3…)=P(A1)+P(A2)+P(A3)+….

(2)隨機變數

  一個隨機變數指的是一個可以隨機地取多種數值的的變數,本文中使用大寫字母來表示隨機變數,其取值則用小寫字母表示,如:隨機變數X,可以取值為{x1,x2,x3,…}。隨機變數只是一種對隨機現象所有可能狀態的表示,其取值並不一定為實數,並且隨機變數還需要搭配後面將會講到的概率分布來確切地表達每一種狀態可能發生的概率。例如,拋擲一枚硬幣,硬幣最後落地可能出現的結果是一個隨機事件,我們可以用一個隨機變數X來表示最後可能出現的結果,那麼隨機變數可能的取值為{正面,反面};拋擲一個骰子,我們將落地後正面的取值用隨機變數Y來表示,其可能的取值為{1,2,3,4,5,6}。

(3)隨機變數的概率分布

  隨機變數的概率分布用來說明隨機變數所有可能取值的概率大小。由於隨機變數的取值可以是離散的,如上述拋擲硬幣和骰子例子;也可以是連續的,即隨機變數所有的可能取值無法逐一列舉出來,其取值可以為實數軸內某一區間內的任意一個點[2],例如:一個人雙十一在淘寶上的消費數額,一個人每天的運動時長等等。對於離散型隨機變數與連續型隨機變數,分別使用概率品質函數與概率密度函數來描述其概率分布。

  概率品質函數:一個隨機變數X的概率品質函數將隨機變數的每一個取值都映射到隨機變數取該值時所對應的概率上,我們使用X~P(X)來表達”隨機變數X服從P(X)分布“。一個隨機變數X的概率品質函數P(X)需要滿足如下性質:

  (1)定義域必須是隨機變數X所有可能的取值;

  (2)對X的任意取值x,P(x)>=0 並且P(x)<=1

  (3)Σx∈X P(X)=1

  還是以拋硬幣來作為例子,我們使用隨機變數X來表示拋硬幣最後可能的結果,該隨機變數的所有可能取值為{正面,反面},根據我們的經驗,一枚硬幣的拋擲結果為正面或者反面的概率均為0.5,那麼隨機變數X所服從的概率品質分布為:P(X=正面)=0.5,P(X=反面)=0.5。

  概率密度函數:由於連續型隨機變數的所有可能取值無法逐一列舉,其概率分布的描述方式與離散性隨機變數不同,使用的是概率密度函數。對於一個概率密度函數F(X)而言,需要滿足如下性質:

  (1)其值域必須是隨機變數所有可能取值的集和

  (2)對X的任意取值x,F(x)>=0

  (3)∫F(x)dx=1

  對於連續型隨機變數X而言,其取某一個值的概率為0,即P(X=x1)=0。常見的概率密度函數有均勻分布和正態分布。

(4)聯合概率分布

  聯合分布指的是兩個或者多個隨機變數同時取某些值的概率分布。例如,對於隨機變數X和Y而言,當X=x1,同時Y=y1時,其聯合概率分布為P(X=x1,Y=y1)。下面以一個更為具體的例子來說明一下聯合概率分布。一個盒子中有兩紅一白的三個球,現在從中不放回取出兩個球,求下面的概率:

  (1)第一次取出紅球的概率;

  (2)第二次取出紅球的概率;

  (3)兩次同時取出紅球的概率。

  解答:

  (1)以隨機變數X來表示第一次取球的結果,顯然P(X=紅球)=2/3;

  (2)以隨機變數Y來表示第二次取球的結果,本問求的時P(Y=紅球)。需要注意的是採取的是“不放回”的取球方式,第一次的取球結果會影響到盒子中紅白球的比例,也就影響到了第二次取球的概率,因此需要根據第一次的取球結果來分情況探討第二次取紅球的所有可能的情況。如果第一次從兩個紅球中取出一個紅球的話,那麼第二次取出紅球的所有可能情況為{紅紅,紅紅};如果第一次取出白球的話,那麼第二次就可以從剩餘的兩個紅球中取,因此所有可能的情況為{白紅,白紅}。總體的樣本空間為{紅白,紅紅,紅白,紅紅,白紅,白紅},共6種情況,那麼P(Y=紅球)=2/3;

  (3)第三問求的是當X=紅球時,同時Y=紅球的概率,是一個聯合分布。根據上一問中所得出的樣本空間的情況,可知滿足條件的情況只有兩種,因此P(X=紅球,Y=紅球)=1/3。

  如果兩個隨機變數相互之間是獨立的,那麼我們就可以得到如下結論:對任意的x∈X,y∈Y,有P(X=x, Y=y)=P(X=x)*P(Y=Y)。借用上面的例子,這一次變為有放回的抽取方式,再求第三問。由於第一次抽樣的結果不會影響第二次抽樣的時盒子中球的比例,因此可以將兩個隨機變數視為獨立的,根據上述結論,可以求得P(X=紅球,Y=紅球)=(2/3)*(2/3)=4/9。現在使用傳統的分析樣本空間的方式來求這個問題,兩次有放回抽樣的所有可能情況為{紅紅,紅紅,紅白,紅紅,紅紅,紅白,白紅,白紅,白白},其中滿足條件的樣本點數來為四個,所以所求概率為4/9,這一結果與根據獨立性所得出的結果是一致的。

(5)條件概率

  條件概率指的是在某一個事件發生的基礎之上,另一個事件發生的概率。條件概率的符號表達為P(Y=y1|X=x1),可解釋為在隨機變數X取x1的情況下,Y取y1的概率。筆者以為條件概率其實是根據這一條件對總的樣本空間取了一個子集,然後在這一子集中再討論另外一個事件發生的概率。還是以上述取球的題目為例子,現在添加一個問題:在第一次取出紅球的情況下,第二次取出紅球的概率。本題所要求的概率為P(Y=紅球|X=紅球),總的樣本空間為{紅白,紅紅,紅白,紅紅,白紅,白紅},根據條件“X=紅球“從總體的樣本空間中劃分出一個滿足條件的子集為{紅白,紅紅,紅白,紅紅},其中第二次為紅球的樣本數為2,因此P(Y=紅球|X=紅球)=1/2。求解條件概率還可以使用條件概率的定義,即:如果P(X=x)≠0的話,P(Y=y|X=x)=P(Y=y, X=x)/P(X=x),讀者們可以嘗試一下應用定義計算的結果也是1/2。

(6)全概率公式

   如果B1,B2,B3…是對樣本空間S的一個劃分,即B1,B2,B3…這些事件不為空,兩兩不相交,且B1∪B2∪B3∪…=S,那麼對於事件A,有:

P(A)=P(A|B1)P(B1)+P(A|B2)P(B2)+P(A|B3)P(B3)…。

  這個式子被稱為全概率公式。結合條件概率的定義,該公式還可以變為:P(A)=P(A,B1)+P(A,B2)+P(A,B3)…。現在我們用全概率公式來求取球問題中的第二問。第一次取球的隨機變數可取的值為:X=紅球 或者 白球,可以將第一次取球視為對樣本空間的一種劃分,那麼P(Y=紅球)=P(X=紅球,Y=紅球)+P(X=白球,Y=紅球)。其中P(X=紅球,Y=紅球)的答案在第三問中已經解答過了,為1/3。樣本空間為{紅白,紅紅,紅白,紅紅,白紅,白紅},而第一次取白球,第二次取紅球的樣本點只有兩個,因此P(X=白球,Y=紅球)=1/3,所以P(Y=紅球)=2/3。

(6)貝葉斯法則

  貝葉斯法則在筆者看來,其實就是將條件概率與全概率公式組合在一起了。其定義如下:如果B1,B2,B3…是對樣本空間S的一個劃分,且P(A)>0,對任意的i,P(Bi)>0,則有P(Bi|A)=P(A|Bi)*P(Bi)/P(A)=P(A|Bi)*P(Bi)/∑P(A|Bi)。

三、最大似然估計

  最大似然估計是統計推斷的一部分內容,主要目的為通過有限的樣本來估計整體的分布情況。接下來,先給出一個應用最大似然估計的例子,然後再說明更普遍意義上的最大似然估計。假設現在有一枚不均勻的硬幣,由於硬幣是不均勻的,所以其正反面出現的概率是不一樣的,現在將硬幣拋擲10次,其結果為{正,正,正,負,負,正,正,正,負,正},現在需要求拋擲該硬幣所出現結果的概率分布。現在以隨機變數Xi來代表第i次拋擲硬幣可能出現的結果,依據我們的經驗可知,拋擲一枚硬幣的可能的結果只有正面和反面,因此可以假設Xi服從貝努利分布,即: P(Xi=正面; θ)=θ;P(Xi=反面; θ)=1-θ,θ>0 且 θ<1,並且每一次拋擲都互不相關。設x={X1=正,X2=正,X3=正,X4=負,…,X10=正},根據我們所假設的分布,十次實驗要得到我們現有結果的可能性為:P(x)=θ7(1-θ)3,這個函數也被稱為似然函數,可記為L(θ|x)。最大似然估計所需要求的θ值就是使得似然函數最大的θ值。以θ為自變數,繪製L(θ|x)函數的影像,如下圖所示。我們可以用微積分的知識來求得θ=argmax(L(θ|x))。似然函數在一階導數為0的位置取得最值,似然函數對參數θ的導數為:7*θ6(1-θ)3-3*θ7(1-θ)2=0,解得θ=0.7。

 

  下面摘錄一段對最大似然估計的概括性描述[3]:

  假設X1,X2,X3,…Xn是n個獨立同分布(兩兩之間相互獨立,並且都服從統一概率分布)的隨機變數,所服從的概率分布為f(Xi;θ),i=1,2,…,n,以θ作為概率分布的參數。現在假設x1, x2,…, xn,是上述n個隨機變數所取的值,設x=(x1, x2,…, xn)。似然函數為L(θ|x)=∏f(xi;θ),i=1,2,…,n,使得似然函數最大的θ被稱之為θ的最大似然估計。

  對於所假設的分布是貝努利分布的最大似然估計而言,在計算最大似然估計的時候可以對似然函數取自然底數的對數,設t為n個樣本中為正例數量,得到:In(L(θ|x))=t*In(θ)+(n-t)*In(1-θ),通過求導,可以得到一般結論即其最大似然估計為:θ=t/n。

四、最大後驗估計

  在最大似然估計中,我們將概率分布的參數視為一個固定的常數值,然而在最大後驗估計中,該參數也被視為一個隨機變數。以最大似然估計中所說的硬幣為例,不同於在最大似然估計中所假設的第i次拋擲的結果是隨機變數Xi,在θ為隨機變數的情況下,第i次拋擲的結果變為服從在θ取某一個值的條件下的條件概率分布。依舊假設該條件概率分布服從貝努利分布:P(Xi=正面|θ)=θ;P(Xi=反面|θ)=1-θ,θ>0 且 θ<1,並且假設每次拋擲的結果是以θ為條件相互獨立的,設硬幣為正面的概率θ服從分布:P(θ)。在現有樣本所出現結果的情況下,θ取某個值的概率為:P(θ|x),使得這個概率最大的θ就是所需要求的。根據條件概率公式可得:P(θ|x)=P(x, θ)/P(x)=P(x|θ)*P(θ)/P(x),其中P(x)為拋擲結果在不考慮θ的情況下的先驗概率。由於P(x)和θ無關,在計算最大後驗估計的時候可以不考慮,因此所要求的結果為:θ=argmax P(x|θ)*P(θ)。現在假設P(θ)為μ為0.5,σ為0.1的正態分布,即:10/√2π*exp(-50(θ-0.5)2)。P(x|θ)*P(θ)=P(X1=正|θ)*P(X2=正|θ)*P(X3=正|θ)*…*P(X10=正|θ)*P(θ)=θ7(1-θ)3*10/√2π*exp(-50(θ-0.5)2),應用類似於最大似然估計中的求最值的方法,可以得到最終的θ的值。

五、樸素貝葉斯演算法

  下面的內容會通過一個案例來介紹樸素貝葉斯演算法在分類中的應用,該樣例摘自參考文獻4。

  現有如下樣本:

 

  求樣本{2,S}屬於某一類別的概率?

  將特徵1視作視為隨機變數X1,取值範圍為{1,2,3};將特徵2視為隨機變數X2,取值範圍為{S,M,L};類別視為隨機變數Y,取值範圍為{-1,1}。根據題意,可知所需要求概率為P(Y=-1|X1=2,X2=S)及P(Y=1|X1=2,X2=S),下面我們來求第一個概率,第二個概率的求法與第一個是一樣。

  根據條件概率公式,上述概率可轉化為:P(Y=-1|X1=2,X2=S)= P(X1=2,X2=S|Y=-1)*P(Y=-1)/P(X1=2,X2=S)。在應用樸素貝葉斯方法的時候,有一個很重要的假設,那就是條件獨立假設:在表示類別特徵的隨機變數取某個值的條件下,表示各個特徵的隨機變數是相互獨立的。於是就有:

  P(Y=-1|X1=2,X2=S)= P(X1=2,X2=S|Y=-1)*P(Y=-1)/P(X1=2,X2=S)=P(X1=2|Y=-1)*P(X2=S|Y=-1)*P(Y=-1)/P(X1=2,X2=S)。(1)

  我們可以將類別作為條件,對總體的樣本空間進行一次完備劃分,根據全概率公式和條件獨立假設,可將等式(1)中的分母轉為:

  P(X1=2,X2=S)=P(X1=2,X2=S|Y=-1)*P(Y=-1)+P(X1=2,X2=S|Y=1)*P(Y=1)=P(X1=2|Y=-1)*P(X2=S|Y=-1)*P(Y=-1)+P(X1=2|Y=1)*P(X2=S|Y=1)*P(Y=1)。   (2)

  接下來我們只需要求出:P(X1=2|Y=-1),P(X2=S|Y=-1),P(Y=-1),P(Y=1),P(X1=2|Y=1),P(X2=S|Y=1)。

  直覺上,我們會通過計算現有樣本中所有符合條件的樣本所佔的比例來計算上述六個概率值,雖然最後得到的結果是對的,但是李航老師在[4]中提到了使用最大似然估計來求解上面這四個概率的方法,具體讀者可以參考該書所對應的的內容。筆者以為書上的結論,是基於P(X1|Y),P(X2|Y),P(Y)這三個分布是貝努利分布這一假設得來的。接下來直接使用該結論,計算上述四個概率值。

  P(X1=2|Y=-1)可理解為:當類別為-1的樣本時,X1為2的可能性,結果為:P(X1=2|Y=-1)=2/6;同理,P(X1=2|Y=1)=3/9

  P(X2=S|Y=-1)可理解為:當類別為-1的樣本時,X2為S的可能性,結果為:P(X2=S|Y=-1)=3/6;同理,P(X1=S|Y=1)=1/9

  P(Y=-1)可理解為:樣本為-1類的概率,結果為:P(Y=-1)=6/15;

  P(Y=1)可理解為:樣本為1類的概率,結果為:P(Y=1)=9/15;

  最終得到:P(Y=-1|X1=2,X2=S)=3/4。

  以上就是筆者對最大似然估計、最大後驗概率及貝葉斯分類的一個簡單總結。筆者水平有限,有錯誤的地方還請各位讀者批評指正。

六、參考文獻

[1]概率論與數理統計(第四版),浙江大學;

[2]https://baike.baidu.com/item/%E8%BF%9E%E7%BB%AD%E5%9E%8B%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F

[3]《Introduction to Probability and Statistical Inference》 by George Roussas;

[4]《統計學習方法》,李航著。