ML梳理01 | 貝葉斯分類算法的前世今生

開篇.jpg

關鍵字:貝葉斯、概率、貝葉斯分類算法、應用
本文收集整理的相關知識點大多來自網絡,如有不恰當之處,還望指正。

什么是概率?

什么是概率這個問題似乎人人都覺得自己知道,卻有很難說明白。比如說我問你 擲一枚硬幣為正面的概率為多少?,大部分人第一反應就是50%的幾率為正。不好意思,首先這個答案就不正確,只有當材質均勻時硬幣為正面的幾率才是50%(所以不要覺得打麻將的時候那個骰子每面的幾率是相等的,萬一被做了手腳呢)。

好,那現在假設硬幣的材質是均勻的,那么為什么正面的幾率就是50%呢?有人會說是因為我擲了1000次硬幣,大概有492次是正面,508次是反面,所以近似認為是50%,說得很好(擲了1000次我也是服你)。

擲硬幣的例子說明了古典統計學的思想,就是概率是基于大量實驗的,也就是 大數定理。那么現在再問你,有些事件,例如:明天下雨的概率是30%;A地會發生地震的概率是5%;一個人得心臟病的概率是40%…… 這些概率怎么解釋呢?難道是A地真的100次的機會里,地震了5次嗎?肯定不是這樣,所以古典統計學就無法解釋了。再回到擲硬幣的例子中,如果你沒有機會擲1000次這么多次,而是只擲了3次,可這3次又都是正面,那該怎么辦?難道這個正面的概率就是100%了嗎?這也是古典統計學的弊端。


什么是獨立概率?

事件A的發生對事件B發生的概率沒有影響,這樣的兩個事件叫做相互獨立事件
獨立:扔骰子的每一次投擲試驗,扔硬幣的每一次投擲試驗
不獨立:天氣形勢變化,紅綠燈的變化和車輛行駛狀態


什么是貝葉斯定理?

通常,事件A在事件B的條件下的概率,與事件B在事件A的條件下的概率是不一樣的;然而,這兩者是有確定的關系,貝葉斯法則就是這種關系的陳述。

貝葉斯法則又被稱為貝葉斯定理、貝葉斯規則,是指概率統計中的應用所觀察到的現象對有關概率分布的主觀判斷(即先驗概率)進行修正的標準方法。當分析樣本大到接近總體數時,樣本中事件發生的概率將接近于總體中事件發生的概率。

我們將一枚硬幣拋向空中,落地時正面和反面的概率都是50%,這是常識。但如果我們拋100次,正面和反面的次數并不會都是50,有可能正面40次,反面60次。那拋1000次,10000次呢,正面反面的次數有可能還不會是五五開。只有將拋硬幣無數次,正面和反面出現的次數才會趨向于相等。也就是說,正面和反面出現的概率50%是一個極限、客觀的概率,并不會隨著拋擲次數的增減而變化。

但是貝葉斯定理與這個精確客觀的概率不同,它要求當事人估計一個主觀的先驗概率,再根據隨后觀察到的事實進行調整,隨著調整次數的增加,結果將會越來越精確。這里有一個問題,數學不是講究客觀嗎?這里怎么冒出一個主觀概率出來?這也是當時的學者質疑貝葉斯的問題。事實上,貝葉斯定理在17世紀提出后,一直受到冷落,直到20世紀30年代電子計算機出現后才得到廣泛應用。如今我們每天都在和貝葉斯定理打交道:你上搜索引擎搜尋問題,背后的算法中就有貝葉斯公式的身影;你郵箱里的垃圾郵件,很有可能就是運用貝葉斯定理幫你攔截的。

為什么會出現這種情況?因為貝葉斯定理符合人類認知事物的自然規律。我們并非生而知之,大多數時候,面對的是信息不充分、情況不確定,這個時候我們只能在有限資源的情況下,作出決定,再根據后續的發展進行修正。實際上,這也是科學研究的步驟。

說的專業一點就是這樣解釋的:
作為一個規范的原理,貝葉斯法則對于所有概率的解釋是有效的;然而,頻率主義者和貝葉斯主義者對于在應用中概率如何被賦值有著不同的看法:頻率主義者根據隨機事件發生的頻率,或者總體樣本里面的個數來賦值概率;貝葉斯主義者要根據未知的命題來賦值概率。

貝葉斯統計中的兩個基本概念是先驗分布和后驗分布:

  • 1、先驗分布。總體分布參數θ的一個概率分布。貝葉斯學派的根本觀點,是認為在關于總體分布參數θ的任何統計推斷問題中,除了使用樣本所提供的信息外,還必須規定一個先驗分布,它是在進行統計推斷時不可缺少的一個要素。他們認為先驗分布不必有客觀的依據,可以部分地或完全地基于主觀信念。

  • 2、后驗分布。根據樣本分布和未知參數的先驗分布,用概率論中求條件概率分布的方法,求出的在樣本已知下,未知參數的條件分布。因為這個分布是在抽樣以后才得到的,故稱為后驗分布。貝葉斯推斷方法的關鍵是任何推斷都必須且只須根據后驗分布,而不能再涉及樣本分布。

下面我們來引出貝葉斯公式


韋恩.png

