機器學習--朴素貝葉斯模型原理


朴素貝葉斯中的朴素是指特征條件獨立假設, 貝葉斯是指貝葉斯定理, 我們從貝葉斯定理開始說起吧.

1. 貝葉斯定理

貝葉斯定理是用來描述兩個條件概率之間的關系

1). 什么是條件概率? 

如果有兩個事件A和B, 條件概率就是指在事件B發生的條件下, 事件A發生的概率, 記作P(A|B).

若P(A)>0, 則滿足以下公式

若P(B) > 0, 同理.

通過條件概率公式我們可以直接推出概率的乘法公式.

2). 概率的乘法公式

進而通過概率的乘法公式, 可以推出貝葉斯公式.

3). 貝葉斯公式

貝葉斯公式同樣滿足條件P(A)>0, P(B)>0, 在該公式中, A和B均代表單個事件, 但是當B代表一個事件組時, 公式又是如何呢?在介紹之前, 引出全概公式

4). 全概公式

當事件組B1, B2, B3, ....Bn是完備事件組(兩兩互不相容, 其和為全集), 並且當P(Bn) >0時, 對於任意一個事件A, 滿足全概公式:

推導過程如下:

那么, 此時的完備事件組B1, B2, B3, ...Bn對於任意事件A的貝葉斯公式可寫成:

上式中P(Bi)被稱為先驗概率, P(Bi|A)被稱為后驗概率. 

5). 先驗概率, 后驗概率分別指什么呢? (舉例說明)

某地區10月份下大暴雨的概率為0.9. 下大暴雨時, 發洪水的概率是0.6; 不下大暴雨時, 發洪水的概率為0.02, 試求該地區已發洪水, 下暴雨的概率?

記A1=下大暴雨, B1=發洪水, A2=不下大暴雨, B2=不發洪水, 由題意知, P(A1) = 0.9, P(B1|A1) = 0.6, P(B1|A2) = 0.02, 根據貝葉斯公式得: P(A1|B1)=0.9*0.6/[0.9*0.6 + (1-0.9)*0.02] = 0.996.

從上述例子中, 先驗概率(下大暴雨的概率)很容易從現有條件中得出, 而后驗概率(已經發洪水時下大暴雨的概率)需要根據附加信息用貝葉斯公式去計算得出, 下面引出百度百科對於這兩者的定義.

先驗概率(prior probability)是指根據以往經驗和分析得到的概率,如全概率公式,它往往作為"由因求果"問題中的"因"出現的概率

后驗概率是指在得到“結果”的信息后重新修正的概率,是“執果尋因”問題中的"果"。先驗概率與后驗概率有不可分割的聯系,后驗概率的計算要以先驗概率為基礎.

事情還沒有發生,要求這件事情發生的可能性的大小,是先驗概率。事情已經發生,要求這件事情發生的原因是由某個因素引起的可能性的大小,是后驗概率。

將定義與例題相結合就能更好的理解先驗概率和后驗概率.

6). 如果A也是事件組時, 公式又是如何呢?

假設現有兩個事件A1和A2, 公式則可改寫為:

要想求滿足條件A1和A2時Bi的概率, 關鍵在於求P(A1, A2|Bi)的概率, 在這之前需要了解事件的獨立性:

通常情況下, 條件概率P(A|B)與無條件概率P(A)是不相等的, 如果P(A|B)=P(A), 則說明事件B對事件A的發生沒有任何影響, 也就是說事件A與B是相互獨立的, 又根據我們上面的概率乘法公式可以推出P(AB)=P(A|B)P(B)=P(A)P(B).

現假設事件A1和事件A2關於事件B獨立, 根據事件的獨立性, 則有P[(A1|B)(A2|B)]=P(A1|B)P(A2|B), 又由於只有在事件B這個共同條件下事件A1才會與事件A2獨立, 我們不妨將式子改寫為P(A1, A2|B) = P(A1|B)P(A2|B), 從而可以將我們的貝葉斯公式改寫為:

假設事件組Am中的所有事件關於完備事件組Bn中任意一個事件兩兩相互獨立, 進而公式可以推廣為:

要想上式成立, 則必須要滿足前提條件: 事件組Am中的所有事件關於事件組Bn的任意一個事件兩兩相互獨立, 到這里貝葉斯定理部分就介紹完畢了,

2. 特征條件獨立假設

將上面的公式應用到分類問題中, Am表示m個特征, Bn表示n個分類標簽, 而要想上式成立, 要滿足前提條件: m個特征關於n個分類標簽中任意一個兩兩相互獨立, 也就是特征條件獨立, 而"朴素"二字表示特征條件獨立假設, 即假設特征條件獨立(前提條件), 想必這也就是為什么"朴素"二字恰好在貝葉斯之前.

3. 朴素貝葉斯模型

朴素貝葉斯分類模型要做的事就是在先驗概率的基礎上將數據集歸為n個標簽中后驗概率最大的標簽(基於最小錯誤率貝葉斯決策原則).

由於數據集的特征個數m和分類標簽總數n是固定不變的, 即貝葉斯定理中分母不變, 所以要求最大值, 只需求出分子中的最大值, 即下式中的最大值

 

又可利用argmax()函數, 表示為最大值的類別, 比如X1 = argmax(f(x))表示當f(x)中的自變量x=X1時, f(x)取最大值

即求自變量Bi的值, 當Bn = Bi時, 后驗概率最大, 上式也稱為朴素貝葉斯推導式

通過上式, 影響最終結果的有先驗概率和條件概率, 另外滿足特征條件獨立假設時, 上式才會成立. 即當先驗概率, 條件概率和特征條件獨立假設均成立時, 根據朴素貝葉斯推導式得出的結果具有真正最小錯誤率..

1) 先驗概率

當先驗概率已知時, 可以直接通過公式計算.

當先驗概率未知時, 基於最小最大損失准則(讓其在最糟糕的情況下, 帶來的損失最小)或者N-P(聶曼-皮爾遜)決策准則來進行分類

關於這部分的具體細節可參看 https://wenku.baidu.com/view/85e559104431b90d6d85c704.html

2) 條件概率(舉例說明)

現需對某產品評價中"質量好, 價格便宜, 顏值高"這三個詞語作出統計, 假設它們之間兩兩相互獨立. 已知某論壇上關於該產品的1000條評價中未購買用戶概率為0.2, 未購買用戶的評價中"質量好"出現0次, "價格便宜"出現100次, "顏值高"出現150次; 已購買用戶的評價中"質量好"出現600次, "價格便宜"出現500次, "顏值高"出現700次, 試問評價中同時出現"質量好, 價格便宜, 顏值高"這三個詞語的用戶是未購買用戶的概率.

首先, 特征條件相互獨立, 且先驗概率已知, 可直接列舉出我們的公式:

事件B1表示未購買用戶, 事件B2表示已購買用戶, 事件A1, A2, A3則分別表示"質量好, 價格便宜, 顏值高".

由題知, P(A1|B1)=0, 分子為0, P(B1|A1, A2, A3)也就為0, 如果我們根據計算結果直接就下定義: 做出"質量好, 價格便宜, 顏值高"這個評價的用戶不可能是未購買用戶, 會有點以偏概全了, 比如現新有一條包含這三個詞語的新評價且為未購買用戶, 經詢問, 該用戶在體驗朋友(已購買用戶)的產品一段時間后, 進而在論壇作此評價. 對於此種情況, 重新計算嗎?假設該用戶在半個月, 一個月...后才出現, 我們要等半個月, 一個月..再計算的話, 有點不切合實際.

對於此種情況, 法國數學家拉普拉斯最早提出用加1的方法估計沒有出現過的現象的概率, 所以加法平滑也叫做拉普拉斯平滑. 假定訓練樣本很大時, 每個分量計數加1造成的估計概率變化可以忽略不計,但可以方便有效的避免零概率問題。(參考自博文: https://www.cnblogs.com/bqtang/p/3693827.html)

應用在我們的示例中就是, P(A1|B1)=1/203, P(A2|B1)=101/203, P(A3|B1)=151/203, 進而求解即可

3) 特征條件獨立假設

假設特征條件獨立, 但是實際中往往不是真正獨立甚至有時特征之間存在某種聯系(比如年齡和星座), 這時就需通過特征選擇, 主成分分析等方法盡可能讓特征之間獨立.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM