机器学习算法及实战——朴素贝叶斯
樸素貝葉斯(Naive Bayes)=? Naive + Bayes 。(特征條件獨立 + Bayes定理)的實現。
零、貝葉斯定理(Bayes' theorem)
所謂的貝葉斯方法源于他生前為解決一個“逆概”問題寫的一篇文章,而這篇文章是在他死后才由他的一位朋友發表出來的。在貝葉斯寫這篇文章之前,人們已經能夠計算“正向概率”,如“假設袋子里面有N個白球,M個黑球,你伸手進去摸一把,摸出黑球的概率是多大”。而一個自然而然的問題是反過來:“如果我們事先并不知道袋子里面黑白球的比例,而是閉著眼睛摸出一個(或好幾個)球,觀察這些取出來的球的顏色之后,那么我們可以就此對袋子里面的黑白球的比例作出什么樣的推測”。這個問題,就是所謂的逆概問題。
1)條件概率
條件概率(英語:conditional probability)就是事件A在另外一個事件B已經發生條件下的發生概率。條件概率表示為P(A|B),讀作“在B條件下A的概率”。
聯合概率表示兩個事件共同發生的概率。A與B的聯合概率表示為或者或者。
邊緣概率是某個事件發生的概率。邊緣概率是這樣得到的:在聯合概率中,把最終結果中不需要的那些事件合并成其事件的全概率而消失(對離散隨機變量用求和得全概率,對連續隨機變量用積分得全概率)。這稱為邊緣化(marginalization)。A的邊緣概率表示為P(A),B的邊緣概率表示為P(B)。
需要注意的是,在這些定義中A與B之間不一定有因果或者事件序列關系。A可能會先于B發生,也可能相反,也可能二者同時發生。A可能會導致B的發生,也可能相反,也可能二者之間根本就沒有因果關系。
定義
設?A?與?B?為樣本空間 Ω 中的兩個事件,其中?P(B)>0。那么在事件?B?發生的條件下,事件?A?發生的條件概率為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
條件概率有時候也稱為:后驗概率。
獨立性:? 當且僅當兩個隨機事件A與B滿足??? 的時候,它們才是統計獨立的,這樣聯合概率可以表示為各自概率的簡單乘積。同樣,對于兩個獨立事件A與B有????以及??。
換句話說,如果A與B是相互獨立的,那么A在B這個前提下的條件概率就是A自身的概率;同樣,B在A的前提下的條件概率就是B自身的概率。
互斥性:? ?當且僅當A與B滿足且,?的時候,A與B是互斥的。因此,
。
換句話說,如果B已經發生,由于A不能和B在同一場合下發生,那么A發生的概率為零;同樣,如果A已經發生,那么B發生的概率為零。
2)貝葉斯定理
貝葉斯定理是關于隨機事件A和B的條件概率的一則定理。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
其中P(A|B)是指在事件B發生的情況下事件A發生的概率。
在貝葉斯定理中,每個名詞都有約定俗成的名稱:
- P(A|B)是已知B發生后A的條件概率,也由于得自B的取值而被稱作A的后驗概率。
- P(A)是A的先驗概率(或邊緣概率)。之所以稱為"先驗"是因為它不考慮任何B方面的因素。
- P(B|A)是已知A發生后B的條件概率,也由于得自A的取值而被稱作B的后驗概率。
- P(B)是B的先驗概率或邊緣概率。
從條件概率推導貝葉斯定理
根據條件概率的定義。在事件B發生的條件下事件A發生的概率是:
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
其中?A與B的聯合概率表示為或者或者。
同樣地,在事件A發生的條件下事件B發生的概率
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
整理與合并這兩個方程式,我們可以得到
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
這個引理有時稱作概率乘法規則。上式兩邊同除以P(B),若P(B)是非零的,我們可以得到貝葉斯定理:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
3)吸毒者檢測
下面展示貝葉斯定理在檢測吸毒者時的應用。假設一個常規的檢測結果的敏感度與可靠度均為99%,即吸毒者每次檢測呈陽性(+)的概率為99%。而不吸毒者每次檢測呈陰性(-)的概率為99%。從檢測結果的概率來看,檢測結果是比較準確的,但是貝葉斯定理卻可以揭示一個潛在的問題。假設某公司對全體雇員進行吸毒檢測,已知0.5%的雇員吸毒。請問每位檢測結果呈陽性的雇員吸毒的概率有多高?
令“D”為雇員吸毒事件,“N”為雇員不吸毒事件,“+”為檢測呈陽性事件。可得
- P(D)代表雇員吸毒的概率,不考慮其他情況,該值為0.005。因為公司的預先統計表明該公司的雇員中有0.5%的人吸食毒品,所以這個值就是D的先驗概率。
- P(N)代表雇員不吸毒的概率,顯然,該值為0.995,也就是1-P(D)。
- P(+|D)代表吸毒者陽性檢出率,這是一個條件概率,由于陽性檢測準確性是99%,因此該值為0.99。
- P(+|N)代表不吸毒者陽性檢出率,也就是出錯檢測的概率,該值為0.01,因為對于不吸毒者,其檢測為陰性的概率為99%,因此,其被誤檢測成陽性的概率為1 - 0.99 = 0.01。
- P(+)代表不考慮其他因素的影響的陽性檢出率。該值為0.0149或者1.49%。我們可以通過全概率公式計算得到:此概率 = 吸毒者陽性檢出率(0.5% x 99% = 0.495%)+ 不吸毒者陽性檢出率(99.5% x 1% = 0.995%)。P(+)=0.0149是檢測呈陽性的先驗概率。用數學公式描述為:
根據上述描述,我們可以計算某人檢測呈陽性時確實吸毒的條件概率P(D|+):
盡管吸毒檢測的準確率高達99%,但貝葉斯定理告訴我們:如果某人檢測呈陽性,其吸毒的概率只有大約33%,不吸毒的可能性比較大。假陽性高,則檢測的結果不可靠。
3)全概率公式
?如果事件組B1,B2,.... 滿足
- B1,B2...兩兩互斥,即 Bi?∩ Bj?= ? ,i≠j , i,j=1,2,....,且P(Bi)>0,i=1,2,....;
- B1∪B2∪....=Ω ,則稱事件組 B1,B2,...是樣本空間Ω的一個劃分
設?B1,B2,...是樣本空間Ω的一個劃分,A為任一事件,則:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
上式即為全概率公式(formula of total probability)
全概率公式的意義在于,當直接計算P(A)較為困難,而P(Bi),P(A|Bi) ?(i=1,2,...)的計算較為簡單時,可以利用全概率公式計算P(A)。思想就是,將事件A分解成幾個小事件,通過求小事件的概率,然后相加從而求得事件A的概率,而將事件A進行分割的時候,不是直接對A進行分割,而是先找到樣本空間Ω的一個個劃分B1,B2,...Bn,這樣事件A就被事件AB1,AB2,...ABn分解成了n部分,即A=AB1+AB2+...+ABn, 每一Bi發生都可能導致A發生相應的概率是P(A|Bi),由加法公式得
? ? ? ? ? ? ? ? ? ? ? ?P(A)=P(AB1)+P(AB2)+....+P(ABn)? =? P(A|B1)P(B1)+P(A|B2)P(B2)+...+P(A|Bn)P(PBn)
實例:某車間用甲、乙、丙三臺機床進行生產,各臺機床次品率分別為5%,4%,2%,它們各自的產品分別占總量的25%,35%,40%,將它們的產品混在一起,求任取一個產品是次品的概率。
解:? ?P(A)=25%*5%+4%*35%+2%*40%=0.0345
一、樸素貝葉斯算法(naive bayes algorithm)
1)基本算法流程
輸入:訓練集?,其中?,是第i個樣本的第j個特征,, 是第j個特征可能取得第個值,?????屬于K類中的一類;實例?;
輸出:實例x的分類。
(1)計算先驗概率及條件概率??( 其中為指示函數,若括號內成立,則計1,否則為0)
? ? ? ? ? ?? ?
? ? ? ? ? ?
? ? ? ? ? ?
?
(2)對于給定的實例,計算? (對所有的類來說,公式(2)中分母的值都相同,所以只計算分子部分即可)
? ? ? ? ? ? ? ? ? ? ? ?
(3)確定實例x的類
? ? ? ? ? ? ? ? ? ? ? ?
2)推導以及解釋
樸素貝葉斯方法是基于貝葉斯定理的一組有監督學習算法,即“簡單”地假設每對特征之間相互獨立。 給定一個類別??和一個從??到??的相關的特征向量, 貝葉斯定理闡述了以下關系:
使用簡單(naive)的假設-每對特征之間都相互獨立:
對于所有的 :math:?i?,這個關系式可以簡化為
由于在給定的輸入中??是一個常量,我們使用下面的分類規則:
我們可以使用最大后驗概率(Maximum A Posteriori, MAP) 來估計??和??; 前者是訓練集中類別??的相對頻率。
各種各樣的的樸素貝葉斯分類器的差異大部分來自于處理??分布時的所做的假設不同。
盡管其假設過于簡單,在很多實際情況下,樸素貝葉斯工作得很好,特別是文檔分類和垃圾郵件過濾。這些工作都要求 一個小的訓練集來估計必需參數。
相比于其他更復雜的方法,樸素貝葉斯學習器和分類器非???。 分類條件分布的解耦意味著可以獨立單獨地把每個特征視為一維分布來估計。這樣反過來有助于緩解維度災難帶來的問題。
3)更一般的推導(易懂)
從條件概率開始:
P(A|B)表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
貝葉斯定理便是基于條件概率,通過P(A|B)來求P(B|A):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
順便提一下,上式中的分母P(A),可以根據全概率公式分解為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
特征條件獨立假設:
這一部分開始樸素貝葉斯的理論推導,從中你會深刻地理解什么是特征條件獨立假設。
給定訓練數據集(X,Y),其中每個樣本 x 都包括 n 維特征,即,類標記集合含有k種類別,即。
如果現在來了一個新樣本x,我們要怎么判斷它的類別?從概率的角度來看,這個問題就是給定x,它屬于哪個類別的概率最大。那么問題就轉化為求解中最大的那個,即求后驗概率最大的輸出:
那怎么求解?答案就是貝葉斯定理:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
根據全概率公式,可以進一步地分解上式中的分母:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ??【公式1】
先不管分母,分子中的是先驗概率,根據訓練集就可以簡單地計算出來。
而條件概率,它的參數規模是指數數量級別的,假設第i維特征可取值的個數有個,類別取值個數為k個,那么參數個數為:
這顯然不可行。針對這個問題,樸素貝葉斯算法對條件概率分布作出了獨立性的假設,通俗地講就是說假設各個維度的特征??互相獨立,在這個假設的前提上,條件概率可以轉化為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?【公式2】
這樣,參數規模就降到??
以上就是針對條件概率所作出的特征條件獨立性假設,至此,先驗概率和條件概率的求解問題就都解決了,那么我們就可以求解我們所要的后驗概率了。
將【公式2】代入【公式1】得到:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
于是樸素貝葉斯分類器可表示為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
因為對所有的,上式中的分母的值都是一樣的(為什么?注意到全加符號就容易理解了),所以可以忽略分母部分,樸素貝葉斯分類器最終表示為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
下面只需要對?,求解。
4)三種求解模型
(1)多項式模型
當特征是離散的時候,使用多項式模型。多項式模型在計算先驗概率和條件概率時,會做一些平滑處理,具體公式為:
? ? ? ? ? ??
N是總的樣本個數,k是總的類別個數,是類別為??的樣本個數,?是平滑值。
? ? ? ? ? ?
?是類別為的樣本個數,n是特征的維數,?是類別為的樣本中,第i維特征的值是的樣本個數,是平滑值。
當?時,稱作Laplace平滑,當0<<1時,稱作Lidstone平滑,時不做平滑。
如果不做平滑,當某一維特征的值沒在訓練樣本中出現過時,會導致,從而導致后驗概率為0。加上平滑就可以克服這個問題。
舉例
有如下訓練數據,15個樣本,2維特征,2種類別-1,1。給定測試樣本,判斷其類別。
解答如下:
運用多項式模型,令
- 計算先驗概率
- 計算各種條件概率
- 對于給定的,計算:
由此可以判定y=-1。
(2)高斯模型
下面是一組人類身體特征的統計資料。
| 男 | 6 | 180 | 12 |
| 男 | 5.92 | 190 | 11 |
| 男 | 5.58 | 170 | 12 |
| 男 | 5.92 | 165 | 10 |
| 女 | 5 | 100 | 6 |
| 女 | 5.5 | 150 | 8 |
| 女 | 5.42 | 130 | 7 |
| 女 | 5.75 | 150 | 9 |
已知某人身高6英尺、體重130磅,腳掌8英寸,請問該人是男是女??
根據樸素貝葉斯分類器,計算下面這個式子的值。
這里的困難在于,由于身高、體重、腳掌都是連續變量,不能采用離散變量的方法計算概率。而且由于樣本太少,所以也無法分成區間計算。怎么辦??
這時,可以假設男性和女性的身高、體重、腳掌都是正態分布,通過樣本計算出均值和方差,也就是得到正態分布的密度函數。有了密度函數,就可以把值代入,算出某一點的密度函數的值。?
比如,男性的身高是均值5.855、方差0.035的正態分布。所以,男性的身高為6英尺的概率的相對值等于1.5789(大于1并沒有關系,因為這里是密度函數的值,只用來反映各個值的相對可能性)。
對于腳掌和體重同樣可以計算其均值與方差。有了這些數據以后,就可以計算性別的分類了。
P(身高=6|男) x P(體重=130|男) x P(腳掌=8|男) x P(男) = 6.1984 x e-9P(身高=6|女) x P(體重=130|女) x P(腳掌=8|女) x P(女) = 5.3778 x e-4可以看到,女性的概率比男性要高出將近10000倍,所以判斷該人為女性。
高斯模型假設每一維特征都服從高斯分布(正態分布):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
表示類別為的樣本中,第i維特征的均值。?
表示類別為的樣本中,第i維特征的方差。
(3)伯努利模型
與多項式模型一樣,伯努利模型適用于離散特征的情況,所不同的是,伯努利模型中每個特征的取值只能是1和0(以文本分類為例,某個單詞在文檔中出現過,則其特征值為1,否則為0).
伯努利模型中,條件概率的計算方式是:
當特征值為1時,;
當特征值為0時,;
?
?
https://en.wikipedia.org/wiki/Bayes%27_theorem
https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%AE%9A%E7%90%86
http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/
http://norvig.com/spell-correct.html
http://sklearn.apachecn.org/cn/0.19.0/modules/naive_bayes.html
http://www.cs.unb.ca/~hzhang/publications/FLAIRS04ZhangH.pdf
https://www.cnblogs.com/ohshit/p/5629581.html
https://blog.csdn.net/u012162613/article/details/48323777
https://www.letiantian.me/2014-10-12-three-models-of-naive-nayes/
轉載于:https://www.cnblogs.com/cvlas/p/9374481.html
總結
以上是生活随笔為你收集整理的机器学习算法及实战——朴素贝叶斯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj3187 穷竭搜索 挑战程序设计大
- 下一篇: Django 部署(Nginx+uwsg