首先通過面的韋恩圖,我們理解的似然(Likelihood)是指兩個相關的條件概率之比,即給定B的情況下A發生的幾率(就是AB重疊的部分)和A的整體幾率之比。

根據韋恩圖,我們可以得知:
P(A|B)=P(AB)/P(B)=P(B|A)*P(A)/P(B)

1、P(A)是A的先驗概率或邊緣概率,稱作"先驗"是因為它不考慮B因素,是根據以往經驗和分析得到的概率。可以通過頻率來估計。
2、P(A|B)是已知B發生后A的條件概率,也稱作A的后驗概率。
3、P(B|A)是已知A發生后B的條件概率,也稱作B的后驗概率,這里稱作似然度。涉及到所以關于B所有屬性的聯合概率。
4、P(B)是B的先驗概率或邊緣概率,這里稱作標準化常量。
5、P(B|A)/P(B)稱作標準似然度。

貝葉斯法則又可表述為:
后驗概率=(似然度*先驗概率)/標準化常量=標準似然度*先驗概率

可以翻譯為p(類別|特征) = p(特征|類別)p(類別) / p(特征)

如果要確定某個樣本歸屬于哪一類,則需要計算出歸屬不同類的概率,再從中挑選出最大的概率,也就是選出概率最大值來定義為所屬于的類別
MAX(P(Ai|B))=MAX(P(B|Ai)*P(Ai)/P(B))

下面我們舉個栗子來說明下:

某種病發病率約為0.1%,即1000人中有一個人是陽性,現在的檢測手段很成熟,準確率高達99%,但是有5%的誤報率。如果一個人的檢測結果呈陽性,那么這個人真的感染這種病的概率有多大?

使用貝葉斯定理分析,假設A為得病,B為檢測呈陽性。可知:P(A)=0.001  #發病率
P(B丨A)=0.99  #發病檢測為陽性的概率
P(B)=P(B丨A) P(A)+P(B丨A')P(A')=0.99x0.001+0.05x0.999=0.05094  # 檢測陽性的概率等于
 得病且檢測為陽性概率 加上 未得病且檢測出陽性的概率
P(A丨B)=P(A)*P(B丨A)/P(B)=0.001x0.99/0.05094=0.019

是不是很驚訝,哪怕準確率這么高,檢測結果呈陽性的可信度只有2%。如果一種病的發病率很低,對于檢測結果呈陽性,我們不用過多擔憂。

PS:計算P(B)的時候,P(B丨A) P(A)我們稱之為聯合概率

什么是樸素貝葉斯(Naive Bayes)?

樸素貝葉斯是一種簡單但是非常強大的線性分類器。它在垃圾郵件分類,疾病診斷中都取得了很大的成功。它只所以稱為樸素,是因為它假設特征之間是相互獨立的,但是在現實生活中,這種假設基本上是不成立的。那么即使是在假設不成立的條件下,它依然表現的很好,尤其是在小規模樣本的情況下。但是,如果每個特征之間有很強的關聯性和非線性的分類問題會導致樸素貝葉斯模型有很差的分類效果。

根據變量的分布不同,NB也分為以下3類:

  • 樸素貝葉斯的高斯模型(特征是連續變量,符合高斯分布)
  • 樸素貝葉斯的多項式模型(特征是離散變量,符合多項分布),在文本分類的情境中,特征是詞的出現次數
  • 樸素貝葉斯的伯努利模型(特征是布爾變量,符合01分布),在文本分類的情境中,特征是詞是否出現
工作流程.png

圖片內容來源:《機器學習-周志華》P151
其中x代表樣本,c代表類標記

公式1.png

求得概率P(c|x)最大,P(x)在樣本給定下,是一個歸一化的常量,所以也就是計算分子的最大值也就是下面圖的解釋。

公式2.png
條件概率計算方法.png

下面繼續使用周志華老師書上的例子:


數據集.png

分類.png

條件概率計算.png

條件概率計算.png

下面圖中計算的是公式的分子部分,先驗概率乘以似然度(條件概率),其中是好瓜,并且敲聲清脆的測試例沒有,得出的概率值為0,這樣帶入連乘式計算的結果將是0,這顯然不太合理


計算結果.png

下面使用到了拉普拉斯修正 N代表類別數。重新計算先驗概率和條件概率。


拉普拉斯修正.png

計算.png

實際項目中,概率P往往是值很小的小數,連續的小數相乘容易造成下溢出使乘積為0或者得不到正確答案。一種解決辦法就是對乘積取自然對數,將連乘變為連加


連乘造成的下溢.png

極大似然估計.png

算法特性及優缺點

  • 優點:算法簡單、所需估計參數很少、對缺失數據不太敏感。另外樸素貝葉斯的計算過程類條件概率等計算彼此是獨立的,因此特別適于分布式計算。樸素貝葉斯屬于生成式模型,收斂速度將快于判別模型(如邏輯回歸);天然可以處理多分類問題
  • 缺點:因為樸素貝葉斯分類假設樣本各個特征之間相互獨立,這個假設在實際應用中往往是不成立的,從而影響分類正確性;不能學習特征間的相互作用;對輸入數據的表達形式很敏感。
樸素貝葉斯應用

文本分類 ; 垃圾文本過濾 ; 情感判別 ; 用于基于內容的推薦生成模型

強烈安利這位大佬的博客,可參考
小編已經提交到這里

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容