貝葉斯算法

樸素貝葉斯算法及其在文本分類中的應用

在這裏只要給出樸素貝葉斯算法原理,並給出其在文本分類中的應用,詳細代碼在我的github上,https://github.com/duguiming111/Text_Classification/blob/master/nb_main.py,是基於樸素貝葉斯算法的垃圾短信識別。

一、引言

樸素貝葉斯算法是基於貝葉斯定理與條件獨立假設的分類方法。基本原理:對於給定的訓練集,首先基於特徵條件獨立假設學習輸入/輸出的聯合概率分佈;然後基於此模型,對於給定的輸入x,利用貝葉斯定理求出後驗概率最大的輸出y。對於文本分類,樸素貝葉斯往往能達到較好的效果。

二、垃圾短信識別

1、公式

貝葉斯公式:
P(YX)=P(XY)P(Y)P(X) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}
它是由聯合概率公式推導而來,聯合概率推導公式爲:
P(X,Y)=P(YX)P(X)=P(XY)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() P(“屬於某類”|“具有某特徵”)=\frac{P(“具有某特徵”|“屬於某類”)P(“屬於某類”)}{P(“具有某特徵”)}

2.2 在文本分類中的應用(垃圾短信識別)

舉個例子:
“您關注的筆記本電腦限時搶購中!自營好購,品質保障。”
對於這條短信,我們要判斷的是:
P() P(“垃圾短信”|“您關注的筆記本電腦限時搶購中!自營好購,品質保障。”)
是否大於1/2。
對於文本分類任務,首先要對文本進行分詞和去停用詞處理,分詞去停用詞後的短信爲:(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)。
那麼,貝葉斯公式可以變爲:
P(())=P(()P())P() P(“垃圾短信”|(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))=\frac{P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)|P(“垃圾短信”))}{P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))}
P(())=P(()P())P() P(“正常短信”|(“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”))=\frac{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()P()P()P()P()P()P() P((“您”,“關注”,“筆記本”,“電腦”,“限時”,“搶購”,“自營”,“好購”,“品質”,“保障”)|P(“正常短信”))=P(“您”|“正常短信”)P(“關注”|“正常短信”)P(“筆記本”|“正常短信”)P(“電腦”|“正常短信”)P(“限時”|“正常短信”)P(“搶購”|“正常短信”)P(“自營”|“正常短信”)P(“好購”|“正常短信”)P(“品質”|“正常短信”)P(“保障”|“正常短信”)
其中,
P()= P(“筆記本”|“垃圾短信”)=\frac{垃圾短信中有“筆記本”的次數}{垃圾短信中所有詞的次數}
比較這兩個值的大小就能判斷短信是否是垃圾短信。
最後說一下何爲樸素貝葉斯算法,其實就是:
+= 貝葉斯公式+條件獨立假設=樸素貝葉斯算法
在這裏給出一個基於樸素貝葉斯的垃圾短信識別的代碼

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