1. 程式人生 > >貝葉斯篇:貝葉斯的概率推到,樸素貝葉斯分類器及Python實現

貝葉斯篇:貝葉斯的概率推到,樸素貝葉斯分類器及Python實現

在瞭解貝葉演算法前:要有一定的概率與數理統計基礎以及注意事項

條件概率

首先,理解這兩個公式的前提是理解條件概率,因此先複習條件概率。
P(A|B)=P(AB)P(B)

那麼由條件概率出發,看一下變形出來的乘法公式:
P(AB)=P(A)P(B|A)=P(B)P(A|B)

理解上面公式比較好的方法是看韋恩圖。像瞭解可以先百度。

事件的獨立性和概率的乘法定理

有兩個事件A和B,若P(A)=P(A|B),即B的發生與否對A發生的可能性毫無影響,則稱A,B兩事件獨立。

若干個獨立事件A1,A1,……An之積的概率,等於各事件概率的乘積

P(A1…An)=P(A1)…P(An)

它被稱為概率的乘法定理,其重要條件是兩事件相互獨立。相加是互斥,相乘是獨立。

全概率

景點案例:
一個村子與三個小偷,小偷偷村子的事件兩兩互斥,求村子被偷的概率。
解釋:假設這三個小偷編號為A1,A2,A2;
偷東西的事件標記為B,不偷的話標記為:B¯
那麼被偷的概率就是:要麼是A1,要麼是A2,要麼是A3
如果是A1, 概率是什麼呢?首先得是A1,其次是村子被偷,也即是兩個事件都滿足,所以是P(A1B)
同理,可以得到P(A2B),P(A

3B)
又因這三個小偷兩兩互斥,表示不會同時去偷。所以被偷的概率是:
P(B)=P(A1B)+P(A2B)+P(A3B)
當然按照條件概率或者乘法公式展開:
P(B)=P(A1)P(B|A1)+P(A2)P(B|A2)+P(A3)P(B|A3)(*)
P(Ai),P(B|Ai) 是已知的
問:是不是有想展開為:
P(B)=P(B)P(A1|
B)+P(B)P(A1|B)+P(B)P(A1|B)

P(B)=P(B)P(A1|B)+P(B)P(A1|B)+P(B)P(A1|B)的衝動?

當然這個式子是沒錯的,但是體現不了這個問題的解法:分階段。

(*)式子體現的是問題分為兩個階段:
1)選人,分割問題
2)計算分割的子問題的條件概率

對應的這裡來便是:
1)選小偷,誰去偷
2)選定的小偷作為條件,那麼他去偷的條件概率是什麼

所以將問題拆解為階段的問題便是全概率公式針對的問題。

貝葉斯公式

貝葉斯公式有意思極了,簡單說就是逆全概公式。

前面是問總體看來被偷的概率是多少,現在是知道了總體被偷了這件事,概率並不知道,問你個更有意思的問題,像是偵探斷案:是哪個小偷的偷的,計算每個小偷偷的概率。
這個特性用在機器學習,人工智慧領域相當好用。
也就是求:P(Ai|B)=P(AiB)P(B)
Ai:iB:
首先是一個淳樸的條件概率的展開。
分母裡出現了P(B),剛剛討論的全概公式拿來用一用!
P(AiB)=P(Ai)P(B|Ai)

對應到上面的例子就鮮活一些:村子被偷了,求Ai偷的概率。
自然現在條件是