tft每日頭條

 > 科技

 > 貝葉斯算法實例講解

貝葉斯算法實例講解

科技 更新时间:2024-08-02 19:47:58

貝葉斯定理是什麼,有什麼用處?可能很多人都聽過這個貝葉斯定理,卻對它一知半解。事實上,不懂貝葉斯定理不會讓我們的生活崩塌,不會讓我們的生活一團亂麻,但是一旦掌握了貝葉斯定理,在很多決策場景中,我們将會變得更加明智。

今天我們将通過一個實際生活中的案例,用最通俗的方式幫助大家理解它。後續的話,我會為大家講解如何用Python在實際案例中應用貝葉斯定理,感興趣的朋友歡迎關注哦

小明到底有沒有得癌症?

這是一個非常經典的案例,令人難以想象的是,很多時候一些醫生的誤診竟是因為他們不懂貝葉斯定理!

考慮這樣的場景,醫生常通過某種血檢來輔助判斷病人是否罹患某種癌症。但是這種血檢返回的結果并不是百分百的精準,當患者的确患病時,血檢返回陽性的概率為98%;當患者沒有患病時,血檢返回陰性的概率為97%。已知有千分之一的人會得這種癌症。

現在小明做了這種血檢,并且檢測結果顯示陽性,那麼請問他得病的可能性大,還是沒病的可能性大呢?

用直覺來判斷,是不是第一反應就是小明大概率得了這種癌症了?

然而事實并非如此,小明得病的概率僅有3.17%!是不是非常難以置信?檢驗為陽性的時候,小明患病的概率竟然隻有3.17%!現在應該很多同學不認可這個結果,那麼接下來我們就看一下貝葉斯定理是個什麼東西。

條件概率

認識貝葉斯定理之前,我們有必要先了解下條件概率以及它的一些性質。

條件概率是指在某些背景約束(或前提條件)下某事件發生的概率,比如令一名學生考上清華大學作為事件A,其概率為P(A),學生是女生作為事件B,其概率為P(B),那麼在學生是女生的前提條件下,學生考上清華的概率就是P(A|B)。下面我們分别考慮事件A與事件B之間是否相互獨立的情況。

  • 事件A與事件B相互獨立:
  • 如果事件A和時間B是相互獨立的,那麼P(A)=P(A|B),無論B是否發生,對于事件A的發生沒有影響,這時也有P(AB)=P(A)P(B),即事件A、B同時發生的概率是兩個事件各自發生概率的乘積。
  • 事件A與事件B之間不相互獨立:
  • 事件A、B同時發生的概率為P(AB),那麼P(AB)=P(A|B)P(B)=P(B|A)P(A),也就是說兩事件同時發生的概率為其中一個事件發生的概率乘以在該事件發生的前提下另一事件發生的概率。無論事件A、B之間是否相互獨立,這個等式都成立,它就是貝葉斯定理的基礎。

貝葉斯算法實例講解(數據分析入門貝葉斯定理)1

貝葉斯定理

從式(1)可以得知:

貝葉斯算法實例講解(數據分析入門貝葉斯定理)2

式(2)就是鼎鼎大名的貝葉斯定理了,我們來從另一個角度理解一下它的意義。我們用數據集D替換事件B,用假設H替換事件A,得到:

貝葉斯算法實例講解(數據分析入門貝葉斯定理)3

這就給我們提供了一種方法,可以根據數據集D的變化不斷更新假設H發生的概率,這種方式被稱作“曆史诠釋”。

  • P(H)可以理解為假設H發生的先驗概率;
  • P(H|D)則可以理解為假設H發生的後驗概率,是在我們獲得了更多數據的情況下推斷出的更先進的概率;
  • 我們每次獲得的新知識,也就是後驗的數據,都會作為下一次計算的先驗數據;
  • P(D|H)可以被理解為似然度,也就是在假設H發生的情況下,數據分布剛好是D的概率;
  • P(D)則是在任何假設下數據分布剛好為D的概率,我們把它稱為标準化常量。

那麼我們現在來回頭看小明是否得癌症的問題。

貝葉斯算法實例講解(數據分析入門貝葉斯定理)4

等式的前半部分就是貝葉斯定理的公式。而在後邊計算P(陽性)的時候,可以看到我們用了兩部分相加得到了P(陽性)。這裡我們不得不介紹一下全概率公式:

貝葉斯算法實例講解(數據分析入門貝葉斯定理)5

拿我們這個例子來說,P(B)就是P(陽性),然而P(陽性)的數據我們無法直接獲取,但是我們知道在患病和無病的條件下血檢為陽性的概率,也知道患病和無病的概率,因此把患病情況下血檢為陽性的條件概率乘以患病的概率,再加上無病情況下血檢為陽性的條件概率乘以無病的概率,就是所有情況下血檢為陽性事件發生的概率了,即:

貝葉斯算法實例講解(數據分析入門貝葉斯定理)6

那麼最後我們給出完整的計算過程:

貝葉斯算法實例講解(數據分析入門貝葉斯定理)7

你學會了嗎?有任何問題都可以在下方留言,我會一一回答!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved