用于精准判断的贝叶斯定理
? ? 說起貝葉斯定理,不得不說條件概率,所謂“條件概率”(Conditional probability),指在事件B發生的情況下,事件A發生的概率,用P(A|B)來表示。條件概率計算公式為P(A|B) = P(AB)/P(B)。
? ? 條件概率公式是一個定義公式,或者說是公理化的,不好證明和推導。只能通過邏輯來理解了,AB都發生的概率可以理解成B發生的概率乘以B發生的情況下A發生的概率,也即P(AB)=P(B)P(A|B),兩邊除以P(B),得到P(A|B)=P(AB)/P(B)。
? ? ? ?舉個例子:根據大量數據統計,大熊貓活到十歲的概率是0.8,活到十五歲的概率是0.6,若現有一只大熊貓已經十歲了,則他活到十五歲的概率是多少?
? ? 根據條件概率公式:P(15歲|10歲)=P(15歲*10歲)/P(10歲),大熊貓活到十五歲,顯然就活過了十歲,所以P(15歲*10歲)=P(15歲),則P(15歲|10歲)=P(15歲)/P(10歲)=0.6/0.8=0.75。
? ? ? ?理解了條件概率后,我們再來看看貝葉斯定理。
?
? ? ? ?貝葉斯定理由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 )提出,即:P(A|B)=P(B|A)P(A)/P(B)。
? ? ? ?有了條件概率公式,貝葉斯定理的推導和證明非常簡單。
? ? ? ?根據條件概率定義:
P(A|B)=P(AB)/P(B),同理P(B|A)=P(BA)/P(A)
則:P(AB)=P(A|B)P(B),P(BA)=P(B|A)P(A)
P(AB)表示A、B同時發生的概率,P(BA)表示B、A同時發生的概率,根據交換律,P(AB)=P(BA)
所以,P(A|B)P(B)=P(B|A)P(A)
則:P(A|B)=P(B|A)P(A)/P(B)
? ? ? ?貝葉斯定理本身和其證明過程都簡單明了,看起來不起眼,但在實際應用中卻顯示出了令人吃驚的強大!
? ? ? ?在舉實例之前,先了解下貝葉斯定理中的一些概念,把貝葉斯公式作下變形,得到如下形式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?P(A|B) = (P(B|A)/P(B))*P(A)
? ? ? ?其中,把P(A)稱為“先驗概率”(Prior probability),即在B事件發生之前,我們對A事件概率的一個判斷。P(A|B)稱為“后驗概率”(Posterior probability),即在B事件發生之后,我們對A事件概率的重新評估。P(B|A)/P(B)稱為“調整因子”,調整因子可以大于1,也可以小于1,即B事件發生后,對A事件發生的概率是增強作用還是削弱作用。
即貝葉斯定理可表述成:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?后驗概率 = 調整因子 * 先驗概率
? ? 當然還有把P(B|A)稱為“似然度”,P(B)稱為“標準化常量”等。但個人認為不摻雜太多的概念,先把貝葉斯定理理解成“后驗概率 = 調整因子 * 先驗概率”的方式更利于對該定理的理解。
? ? ? ?貝葉斯定理在做判斷上的應用:
(1)有兩個碗,1號碗里有30顆水果糖和10塊巧克力糖,2號碗里有20顆水果糖和20塊巧克力糖。然后把碗蓋住。隨機選擇一個碗,從里面摸出了一顆水果糖。問題:這顆水果糖來自1號碗的概率是多少?
?
? ? 我們希望得到概率P(1號碗|水果糖),但怎樣進行計算并非顯而易見。問題如果換成在1號碗中水果糖的概率則簡單的多,P(水果糖|1號碗)=30顆水果糖/(30顆水果糖和10塊巧克力糖)=3/4,但可惜的是條件概率并不滿足交換律,P(1號碗|水果糖)和P(水果糖|1號碗)并不相同。有時,如果P(A|B)不好計算,而P(B|A)較好計算,那么可以試試貝葉斯定理,提供一種從P(B|A)得到P(A|B)的方法。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P(1號碗|水果糖)=(P(水果糖|1號碗)/P(水果糖))*P(1號碗)
1).P(水果糖|1號碗)前面算過=3/4;
2).兩個碗的選擇是隨機的,所以P(1號碗)=1/2;
3).P(水果糖),兩個碗總糖果數是30顆水果糖+10塊巧克力糖+20顆水果糖+20塊巧克力糖=80,水果糖的數量是30+20=50,因此P(水果糖)=50/80=5/8;(注意這里是特例,因為選擇兩個碗的機會相等,兩個碗中糖果的數量又都一樣,一般情況下需要使用全概率公式計算。)
4).因此,P(1號碗|水果糖)=((3/4)/(5/8))*(1/2)=3/5。
5).這個例子我們需要關注的是信息條件:抓出的是水果糖。如果沒有這個條件的存在,先驗概率P(1號碗)=1/2(50%),有個這個條件后,后驗概率提升到了3/5(60%)。
? ? ? ??看到這里,很多朋友就要問了,能解決這個例子又有什么用呢?現實世界可不是摸個水果糖這么簡單。我們再看下一個例子:
(2)北京地區肝癌發病率為萬分之四(0.0004),使用甲胎蛋白法檢測,患者確實得病的情況下,99%呈現陽性,患者沒有得病的情況下,0.1%呈現陽性。現在一個患者肝癌檢測出陽性,問題:該患者患肝癌的概率是多少?
?
? ? ? ?我們把這兩個應用對應下:
? ? 有兩個碗(一個患肝癌碗,一個不患肝癌碗),1號碗里有水果糖99個(陽性糖99個),巧克力糖1個(陰性糖1個),2號碗里有水果糖1個(陽性糖1個),巧克力糖999個(陰性糖999個),隨機選擇一個碗,從里面摸出了一顆水果糖(陽性糖)。問題:這顆水果糖(陽性糖)來自1號碗(患肝癌碗)的概率是多少?
? ? ? ?看到沒,除了水果糖和巧克力糖的數量不一樣,其他是不是一模一樣的!
? ? ? ?我們來計算下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?P(患肝癌|陽性)=(P(陽性|患肝癌)/P(陽性))*P(患肝癌)
1).P(陽性|患肝癌)=0.99;
2).P(患肝癌)=0.0004
3).P(陽性)的計算稍微復雜些,在這第二個例子中,患肝癌碗和不患肝癌碗的選擇機會是不均等的,2個碗中糖果的數量也不一樣。一般的,采用全概率公式來計算P(B)。設事件A為患肝癌,A-為不患肝癌,顯然A和A-是互斥和完備的,構成全集空間,則根據全概率公式(推導過程見最后):P(B)=P(A)P(B|A)+P(A-)P(B|A-)。P(陽性)=P(患肝癌)P(陽性|患肝癌)+P(不患肝癌)P(陽性|不患肝癌)=0.0004*0.99+(1-0.0004)*(0.001)=0.001392
4).因此,P(患肝癌|陽性)=(P(陽性|患肝癌)/P(陽性))*P(患肝癌)=((0.99)/(0.001392))*(0.0004)=28.45%。
? ? 上面疾病檢測的例子在網上有很多,基本都從“假陽性”的方面說明陽性結果不足以說明病人得病。但從貝葉斯思想的角度上看,患肝癌的先驗概率P(患肝癌)=0.0004(0.04%)的概率很低,在檢測結果呈陽性事件發生后,患肝癌的后驗概率達到了28.45%,即呈陽性的事件大大增強了患肝癌的概率,這時候需要的是引起高度重視。當然,從結果上看,檢測結果呈陽性而真實患肝癌的概率不到30%,這也是為什么肝癌檢測第一次呈陽性的人,還需要做第二次檢測的原因。
附:全概率公式的推導
?
設紅色部分A和綠色部分A-構成全集空間S。
?
則B可分為2部分:白色斜線部分和黑色橫線部分。這兩部分分別等于P(BA)和P(BA-)。
因此,P(B)=P(BA)+P(BA-),根據條件概率公式:
P(B|A)=P(BA)/P(A),P(B|A-)=P(BA-)/P(A-),則:
P(BA)=P(B|A)P(A),P(BA-)=P(B|A-)P(A-)
所以:P(B)=P(B|A)P(A)+P(B|A-)P(A-)
?
參考文獻:
(1)貝葉斯推斷及其互聯網應用(一):定理簡介http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
(2)精準的判斷,離不開精準的概率計算:《得到App》-《卓老板聊科技》
?
總結
以上是生活随笔為你收集整理的用于精准判断的贝叶斯定理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基本数据类型的注意事项
- 下一篇: 求约束条件下极值的拉格朗日乘子法