樸素貝葉斯中的樸素是指特徵條件獨立假設, 貝葉斯是指貝葉斯定理, 咱們從貝葉斯定理開始提及吧.html
貝葉斯定理是用來描述兩個條件機率之間的關係函數
1). 什麼是條件機率? spa
若是有兩個事件A和B, 條件機率就是指在事件B發生的條件下, 事件A發生的機率, 記做P(A|B).3d
若P(A)>0, 則知足如下公式htm
若P(B) > 0, 同理.blog
經過條件機率公式咱們能夠直接推出機率的乘法公式.事件
2). 機率的乘法公式get
進而經過幾率的乘法公式, 能夠推出貝葉斯公式.qt
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的任意一個事件兩兩相互獨立, 到這裏貝葉斯定理部分就介紹完畢了,
將上面的公式應用到分類問題中, Am表示m個特徵, Bn表示n個分類標籤, 而要想上式成立, 要知足前提條件: m個特徵關於n個分類標籤中任意一個兩兩相互獨立, 也就是特徵條件獨立, 而"樸素"二字表示特徵條件獨立假設, 即假設特徵條件獨立(前提條件), 想必這也就是爲何"樸素"二字剛好在貝葉斯以前.
樸素貝葉斯分類模型要作的事就是在先驗機率的基礎上將數據集歸爲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) 特徵條件獨立假設
假設特徵條件獨立, 可是實際中每每不是真正獨立甚至有時特徵之間存在某種聯繫(好比年齡和星座), 這時就需經過特徵選擇, 主成分分析等方法儘量讓特徵之間獨立.