樸素貝葉斯的理解例項

2021-08-03 14:33:58 字數 811 閱讀 6338

下面討論乙個使用樸素貝葉斯分類解決實際問題的例子,為了簡單起見,對例子中的資料做了適當的簡化。

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

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

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

1: 特徵的屬性和劃分

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

我們選擇三個特徵屬性:a1:日誌數量/註冊天數,a2:好友數量/註冊天數,a3:是否使用真實頭像。在sns社群中這三項都是可以直接從資料庫裡得到或計算出來的。

下面給出劃分:a1:,a2:,a3:。

2:獲取訓練樣本

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

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

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

4:計算每個類別條件下的各個特徵屬性劃分的頻率,訓練樣本中的統計頻率:

5:  使用分類器進行鑑別

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

樸素貝葉斯例項

高斯模型api import numpy asnp from sklearn.bayes import gaussiannb from sklearn.datasets import load digits from sklearn.model selection import train test...

樸素貝葉斯

樸素貝葉斯演算法是一種基於概率統計的分類方法,它主要利用貝葉斯公式對樣本事件求概率,通過概率進行分類。以下先對貝葉斯公式做個了解。對於事件a b,若p b 0,則事件a在事件b發生的條件下發生的概率為 p a b p a b p b 將條件概率稍作轉化即可得到貝葉斯公式如下 p a b p b a ...

樸素貝葉斯

1.準備資料 從文字中構建詞向量 2.訓練演算法 從詞向量計算概率 3.測試演算法 儲存為 bayes.py 檔案 參考 coding utf 8 from numpy import 文字轉化為詞向量 def loaddataset postinglist my dog has flea probl...