貝葉斯系列:(一)樸素貝葉斯分類器

假設有N種可能的類別標記,記爲:\[y=\left \{ c_{1},c_{2}...c_{N} \right \}\]現有一個樣本x給定其各個屬性的取值\[x_{i},i=1...d\],d爲x所包含的屬性的數目,若將x歸爲第c類的第k個屬性,則有

                                      \[p(c|x)=\frac{p(c)p(x|c)}{p(x)}\](1)

然後根據計算每個屬性的概率,取最大的概率值作爲x屬於的c類的值。樸素貝葉斯分類器的最基本最核心的思想是“假設已有樣本中各個屬性之間獨立”,由此有:

\[p(c|x)=\frac{p(c)p(x|c)}{p(x)}=\frac{p(c)}{p(x)}\prod_{i=1}^{d}p(x_{i}|c)\]    (2)

又因爲p(x)都是相同的,所以貝葉斯判定準則爲

            \[h_{nb}(x)=arg\cdot max_{c\subseteq y}p(c)\prod_{i=1}^{d}p(x_{i}|c)\]\](3)

即判定準則取最大時x屬於的類別 ci;

       估計類的先驗概率P(c)的計算是基於訓練集D的,併爲每個屬性估計條件概率\[p(x_{i}|c)\]。

       令 \[D_{c}\]表示訓練集D種c類樣本的集合,若有充足的獨立同分布樣本,則有

                                             \[p(c)= \frac{|Dc|}{|D|}\](4)

對於離散屬性而言,令\[D_{c,x_{i}}\]表示\[D_{c}\]中在第i個屬性上的取值\[x_{i}\]的樣本集合,則有

\[p(x_{i}|c)=\frac{|D_{c}|}{|D|}\](5)

對於連續屬性考慮概率密度函數,假定\[p(x_{i}|c)\sim N(\mu _{c,i},\delta _{c,i}^{2})\],其中利用極大似然估計對參數進行計算有:

            \[\mu _{c,i}=\frac{1}{|D_{c}|}\sum_{x\subseteq D_{c}}x_{i}\]

        \[\delta_{c,i}=\frac{1}{|D_{c}|}\sum_{x\subseteqD_{c}}(x-\bar{\mu_{c,i}})(x-\bar{\mu _{c,i}})^{T}\](6)

所以:

\[p(x_{i}|c)=\frac{1}{\sqrt{2\pi }\delta }exp(-\frac{x_{i}-\mu _{c,i}^{2}}{2\delta ^{2}})\](7)

       同時\[\prod_{i=1}^{d}p(x_{i}|c)\]是一個屬性的連乘過程,對於第i個屬性可能會存在在c類中沒有出現過,但是將含有i個屬性的樣本x放入c的概率計算爲0顯然是不合理的,所以可進行“平滑處理”,常用的方法爲“拉普拉斯修正”,具體來說,令N表示訓練集D中可能含有的類別數(c的個數),\[N_{i}\]表示第i個屬性的取值數,則(4)(5)修正如下:

  \[\bar{p(c)}=\frac{|D_{c}|+1}{|D|+N}\](8)

\[\bar{p(x_{i}|c)}=\frac{|D_{c,x_{i}}|+1}{|D_{_{c}}|+N_{i}}\](9)

實例

 數據集如下:

 

 

 

         從該數據集計算得到的先驗概率以及每個離散屬性的類條件概率、連續屬性的類條件概率分佈的參數(樣本均值和方差)如下:

先驗概率:P(Yes)=0.3;P(No)=0.7

P(有房=是|No) = 3/7

P(有房=否|No) = 4/7

P(有房=是|Yes) = 0

P(有房=否|Yes) = 1

P(婚姻狀況=單身|No) = 2/7

P(婚姻狀況=離婚|No) = 1/7

P(婚姻狀況=已婚|No) = 4/7

P(婚姻狀況=單身|Yes) = 2/3

P(婚姻狀況=離婚|Yes) = 1/3

P(婚姻狀況=已婚|Yes) = 0

年收入:

如果類=No:樣本均值=110;樣本方差=2975

如果類=Yes:樣本均值=90;樣本方差=25

現有新樣本:

X={有房=否,婚姻狀況=已婚,年收入=120K},通過計算確定是否存在拖欠貸款的行爲:

所以p(年收入=120k|NO)=\[\frac{1}{\sqrt{2\pi \cdot 2975}}exp(-\frac{(120-110)^{2}}{2\cdot 2975})\approx 0.648\]
p(年收入=120k |YES)=\[\frac{1}{\sqrt{2\pi \cdot 25}}exp(-\frac{(120-90)^{2}}{2\cdot 25})\approx 1\]

同時P(婚姻狀況=已婚|Yes) = 0,計算時會存在乘的現象,主要是因爲樣本不夠大,此時便可採用“拉普拉斯修正”進行平滑處理。

所以對於P(婚姻狀況=已婚|Yes) 來說:

\[D_{c,x_{i}}\]:表示在YES中婚姻狀況爲已婚的人數=0;

 \[D_{c}\]:表示婚姻狀況可能的取值數=2(yes or no)

\[N_{i}\]:yes類中包含的樣本數=3

所以根據拉普拉斯修正有:P(婚姻狀況=已婚|Yes)=

 所以:

P(No)*P(有房=否|No)*P(婚姻狀況=已婚|No)*P(年收=120K|No)=0.7*4/7*4/7*0.684=0.156

P(Yes)*P(有房=否|Yes)*P(婚姻狀況=已婚|Yes)*P(年收入=120K|Yes)=0.3*1*0.2*1=0.06

 

因爲0.156>0.06,故認爲該樣本屬於NO,即沒有拖欠貸款。

 

    總結:樸素貝葉斯在分類問題中應用非常廣泛,特別是在垃圾郵件的處理中,雖然說對於有些特徵獨立性假設並不是很合理,但是它的分類效果卻非常不錯,但是由於樸素貝葉斯分類的假設是所有的特徵是獨立的,所以經常被攻擊,所以有學者提出了基於樸素貝葉斯假設開始,利用T檢驗和卡方分佈來判斷特徵之間的獨立性關係,從而從建立樸素貝葉斯網絡開始,逐步計算特徵之間的非獨立關係,從而最後監理處貝葉斯網絡,有興趣的可以去看看這篇參考文獻:Section. A Bayesian Classifier Learning Algorithm Based on Optimization Model[J]. Mathematical Problems in Engineering,2013,(2013-2-6), 2013, 2013(2013):681-703.

    當然除了樸素貝葉斯網絡,還有基於樸素貝葉斯擴展的TAN,BAN網絡等,在後期我再一一講述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章