机器学习(8):朴素贝叶斯
最近自己會(huì)把自己個(gè)人博客中的文章陸陸續(xù)續(xù)的復(fù)制到CSDN上來,歡迎大家關(guān)注我的 個(gè)人博客,以及我的github。
本文主要講解有關(guān)樸素貝葉斯的相關(guān)知識(shí)。
本文主要是依據(jù)李航老師的《統(tǒng)計(jì)學(xué)習(xí)方法》和鄒博老師的機(jī)器學(xué)習(xí)教學(xué)視頻總結(jié)編寫的。文中所用到的有關(guān)機(jī)器學(xué)習(xí)的基本概念和方法可以參考本人博客中該系列之前的文章,或者直接上網(wǎng)搜索相關(guān)的內(nèi)容。以下文章所列出的公式以及公式的推導(dǎo)讀者們最好是在草稿本上自己推導(dǎo)一遍。由于本人水平所限,文章中難免有錯(cuò)誤和不當(dāng)之處,歡迎大家多多批評(píng)指正!
貝葉斯分類是一種利用貝葉斯公式來進(jìn)行分類的算法總稱,其中樸素貝葉斯是最簡(jiǎn)單的一種,它假設(shè)了各個(gè)樣本特征之間相互獨(dú)立。
一、先驗(yàn)概率和后驗(yàn)概率
先驗(yàn)概率:指根據(jù)以往經(jīng)驗(yàn)和分析得到的概率。
后驗(yàn)概率:事情已經(jīng)發(fā)生,要求這件事情發(fā)生的原因是由某個(gè)因素引起的可能性的大小。
二、樸素貝葉斯
首先來看下貝葉斯公式:
P(Y∣X)=P(X∣Y)?P(Y)P(X)P(Y|X)=\frac{P(X|Y)\cdot P(Y)}{P(X)} P(Y∣X)=P(X)P(X∣Y)?P(Y)?
當(dāng)用作對(duì)樣本進(jìn)行分類時(shí),可以用下面的公式來理解:
P(類別∣特征)=P(特征∣類別)?P(類別)P(特征)公式(1)P(類別|特征)=\frac{P(特征|類別)\cdot P(類別)}{P(特征)}\quad\quad公式(1) P(類別∣特征)=P(特征)P(特征∣類別)?P(類別)?公式(1)
其中:
- 已知樣本的某個(gè)特征,求該樣本屬于某個(gè)類別的概率P(類別∣特征)P(類別|特征)P(類別∣特征);
- 已知樣本所屬類別時(shí)某個(gè)特征出現(xiàn)的概率P(特征∣類別)P(特征|類別)P(特征∣類別);
- 該樣本所屬類別出現(xiàn)的概率P(類別)P(類別)P(類別);
- 樣本的某個(gè)特征出現(xiàn)的概率P(特征)P(特征)P(特征)
在最一般的情況下,樣本的所有特征不都相互獨(dú)立,如果樣本有多個(gè)特征,并且每個(gè)特征都有多個(gè)不同的取值時(shí),那么要計(jì)算P(特征∣類別)P(特征|類別)P(特征∣類別)是比較困難的。所以樸素貝葉斯加入了一個(gè)很強(qiáng)的假設(shè)條件:所有的樣本特征都是相互獨(dú)立的。這樣一來,就可以利用以下公式來進(jìn)行計(jì)算了:
P(特征1,特征2,...,特征n∣類別)=∏i=1nP(特征i∣類別)公式(2)P(特征1,特征2,...,特征n|類別)=\prod_{i=1}^nP(特征i|類別)\quad\quad公式(2) P(特征1,特征2,...,特征n∣類別)=i=1∏n?P(特征i∣類別)公式(2)
這樣一來,P(特征∣類別)P(特征|類別)P(特征∣類別) 就變得可以計(jì)算了。
三、樸素貝葉斯的參數(shù)估計(jì)
在公式 (1) 中,當(dāng)給定樣本集時(shí),由于計(jì)算樣本屬于每個(gè)類別時(shí)等式右邊的分母都相等,所以只需要計(jì)算分子就可以了。而又因?yàn)闃闼刎惾~斯假定了樣本的特征之間相互獨(dú)立,所以 P(類別)P(類別)P(類別) 和 P(特征i∣類別)P(特征i|類別)P(特征i∣類別) 都可以通過極大似然估計(jì)法估計(jì)出相應(yīng)的概率,P(類別)P(類別)P(類別) 的極大似然估計(jì)是:
P(類別=Ck)=∑i=1NI(類別=Ck)NP(類別=C_k)=\frac{\sum_{i=1}^N{I(類別=C_k)}}{N} P(類別=Ck?)=N∑i=1N?I(類別=Ck?)?
其中 N 是樣本的個(gè)數(shù);I()I()I() 是指示函數(shù),當(dāng)其中條件成立時(shí)函數(shù)值為1,反之為 0 ;CkC_kCk?是第 k 個(gè)類別。
P(特征∣類別)P(特征|類別)P(特征∣類別)的極大似然估計(jì)為:
P(特征=Aj∣類別=Ck)=∑i=1NI(特征=Aj,類別=Ck)∑i=1NI(類別=Ck)P(特征=A_j|類別=C_k)=\frac{\sum_{i=1}^N{I(特征=A_j,類別=C_k)}}{\sum_{i=1}^NI(類別=C_k)} P(特征=Aj?∣類別=Ck?)=∑i=1N?I(類別=Ck?)∑i=1N?I(特征=Aj?,類別=Ck?)?
其中 AjA_jAj? 是第 j 個(gè)特征。
至此,公式(1)中等式右邊的概率都可以通過給定的樣本集計(jì)算出來了,帶入公式后就得到了P(類別∣特征)P(類別|特征)P(類別∣特征)。得到了樣本屬于每個(gè)類別的概率后,只需要把該樣本分類為概率最高的類就好了。
四、貝葉斯估計(jì)
從公式(2)中你會(huì)發(fā)現(xiàn),如果有一個(gè)P(特征i∣類別)P(特征i|類別)P(特征i∣類別)為0,則整個(gè)概率就為0了,這會(huì)使分類產(chǎn)生一定的誤差,為了解決該辦法可以使用貝葉斯估計(jì),具體的貝葉斯估計(jì)如下:
P(類別=Ci∣特征=Aj)=∑I(特征=Aj,類別=Ci)+λ∑I(類別=Ci)+Sj?λP(類別=C_i|特征=A_j)=\frac{\sum I(特征=A_j,類別=C_i)+\lambda}{\sum I(類別=C_i)+S_j\cdot\lambda} P(類別=Ci?∣特征=Aj?)=∑I(類別=Ci?)+Sj??λ∑I(特征=Aj?,類別=Ci?)+λ?
其中 SjS_jSj?是第 j 個(gè)特征的取值個(gè)數(shù); λ\lambdaλ 是一個(gè)非負(fù)數(shù),該值通常取 1 ,這時(shí)成為拉普拉斯平滑,而當(dāng) λ=0\lambda=0λ=0 時(shí)就是極大似然 估計(jì)。
總結(jié)
以上是生活随笔為你收集整理的机器学习(8):朴素贝叶斯的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PID与伺服驱动器
- 下一篇: phantomJs原理