詹鵬偉 謝小姣
摘 要:樸素貝葉斯模型在文本分類領(lǐng)域應(yīng)用廣泛,但因為算法本身的缺陷,分類性能有待提高。文章在傳統(tǒng)的樸素貝葉斯模型的基礎(chǔ)上,利用對數(shù)處理解決了算術(shù)下溢問題,使用拉普拉斯平滑解決了因訓(xùn)練集過小出現(xiàn)的零概率問題,并采用了系數(shù)加權(quán)的方法改善了樸素貝葉斯因假設(shè)所有條件都是獨立的而導(dǎo)致的性能問題,進(jìn)一步根據(jù)垃圾郵件過濾必須要有的查準(zhǔn)率高的特點提出了閾值限定條件,最終訓(xùn)練的出的模型分類效果較傳統(tǒng)的樸素貝葉斯模型有所提高,對垃圾郵件過濾模型的設(shè)計有一定的指導(dǎo)作用。
關(guān)鍵詞:樸素貝葉斯;系數(shù)加權(quán);閾值限定
中圖分類號:TP393.0 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-2945(2018)20-0157-03
Abstract: Naive Bayesian model is widely used in the field of text classification, but the classification performance needs to be improved because of the defects of the algorithm itself. Based on the traditional naive Bayesian model, the problem of arithmetic underflow is solved by logarithmic processing, and the zero probability problem due to the small training set is solved by Laplacian Smoothing. The method of coefficient weighting is used to improve the performance of naive Bayes, which is caused by the assumption that all the conditions are independent. Furthermore, the threshold limit condition is proposed according to the characteristic of the high precision rate necessary for spam filtering. The classification effect of the final training model is improved compared with the traditional naive Bayes model, which can guide the design of spam filtering model.
Keywords: naive Bayes; coefficient weighting; threshold qualification
引言
隨著互聯(lián)網(wǎng)的發(fā)展,電子郵件的使用也越來越普及,但是電子郵件的安全性與可靠性卻還有待提高。各種釣魚郵件、垃圾郵件、騷擾郵件極大的影響了我們的日常生活,根我國網(wǎng)絡(luò)不良與垃圾信息舉報受理中心的統(tǒng)計,超過半數(shù)的用戶會因為垃圾郵件而浪費時間、浪費資源,將近一半的用戶則有可能因為垃圾郵件而遭受經(jīng)濟(jì)損失??梢姡O(shè)計一個性能良好的垃圾郵件過濾器將有很重要的現(xiàn)實意義。
在文本分類領(lǐng)域,樸素貝葉斯模型有著重要的應(yīng)用。得益于其簡單有效,能夠?qū)崿F(xiàn)增量式計算且對缺失數(shù)據(jù)敏感度較低的優(yōu)點,特別適合構(gòu)建垃圾郵件的過濾模型,但由于其所假設(shè)的特征項之間的獨立性,將會對最終的結(jié)果的準(zhǔn)確率產(chǎn)生一定的影響,且未經(jīng)平滑處理的貝葉斯模型在小數(shù)據(jù)集上容易出現(xiàn)較大的誤差。本文將采用一種有閾值限制的條件的基于系數(shù)加權(quán)的改進(jìn)貝葉斯模型,改善了傳統(tǒng)貝葉斯模型的分類性能,實現(xiàn)對垃圾郵件的準(zhǔn)確過濾。
1 樸素貝葉斯模型及相關(guān)原理
1.1 貝葉斯定理
貝葉斯定理是用于描述的是兩個不同的事件A、B間,A為條件B發(fā)生的概率與B為條件A發(fā)生的概率之間的關(guān)系。貝葉斯公式可表示為:
其中P為事件發(fā)生的概率。利用貝葉斯定理來構(gòu)造的決策方法是在所有相關(guān)概率都已知的情況下,考慮如何基于這些概率和可能的期望損失來選擇最優(yōu)分類的方法?,F(xiàn)假設(shè)有N種可能的類別{c1,c2,…,cN},且存在樣本x∈{x1,x2,…,xN},需要將樣本x分為相應(yīng)的類別,則可以定義基于后驗概率P(ci|x)將某一樣本x分類為ci所產(chǎn)生的期望損失:
其中λij表示將真實類別為cj分類為ci所產(chǎn)生的損失。利用貝葉斯定理來分類的目標(biāo)是:尋找能夠最小化全局風(fēng)險的準(zhǔn)則h,h應(yīng)為:
即在每個樣本x上都選擇能使得期望損失R最小的類別c,此時為所得到的貝葉斯分類器的性能上限。
在利用貝葉斯定理來最小化期望損失相當(dāng)于是利用有限的訓(xùn)練樣本盡可能準(zhǔn)確的估計后驗概率P(c|x)的過程,而基于貝葉斯定理,后驗概率P(c|x)可表示為:
其中P(c)、P(x)稱為先驗概率,P(x|c)為樣本x相對于類別c的條件概率,則求后驗概率P(c|x)的過程就轉(zhuǎn)化為了在給定的數(shù)據(jù)集中估計先驗概率P(c)和條件概率P(x|c)的問題,這相比于后驗概率P(c|x)來說更容易實現(xiàn)。
1.2 極大似然估計
對于上一節(jié)中所敘述的貝葉斯概率模型,訓(xùn)練過程就是對模型的參數(shù)進(jìn)行估計的過程,而根據(jù)頻率主義學(xué)派的思想,極大似然估計可以用于解決參數(shù)估計的問題。
假設(shè)Dc為數(shù)據(jù)集合D中類別為c的樣本的集合,則需要估計的數(shù)據(jù)集Dc對于參數(shù)θc的條件概率,即似然為:
極大似然估計就是尋找一個能使數(shù)據(jù)出現(xiàn)的可能性最大的θc。
1.3 算術(shù)下溢問題
在使用計算機進(jìn)行極大似然估計時,有大量的概率值乘法計算,有可能出現(xiàn)算術(shù)下溢問題,導(dǎo)致所計算出來的后驗概率具有不確定性,使得參數(shù)估計與預(yù)期相差甚遠(yuǎn),最終的分類性能也會大大下降。為了解決算術(shù)下溢問題,可將極大似然估計的目標(biāo)進(jìn)行對數(shù)化處理,則所用到的對數(shù)極大似然估計為:
1.4 樸素貝葉斯模型
在利用貝葉斯定理來估計后驗概率P(c|x)時,由于P(x|c)是所有屬性上的聯(lián)合概率,難以估計。樸素貝葉斯則假定各屬性之間都是條件獨立的,將后驗概率的計算方式轉(zhuǎn)變?yōu)榱耍?/p>
其中d為屬性的數(shù)量。在此假設(shè)下,所需要尋找的準(zhǔn)則h轉(zhuǎn)變?yōu)榱耍?/p>
以上即為樸素貝葉斯分類器的表達(dá)式。
1.5 拉普拉斯平滑
因為在訓(xùn)練貝葉斯模型的時候存在大量的連乘,在訓(xùn)練集不夠全面的情況下,可能因為某個特征從未在訓(xùn)練集中出現(xiàn)過,導(dǎo)致該特征對預(yù)測概率的貢獻(xiàn)值為0,進(jìn)一步導(dǎo)致最終計算出來的概率為0,分類結(jié)果會產(chǎn)生較大的誤差,稱這種情況為零概率問題。特別是在將郵件文本作為向量的情況下,雖然構(gòu)造的詞表很大,但是文字的組合更多,極有可能出現(xiàn)未在詞表中出現(xiàn)的詞語,導(dǎo)致最終的預(yù)測結(jié)果為不準(zhǔn)確。
為了解決這種情況,需采用拉普拉斯平滑(Laplacian smoothing),即在計算先驗概率與似然的時候為每個特征出現(xiàn)的次數(shù)加上一個很小的數(shù),這樣對最終的結(jié)果影響不大,且在數(shù)據(jù)集足夠大的時候,產(chǎn)生的概率變化可以忽略不計,但是卻很好的解決了零概率問題。在拉普拉斯平滑下,所計算的先驗概率P(c)與P(xi|c)變?yōu)榱耍?/p>
其中D表示訓(xùn)練集合,Dc表示訓(xùn)練集中類別為c的樣本組成的集合,Dc,xi表示Dc中出現(xiàn)的取值為xi的樣本集合,N表示D中出現(xiàn)的可能的類別數(shù),Ni表示第i個屬性可能的類別數(shù),所加的常數(shù)1即為解決零概率問題而選擇的一個很小的常數(shù)。
2 樸素貝葉斯模型的改進(jìn)
2.1 系數(shù)加權(quán)
樸素貝葉斯模型假設(shè)所有的條件都是相互獨立的,也就是所有條件對于最終結(jié)果的貢獻(xiàn)程度都是一樣的,但是在現(xiàn)實中是過于理想的。為了避免這一局限性,對最終結(jié)果貢獻(xiàn)程度較大的特征不應(yīng)該與貢獻(xiàn)程度較小的特征采取同樣的處理方式,在這一思想下,本文采用了一種基于系數(shù)加權(quán)的改進(jìn)貝葉斯模型,來為模型中的不同特征賦予部不同的權(quán)重,從而突出貢獻(xiàn)率大的特征的作用。如在垃圾郵件的識別中,如果發(fā)現(xiàn)郵件中出現(xiàn)了類似于“優(yōu)惠”、“購買”、“理財”等詞語,則這封郵件有很大概率是一封垃圾郵件,就算這封郵件中的其他詞語是在垃圾郵件中比較少見的,也必須對這封郵件提起警覺。在這一思想下,樸素貝葉斯模型中的準(zhǔn)則h轉(zhuǎn)變?yōu)榱耍?/p>
其中wi為每個屬性的權(quán)重。
為了使用基于系數(shù)加權(quán)的樸素貝葉斯模型,首先需要先確定權(quán)值,其方法為:對出現(xiàn)的每個屬性直接用樸素貝葉斯分類器進(jìn)行分類,分類得到的正確率即為權(quán)值wi。
2.2 閾值限定條件
一個實用性強的垃圾郵件過濾器必須在不將重要郵件誤歸為垃圾郵件的前提下,將垃圾郵件盡可能的過濾出來,即分類的結(jié)果必須有極高的查準(zhǔn)率(Precision)。若是用戶的重要郵件被垃圾郵件過濾器給過濾掉了,則可能會耽誤用戶的正事,給用戶帶來極大的損失。相比之下,若是有少數(shù)的垃圾郵件未被成功過濾,雖然對用戶的使用體驗有影響,但是不至于給用戶帶來直接的損失,在遇到這類很有可能是垃圾郵件但是確定性不夠高的郵件時,可以專門作出提醒,但是不進(jìn)行過濾。
為了提高垃圾郵件分類的查準(zhǔn)率,在本文中采取的垃圾郵件的改進(jìn)樸素貝葉斯分類器還新增了一個閾值條件:當(dāng)一封郵件被歸為垃圾郵件的概率至少為該郵件被歸為正常郵件概率的1.3倍時,才有足夠的把握將一封郵件歸為垃圾郵件過濾掉,否則只進(jìn)行提醒,而不進(jìn)行過濾,既:
3 分類結(jié)果與分析
為了能夠?qū)⒈疚乃玫姆诸惼髋c傳統(tǒng)的樸素貝葉斯分類器的性能進(jìn)行比較,首先定義參數(shù)查準(zhǔn)率P與查全率R:
本文采用的實驗數(shù)據(jù)集為CCERT提供的郵件數(shù)據(jù)集,從中隨機選取1000封正常郵件和1000封垃圾郵件,并經(jīng)過純文本化處理,去除html標(biāo)簽以及其他不相關(guān)項。首先利用Python接口的結(jié)巴分詞庫完成詞向量表的構(gòu)建,然后將郵件轉(zhuǎn)換為對應(yīng)的向量表示,再分別利用傳統(tǒng)的樸素貝葉斯模型與本文提出的帶有閾值限制的系數(shù)加權(quán)的貝葉斯模型進(jìn)行訓(xùn)練與預(yù)測。實驗環(huán)境為macOS HighSierra、Intel Core i5、1.8GHz主頻、4GB內(nèi)存Python3.6、結(jié)巴分詞v0.39。最終所得到的結(jié)果如表1所示。
可見最終的分類結(jié)果不管是P值還是R值都有一定的提高,其中P值提高了將近2%,R值提高了超過5%,綜合兩者的綜合評價F1-Measure值從91.36%上升到了94.94%,可見,改進(jìn)的貝葉斯模型對垃圾郵件的分類效果較好。在查準(zhǔn)率提高了的情況下,用戶的正常郵件被誤分類的幾率下降了,該垃圾郵件分類器的實用性有所提高,減少了因為用戶的正常郵件被過濾而造成損失的幾率。但是因為在運算中新增的加權(quán)計算,訓(xùn)練模型所用到的時間較傳統(tǒng)的貝葉斯模型有所增加,當(dāng)郵件數(shù)量較大時耗費的時間較久,速度有待提高。
4 結(jié)束語
垃圾郵件過濾器必須在不將正常郵件分為垃圾郵件的基礎(chǔ)上盡可能的過濾垃圾郵件,即必須要有較高的查準(zhǔn)率才具有實用價值。本文在傳統(tǒng)的樸素貝葉斯模型的基礎(chǔ)上,解決了算術(shù)下溢問題與應(yīng)訓(xùn)練集較小而導(dǎo)致的零概率問題,并采取了系數(shù)加權(quán)的方法來改善樸素貝葉斯模型因假設(shè)所有特征都是相互獨立所導(dǎo)致的分類性能問題,進(jìn)一步提出閾值限定條件,來改善模型的查準(zhǔn)率,一定程度上提高了分類的性能。雖然改進(jìn)之后的模型在訓(xùn)練時間上有所增加,但是分類性能有所提高,對垃圾郵件過濾的應(yīng)用有一定的指導(dǎo)作用。
參考文獻(xiàn):
[1]王青松,魏如玉.基于短語的貝葉斯中文垃圾郵件過濾方法[J].計算機科學(xué),2016,43(04):256-259+269.
[2]楊杉,何躍,顏錦江.基于貝葉斯的反垃圾郵件技術(shù)探討[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2007(08):54-56.
[3]劉牛.基于屬性加權(quán)的樸素貝葉斯分類算法改進(jìn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2011(06):72-74.
[4]鄭煒,沈文,張英鵬.基于改進(jìn)樸素貝葉斯算法的垃圾郵件過濾器的研究[J].西北工業(yè)大學(xué)學(xué)報,2010,28(04):622-627.
[5]秦鋒,任詩流,程澤凱,等.基于屬性加權(quán)的樸素貝葉斯分類算法[J].計算機工程與應(yīng)用,2008(06):107-109.