永遠不死的理論:貝葉斯定理

一隻貓的文字圈 發佈 2024-05-07T04:02:18.986061+00:00

今天要說的這個定理,是被譽為「永遠不會死掉的理論」的貝葉斯定理。它由英國數學家貝葉斯(Thomas Bayes 1702-1761)所發展。

今天要說的這個定理,是被譽為「永遠不會死掉的理論」的貝葉斯定理。它由英國數學家貝葉斯(Thomas Bayes 1702-1761)所發展。這個定理體現為下面這個著名、簡潔的貝葉斯公式:

這個公式通常用來解決條件概率問題,也就是求出在已知特定條件下,另外一件事情會發生的概率。我們用一個例子介紹一下公式里這些符號的意義:

首先 A 和 B 分別代表兩個不同的事件,一個代表我們期望知道其發生概率的某個事件(例如上班遲到),一個代表已知的條件(例如早上睡過頭)。

把代表這些事件的字母用大寫的P和括號包起來,就表示這些事件的發生概率,假設我們看的是在30天裡的概率。

P(A|B) 表示在早上睡過頭的情況下,上班遲到的概率,這個概率是我們要求解的,數學上等於(30天裡早上睡過頭且上班遲到的天數 / 30天裡早上睡過頭的總天數)。

P(B|A) 與P(A|B)正相反,表示上班遲到了,多大概率是由於早上睡過頭造成的,數學上等於(30天裡早上睡過頭且上班遲到的天數 / 30天裡上班遲到的總天數)。

P(A) 代表上班遲到的總概率,數學上等於(30天裡上班遲到的總天數 / 30天)。

P(B) 代表早上睡過頭的總概率,數學上等於(30天裡早上睡過頭的總天數 / 30天)。

貝葉斯公式在許多領域中都得到了廣泛的應用,在不同的具體領域中,只是A和B代表的實際意義不同而已,下面我們來看幾個在流行病學、金融和識別垃圾郵件領域的例子。

01

在流行病學領域的應用

有這麼一種場景:

一種新的流感病毒開始流行,感染概率為千分之一(1‰),人們研究出了一種檢測方法,準確率為99%,如果一個人檢測出為陽性,這個人感染上新流感的概率是多少?

先不看下面的分析,你估算的答案是多少?1‰?99%?還是它們兩個相乘?

可能很多人會說是99%,與測試準確率一致,其實以上都不是,答案是9%左右。

你肯定好奇這個9%怎麼得出來的?我們分析一下這個問題,首先根據問的是如果檢測出為陽性,感染上新流感的概率是多少,我們可以區分出「檢測出是陽性」這件事是條件,記為B,那麼「感染上新流感」這件事就是A,此外:

P(A)為總人群里感染上新流感的概率,已經給出來了是1‰。

P(B|A)為感染上新流感的人群里,被檢測出是陽性的概率,即99%。

P(B)為總人群里被檢測出陽性的概率,你可能會說就是99%啦,其實不對,注意它和檢測方法準確率是有差別的, 在於它們所針對的群體對象是不一樣的(即樣本空間不同)。

檢測方法準確率是基於全體檢測人群而言的,也就是所有檢測的人裡面,有多少人檢測出的陽性結果是正確的,不是誤判。

而檢測出是陽性的概率,在流感有個總體感染概率的情況下,針對的群體要分成感染上的人群,和未感染上的人群,為方便說明,我們假設全體檢測人數為1000人。

感染上的人群里檢測出陽性,檢測結果就是真實的,其人數=1000×1‰×99%=1×99%

未感染的人群里檢測出陽性,實際上是誤判為陽性,其人數=1000×(1-1‰)×(1-99%)=999×1%

於是就有P(B)=(1×99%+999×1%) / 1000

好了,最後把所有對應的值都填到貝葉斯公式里,就可以計算出最終結果為這個人有 9%左右的概率是真陽性(這裡四捨五入取了整數百分比)。


這個例子裡最有挑戰性,也是最有意思的部分就是得出這個P(B)的計算方法了,因為存在誤判可能性(雖然只有看上去不高的1%),對於沒有感染流感的999個人來說,平均會有9~10人是假陽性,加上1個真陽性,每1000個人里會有10~11人呈現陽性結果,簡言之,由於感染率低(1‰),導致假陽性的人數遠遠多於真陽性,這也是醫生們不願意只依靠單一檢測做出診斷的原因。

這麼多數字算來算去,到這裡可能有人已經暈了,別擔心,下面再說的例子就不會涉及具體的數字計算,更多的是思路上的啟發。

02

在金融領域的應用

我們再看一個在金融投資上的例子,我們對一個市場(比如股票市場)做投資,都希望能夠獲得成功,沒人願意賠錢,但要怎麼儘可能避免失敗呢,貝葉斯定理也能幫上忙。

