機器學習|樸素貝葉斯算法(一)-貝葉斯簡介及應用
機器學習|樸素貝葉斯算法(二)-用sklearn實踐貝葉斯python[機器學習|樸素貝葉斯算法(三)-深刻理解樸素貝葉斯原理](https://yq.aliyun.com/articles/411329?spm=a2c4e.11153940.blogcont408869.15.26b9b6ce7AUPEi)
在機器學習|樸素貝葉斯算法(一)-貝葉斯簡介及應用中經過計算穿長褲中女生的機率解釋了貝葉斯算法。這裏在提供另一種思路:它給咱們提供的是一種根據數據集DD的內容變化更新假設機率HH的方法。算法
這種理解在《貝葉斯思惟:統計建模的python學習法》中定義爲「歷時詮釋」,「歷時」意味着某些事情隨着時間而發生,便是假設的機率隨着看到的新數據而變化。機器學習
根據貝葉斯定理:學習
P(H|D)=P(H)P(D|H)P(D)P(H|D)=P(H)P(D|H)P(D)code
每一項的意思以下(結合第一篇女生穿長褲問題分析):blog
HH---女生,DD---穿長褲事件
$P\left(H\right)$稱爲先驗機率,即在獲得新數據前某一假設的機率 $P\left(H|D\right)$稱爲後驗機率,即在看到新數據後,咱們要計算的該假設的機率 $P\left(D|H\right)$是該假設下獲得這一數據的機率,稱爲似然 $P\left(D\right)$是在任何假設下獲得這一數據的機率,稱爲標準化常量
有些狀況下,咱們能夠基於現有背景進行得知先驗機率。好比在女生穿長褲問題中,咱們就能知道女孩在學校所佔人數的比例(機率)是多少,即便不知道具體的比例,咱們也能夠根據學校的性質(工科學校或者其餘)來大概假設出女孩的機率。
**
在其餘狀況下,先驗機率是偏主觀性的。這也是頻率學派提出的對貝葉斯學派的批評之一。由於對某一先驗機率,因爲使用不一樣背景信息做出判斷,或者由於針對相同的前提條件做出了不一樣解讀**。get
似然是貝葉斯計算中最容易知道的部分,好比女孩中穿長褲的機率。原理
標準化常量被定義爲在全部的假設條件下這一數據出現的機率,由於考慮的是最通常的狀況,因此不容易肯定這個常量在具體應用場合的現實意義。所以咱們能夠經過全機率公式來求得。囉嗦一下:cli
定理 設試驗E的樣本空間爲S,A爲E的事件,B1,B2,...,BnB1,B2,...,Bn爲S的一個劃分,且Pleft(Biright)>0(i=1,2,3,....n)Pleft(Biright)>0(i=1,2,3,....n),則
Pleft(Aright)=Pleft(A|B1right)Pleft(B1right)+Pleft(A|B2right)Pleft(B2right)+Pleft(Aright)=Pleft(A|B1right)Pleft(B1right)+Pleft(A|B2right)Pleft(B2right)+
...+Pleft(A|Bnright)Pleft(Bnright)....+Pleft(A|Bnright)Pleft(Bnright).
稱爲全機率公式.
好比,穿長褲機率: P(Boy)×P(Pants|Boy)+U×P(Girl)×P(Pants|Girl)P(Boy)×P(Pants|Boy)+U×P(Girl)×P(Pants|Girl)。
既然提到了全機率公式,爲了進一步理解貝葉斯公式,這裏給出另外一種貝葉斯公式的寫法:
P(Bi|A)=P(A|Bi)P(Bi)P(A)P(Bi|A)=P(A|Bi)P(Bi)P(A)
=P(A|Bi)P(Bi)∑nj=1P(A|Bj)P(Bj),i=1,2,...,n.=P(A|Bi)P(Bi)∑j=1nP(A|Bj)P(Bj),i=1,2,...,n.
上式中,樣本空間OmegaOmega中的一個完備事件羣leftB1,B2,...,BnrightleftB1,B2,...,Bnright,設AA爲OmegaOmega中的一個事件,且Pleft(Biright)>0,i=1,2,3,....,n,Pleft(Aright)>0Pleft(Biright)>0,i=1,2,3,....,n,Pleft(Aright)>0。推敲一下這個公式的意義:從形式上看這個公式不過是條件機率定義與全機率公式的簡單推論。可是之因此著名的緣由在於它的哲學意義。先看Pleft(B1right),Pleft(B2right),...,Pleft(Bnright)Pleft(B1right),Pleft(B2right),...,Pleft(Bnright),這是在沒有進一步信息(不知道AA發生)時,人們對事件B1,B2,...,BnB1,B2,...,Bn發生可能性大小的認識(先驗信息),在有了新信息(知道A發生)後,人們對事件B1,B2,...,BnB1,B2,...,Bn發生可能性大小新的認識體如今Pleft(B1|Aright),Pleft(B2|Aright),...,Pleft(Bn|Aright).Pleft(B1|Aright),Pleft(B2|Aright),...,Pleft(Bn|Aright).
若是咱們把事件A當作「結果」,把諸事件B1,B2,...,BnB1,B2,...,Bn當作致使這一結果的可能「緣由」,則能夠形象地把全機率公式當作由「緣由」推「結果」。仍是舉那個例子,事件AA——穿長褲,事件B1B1——女生,事件B2B2——男生,則Pleft(Aright)=Pleft(A|B1right)Pleft(B1right)+Pleft(A|B2right)Pleft(B2right)Pleft(Aright)=Pleft(A|B1right)Pleft(B1right)+Pleft(A|B2right)Pleft(B2right),這裏男生女生就是穿褲子這個「結果」的「緣由」。而貝葉斯公式正好相反,其做用在於由「結果」推「緣由」。如今有告終果A,在致使A發生的衆多緣由中,到底 是哪一個緣由致使了AA發生(或者說:究竟是哪一個緣由致使AA發生的可能性最大)?若是這裏理解有點障礙,能夠看一下我在 機器學習|樸素貝葉斯算法(二)-用sklearn實踐貝葉斯中詳細討論過的機率,似然,後驗機率的關係。
好了,關於樸素貝葉斯算法目前只學習了這麼多,以後進行實踐操做的時候還會再補充,但願能有所收穫╰( ̄ω ̄o)