樸素貝葉斯分類器

                                  樸素貝葉斯分類器筆記

  樸素貝葉斯分類器是基於貝葉斯定理和特徵屬性條件獨立性假設的分類算法。算法對樣本的特徵屬性做了條件獨立性假設,這個假設簡單粗暴,忽略特徵屬性之間的相關性,因此很“樸素”,但是在實際應用中貌似還是很高效。

1、基礎知識準備

   (1)貝葉斯定理

  貝葉斯定理描述的是兩個條件概率的關係,條件概率P(A|B)爲事件B發生的條件下A發生的概率,同理P(B|A)爲事件A發生的條件下B發生的概率,又P(AB)=P(A)P(B|A)=P(B)P(A|B),則得到貝葉斯定理公式:

                               

 

  (2)獨立分佈

  如果事件A和事件B相互獨立,則有P(AB)=P(A)P(B)

2、樸素貝葉斯算法

  算法的大致思想:對於給定訓練數據集,首先基於特徵條件獨立性假設學習輸入/輸出的聯合概率分佈(或者說類別先驗概率和特徵條件概率);然後基於此模型,對於給定的輸入x,利用貝葉斯定理求出所有類別的後驗概率,取概率最大的作爲其預測類別。下面詳細展開:

假設X是訓練樣本特徵向量的集合,Y是樣本對應標籤的集合,

  ,其中,特徵向量有k維;

,總共有m類。

則此訓練數據集可以表示爲比較好理解的方式:

      

1)、模型構建

 樸素貝葉斯分類器建模首先需要通過訓練集學習聯合概率分佈

      

通過前面的基礎知識知,該聯合概率可表示爲

     

那麼具體地就是求先驗概率P(Y)和先驗條件概率P(X|Y),具體表達式:

     

在訓練數據集中這個很好計算,接下按照特徵的條件獨立假設(假設樣本的特徵向量中特徵在類確定的條件下都是條件獨立的)來計算P(X|Y):

      

2)、模型預測

預測階段,對於輸入樣本的特徵向量x,由貝葉斯定理計算其後驗概率:

     

     

其中m爲類別數,k爲特徵維度。

由於分母對於所有類別爲常數,則最後的預測函數爲:

    

最後取後驗概率最大的類別作爲輸入樣本的預測類別。

3)、算法流程總結

      (1)根據給定的訓練樣本集計算每個類別的先驗概率:

        

      (2)計算訓練樣本特徵向量中每個特徵在各個類別下的條件概率:

        

         除開統計數量的計算,可以看到需要計算的量爲m*k。

      (3)對於待預測樣本x計算其每個類別的後驗概率,取後驗概率最大的類別作爲預測結果。

          

3、具有連續性數值的特徵

當特徵屬性爲連續值時,通常假定其值服從高斯分佈(也稱正態分佈)。即

         

   這個時候計算該屬性在某類別下的條件概率就比較方便了,計算公式爲:

       

在計算時需要統計計算出在cj類別內該屬性值的均值與方差,然後再預測階段就可以根據這個計算對應屬性值的條件概率值。

4、樸素貝葉斯分類應用案例

   樸素貝葉斯分類算法的案例在網上可以找到很多,也可以在《統計學習方法》這本書中查看給出的應用案例。這裏不再重複贅述了

  詳情參看這篇良心博主的案例:SNS社區中不真實賬號檢測案例

http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

  另外對於《統計學習方法》這本書有一個有心人實現了所有其中的所有算法,很有意義,這本書可是我入門機器學習算法的啓蒙,自己學習過程也有實現了一些,可是這位大神居然全部實現完畢,膜拜!python3.6實現《統計學習方法》所有算法的鏈接:

https://github.com/fengdu78/lihang-code

 

 

 

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