假設A代表投資某個市場獲得成功這一事件,P(A)就為該市場投資成功的整體概率,即平均收益,例如根據歷史數據分析得出該市場的平均收益為4賺3平3賠,則P(A)為40%,通常P(A)可視為常數。

但如果要追求更大的投資成功率,就不能只看市場的平均成功率。如果市場在某個特定因素B出現時,投資成功率會超過平均成功率,那就要在這個因素B出現時去做投資,此時投資成功率即為P(A|B)。

進一步,如果因素B有多個,假設有n個,那麼每個因素都有一個對應的P(A|B),我們總不能每個因素出現時都去試一把,我們的承擔能力有限,應該要挑出P(A|B)最大的那個因素,問題來了,誰最大呢?

根據貝葉斯公式:P(A|B)=P(B|A)·P(A) / P(B),要使P(A|B)儘可能大,就要P(B|A) 儘可能大,P(B)儘可能小,這裡面的關鍵就是要弄清楚「P(B|A) 儘可能大,P(B)儘可能小」分別意味著什麼,看下面的分析:

P(B)儘可能小:意味著因素B發生的概率要小,在長期的投資市場中,因素B應該很少見。

P(B|A) 儘可能大:意味著在歷史成功的投資案例中,因素B卻經常出現(也就是投資成功時,因素B發生的概率大)。

因此,我們對歷史數據進行挖掘時,就要這樣分析:先找出歷史上投資成功的那些時刻或案例,然後找出這些成功的案例有什麼共同點,或者說投資者在進行這些投資時,市場上出現了什麼共同因素或現象。最後,去掉那些在長期投資過程中經常出現的因素,保留那些在長期投資過程中很少出現的因素,這些因素發生時,投資獲得成功的概率最大。

我們看到,貝葉斯定理不但能幫我們計算具體的概率,還能在重要問題上給我們帶來全新的視角。

03

在識別垃圾郵件上的應用

我們在郵件處理軟體上都使用過按關鍵詞過濾垃圾郵件的功能,不那麼先進的軟體,可能就是直接按你設置的關鍵詞,直接將包含它們的郵件「暴力地」標識為垃圾郵件。而更智能一些的軟體,會在貝葉斯定理的基礎上,通過機器學習來識別垃圾郵件,下面我們就來看一下具體是如何運用的。

假如,現在我們已有10萬封郵件作為機器學習的樣本,每個郵件都已經被標記好了是否為垃圾郵件,這裡不用我們預先設置任何用於過濾的關鍵詞,而是讓軟體自己「學習」哪些詞要作為關鍵詞,那麼軟體要如何學習呢?

首先,通過樣本數據很容易計算出:

P(A)=垃圾郵件的概率,即垃圾郵件數量 / 所有的郵件數量。

P(B)=郵件中出現詞M的概率,即出現詞M的郵件數量 / 所有的郵件數量。

P(B|A)=垃圾郵件中出現詞M概率,即垃圾郵件中含有詞M的郵件數量 / 所有垃圾郵件數量。

那麼,根據貝葉斯公式,出現詞M的郵件是垃圾郵件的概率 P(A|B)=P(B|A)·P(A) / P(B),對垃圾郵件學習的過程就是計算P(A|B)的過程。

一般會有多個詞或多個詞的組合嘗試,直到找到概率大於預設概率的詞或一組詞,後續再有新郵件包含它們時,軟體就會將郵件判斷為垃圾郵件。

再次說明,這些詞是軟體根據樣本數據自動逐個找到的,而不是人通過任何方式「告訴」它的。

當然,實際中有可能會出現誤判,含有詞M不一定是垃圾郵件,垃圾郵件也不一定含有詞M。通常再結合上機器學習的其他算法,或是使用者的個別修正,機器學習基本上可以做到很高的識別率。

總結

通過上面三個貝葉斯定理的應用,我們可以初步了解到這個定理的強大,不愧被稱為「永遠不會死掉的理論」。這個世界是不確定的,到處都存在著概率,就像《人工智慧全傳》中所說的:

「貝葉斯定理的重要性就在於為我們提供了處理不完美數據的正確方法:我們既不丟棄數據,也不全盤相信它是正確的。我們利用它來更新我們的信念庫,通過概率來確定信念庫的正確性。」

最後,因為我們知道P(A|B)就是在B發生的情況下A發生的可能性,如果你正處於戀愛中,請記住[心]貝葉斯浪漫定理[心]:TA喜歡你的前提是你喜歡TA,只要你對TA好,TA也一定會對你好。


一隻熱愛藝術與文字的貓

作者:不吃魚的貓

公眾號:一隻貓的文字圈

關鍵字: