朴素貝葉斯分類算法


貝葉斯定理是關於隨機事件A和B的條件概率的一則定理(比如常見的:P(A|B)是在B發生的情況下A發生的可能性)。 朴素的含義是各特征相互獨立,且同等重要。某些 分類算法均以貝葉斯定理為基礎。由此產生了 朴素貝葉斯分類算法
 
朴素貝葉斯分類算法的思想基礎是:對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。
 
分類算法的主要任務是構造分類器。評價分類器的質量可以從這個視角考慮下:首先要定義,分類器的正確率指分類器正確分類的項目占所有被分類項目的比率。通常使用回歸測試來評估分類器的准確率,最簡單的方法是用構造完成的分類器對訓練數據進行分類,然后根據結果給出正確率評估。但這不是一個好方法,因為使用訓練數據作為檢測數據有可能因為過分擬合而導致結果過於樂觀,所以一種更好的方法是 在構造初期將訓練數據一分為二,用一部分構造分類器,然后用另一部分檢測分類器的准確率
 
拉普拉斯平滑對於改善朴素貝葉斯分類器的分類效果有着積極的作用。拉普拉斯平滑:為了解決零概率的問題,法國數學家拉普拉斯最早提出用加1的方法估計沒有出現過的現象的概率,所以加法平滑也叫做拉普拉斯平滑。假定訓練樣本很大時,每個分量x的計數加1造成的估計概率變化可以忽略不計,但可以方便有效的避免零概率問題。
 
 
示例1

常用數據挖掘算法從入門到精通 第五章 貝葉斯分類算法

  • 計算先驗概率和類條件概率

常用數據挖掘算法從入門到精通 第五章 貝葉斯分類算法

  • 計算后驗概率

常用數據挖掘算法從入門到精通 第五章 貝葉斯分類算法

因為P(是|X)>P(否|X),由此可見,對於樣本X,朴素貝葉斯分類預測該顧客會購買汽車。

 

示例2

      對於社區來說,不真實賬號(使用虛假身份或用戶的小號)是一個普遍存在的問題,作為社區的運營商,希望可以檢測出這些不真實賬號,從而在一些運營分析報告中避免這些賬號的干擾,亦可以加強對社區的了解與監管。

     如果通過純人工檢測,需要耗費大量的人力,效率也十分低下,如能引入自動檢測機制,必將大大提升工作效率。這個問題說白了,就是要將社區中所有賬號在真實賬號和不真實賬號兩個類別上進行分類,下面我們一步一步實現這個過程。

     首先設C=0表示真實賬號,C=1表示不真實賬號。

      1、確定特征屬性及划分

     這一步要找出可以幫助我們區分真實賬號與不真實賬號的特征屬性,在實際應用中,特征屬性的數量是很多的,划分也會比較細致,但這里為了簡單起見,我們用少量的特征屬性以及較粗的划分,並對數據做了修改。

     我們選擇三個特征屬性:a1:日志數量/注冊天數,a2:好友數量/注冊天數,a3:是否使用真實頭像。在社區中這三項都是可以直接從數據庫里得到或計算出來的。

     下面給出划分:a1:{a<=0.05, 0.05=0.2},a1:{a<=0.1, 0.1=0.8},a3:{a=0(不是),a=1(是)}。

      2、獲取訓練樣本

     這里使用運維人員曾經人工檢測過的1萬個賬號作為訓練樣本。

      3、計算訓練樣本中每個類別的頻率

     用訓練樣本中真實賬號和不真實賬號數量分別除以一萬,得到:

      

      

      4、計算每個類別條件下各個特征屬性划分的頻率

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      5、使用分類器進行鑒別

     下面我們使用上面訓練得到的分類器鑒別一個賬號,這個賬號使用非真實頭像,日志數量與注冊天數的比率為0.1,好友數與注冊天數的比率為0.2。

      

      

     可以看到,雖然這個用戶沒有使用真實頭像,但是通過分類器的鑒別,更傾向於將此賬號歸入真實賬號類別。這個例子也展示了當特征屬性充分多時,朴素貝葉斯分類對個別屬性的抗干擾性。

 

系統學習參考

以下三篇文章由淺入深,由朴素貝葉斯分類算法的入門、概貌到具體編碼層層遞進:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM