樸素貝葉斯算法及其在文本分類中的應用
在這裏只要給出樸素貝葉斯算法原理,並給出其在文本分類中的應用,詳細代碼在我的github上,https://github.com/duguiming111/Text_Classification/blob/master/nb_main.py,是基於樸素貝葉斯算法的垃圾短信識別。
一、引言
樸素貝葉斯算法是基於貝葉斯定理與條件獨立假設的分類方法。基本原理:對於給定的訓練集,首先基於特徵條件獨立假設學習輸入/輸出的聯合概率分佈;然後基於此模型,對於給定的輸入x,利用貝葉斯定理求出後驗概率最大的輸出y。對於文本分類,樸素貝葉斯往往能達到較好的效果。
二、垃圾短信識別
1、公式
貝葉斯公式:
P(Y∣X)=P(X)P(X∣Y)P(Y)
它是由聯合概率公式推導而來,聯合概率推導公式爲:
P(X,Y)=P(Y∣X)P(X)=P(X∣Y)P(Y)
其中,P(Y)爲先驗概率,P(Y|X)爲後驗概率,P(X,Y)爲聯合概率。
2、應用
2.1 貝葉斯公式的理解
在分類任務中,貝葉斯公式可以理解爲:
P(“屬於某類”∣“具有某特徵”)=P(“具有某特徵”)P(“具有某特徵”∣“屬於某類”)P(“屬於某類”)
2.2 在文本分類中的應用(垃圾短信識別)
舉個例子:
“您關注的筆記本電腦限時搶購中!自營好購,品質保障。”
對於這條短信,我們要判斷的是:
P(“垃圾短信”∣“您關注的筆記本電腦限時搶購中!自營好購,品質保障。”)
是否大於1/2。
對於文本分類任務,首先要對文本進行分詞和去停用詞處理,分詞去停用詞後的短信爲:(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)。
那麼,貝葉斯公式可以變爲:
P(“垃圾短信”∣(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))=P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)∣P(“垃圾短信”))
P(“正常短信”∣(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))=P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)∣P(“正常短信”))
根據條件獨立假設:
P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)∣P(“垃圾短信”))=P(“您”∣“垃圾短信”)P(“關注”∣“垃圾短信”)P(“筆記本”∣“垃圾短信”)P(“電腦”∣“垃圾短信”)P(“限時”∣“垃圾短信”)P(“搶購”∣“垃圾短信”)P(“自營”∣“垃圾短信”)P(“好購”∣“垃圾短信”)P(“品質”∣“垃圾短信”)P(“保障”∣“垃圾短信”)
P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)∣P(“正常短信”))=P(“您”∣“正常短信”)P(“關注”∣“正常短信”)P(“筆記本”∣“正常短信”)P(“電腦”∣“正常短信”)P(“限時”∣“正常短信”)P(“搶購”∣“正常短信”)P(“自營”∣“正常短信”)P(“好購”∣“正常短信”)P(“品質”∣“正常短信”)P(“保障”∣“正常短信”)
其中,
P(“筆記本”∣“垃圾短信”)=垃圾短信中所有詞的次數垃圾短信中有“筆記本”的次數
比較這兩個值的大小就能判斷短信是否是垃圾短信。
最後說一下何爲樸素貝葉斯算法,其實就是:
貝葉斯公式+條件獨立假設=樸素貝葉斯算法
在這裏給出一個基於樸素貝葉斯的垃圾短信識別的代碼。