楊立洪,李瓊陽,李興耀
(華南理工大學(xué)數(shù)學(xué)學(xué)院,廣州510640)
樸素貝葉斯分類(Naive Bayes Classification)算法是目前公認的一種簡單有效的分類算法,它是一種基于概率的分類方法,被廣泛地應(yīng)用于模式識別、自然語言處理、機器人導(dǎo)航、機器學(xué)習(xí)等領(lǐng)域。樸素貝葉斯算法是基于特征項間獨立、對目標變量影響力一致的假設(shè),但實際應(yīng)用中極少數(shù)問題能滿足此假設(shè)。為此許多學(xué)者致力于改進樸素貝葉斯算法,以期提高算法的普適性和準確率。改進之處主要體現(xiàn)在兩個方面:一是在屬性選擇上預(yù)把控;二是衡量各屬性對目標變量的影響程度,對屬性加權(quán)。
在屬性選擇上,Geenen P Ld等[1]提出一種基于互信息選擇特征屬性的方法,并利用樸素貝葉斯算法在二分類問題上取得了極好的分類效果。魏浩和丁要軍[2]提出用屬性關(guān)聯(lián)度表示一個屬性和類屬性間的相關(guān)性,反映這個屬性對分類結(jié)果影響的程度;用屬性冗余度表示一個屬性和其他屬性之間相關(guān)性,反映這個屬性和其他屬性間的依賴度。王行甫和杜婷[3]提出利用CFS算法選擇特征屬性。焦鵬等[4]提出將屬性先驗分布的參數(shù)設(shè)置加入到屬性選擇的過程中,并研究當先驗分布服從Dirichlet分布及廣義Dirichlet分布情況下的具體實踐方案。研究出一種加權(quán)樸素貝葉斯算法,通過對不同的特征項提供不同的權(quán)值,削弱特征項之間的相關(guān)性。
在屬性加權(quán)上,饒麗麗等[5]提出在傳統(tǒng)權(quán)重計算基礎(chǔ)上,考慮到特征項在類內(nèi)和類間的分布情況,另外還結(jié)合特征項間的相關(guān)度,調(diào)整權(quán)重計算值,加大最能代表所屬類的特征項的權(quán)重。Jiang L等[6]提出在訓(xùn)練集中深度計算特征加權(quán)頻率,估計樸素貝葉斯的條件概率。Lungan Zhang等[7]提出了兩種自適應(yīng)特征加權(quán)方法:一是基于樹的自適應(yīng)特征加權(quán);二是基于信息增益率的特征加權(quán)。
為了解決樸素貝葉斯算法的兩個固有缺陷,本文將構(gòu)建基于信息值的相關(guān)屬性約減—加權(quán)二分類樸素貝葉斯模型,有效解決屬性相關(guān)、屬性加權(quán)的問題。在判定樣本類別歸屬時,采用自適應(yīng)學(xué)習(xí)選擇合適的閾值,以此削弱不平衡樣本集的影響,提高模型的準確率。最后在某運營商提供的垃圾短信用戶行為消費特征樣本數(shù)據(jù)上進行實證分析,結(jié)果表明:基于信息值的相關(guān)屬性約減—加權(quán)二分類樸素貝葉斯較傳統(tǒng)樸素貝葉斯模在模型準確率上有顯著提升。
樸素貝葉斯算法的分類原理是通過某對象的先驗概率,利用貝葉斯公式計算出其后驗概率,具有最大后驗概率的類則為該對象所屬的類。樸素貝葉斯是在貝葉斯分類法的基礎(chǔ)上提出的,該算法滿足一個簡單的假定,即在給定目標值時屬性值之間相互條件獨立。
樸素貝葉斯分類算法的工作過程如下:
(1)設(shè)A表示訓(xùn)練樣本的屬性集,有m個屬性A1,A2,…,Am;C表示類集合,有k個類C1,C2,…,Ck;每個數(shù)據(jù)樣本X用一個m維特征向量來描述m個屬性的值,即:X=(x1,x2,…,xm),其中xi∈Ai(1≤i≤m)。
(2)對訓(xùn)練樣本集進行統(tǒng)計,計算得到每個特征屬性在各類別的條件概率估計,即:
(3)對每個類別計算后驗概率,根據(jù)貝葉斯定理及樸素貝葉斯算法的假定可知:
(4)取最大后驗概率項作為樣本所屬類別:
信息值簡稱IV,衡量自變量對目標變量的影響程度,是建模時篩選變量的一個非常重要的指標。它起源于香農(nóng)提出的信息理論,與廣泛應(yīng)用的熵有極大的相似性,主要適用于二分類模型。在介紹信息值之前,有必要先引入WOE(weight of evidence)。為方便表述,將二分類目標變量標識為0、1,其中1表示違約,0表示正常。WOE實質(zhì)上是表示自變量取某個值時對違約比例的影響,例如當自變量取值為i時對目標變量違約比例的影響woei的計算公式如下:
其中,Bi指當該自變量取值為i時的違約樣本數(shù),Gi指該自變量取值為i時的正常樣本數(shù)。BT指建模樣本數(shù)據(jù)中總的違約樣本數(shù),GT指建模樣本數(shù)據(jù)中總的正常樣本數(shù)。
信息值衡量一個變量的信息量,例如對于一個有n個取值的自變量而言,該自變量的信息值計算公式如下:
當層間位移角到達2%rad,即梁加載中心點位移25.46 mm時,在梁端位移負向最大位移時,發(fā)生一聲巨響,這是用簡易扳手可擰動梁下翼緣與角鋼相連的左排螺栓,但肉眼看不出。當層間位移角到達3%rad(38.19 mm)時,響聲不間斷的會發(fā)出,角鋼略微掀起。
從計算公式上可以看出,信息值是自變量WOE值的一個加權(quán)組合,其值的大小決定了自變量對目標變量的影響程度。從形式上看來,信息值與信息熵也是極為相似的。
通常認為,0.1≤IV≤0.3時認為該變量對目標變量有中等影響力;0.3≤IV≤0.5時認為該變量對目標變量有較強影響力;IV≥0.5時認為該變量對目標變量有極強的影響力。
樸素貝葉斯算法要求建模的自變量之間相互獨立,但在實際應(yīng)用過程中,參與建模的變量之間往往會存在一定程度的相關(guān)性。相關(guān)系數(shù)是反映兩個變量之間相關(guān)程度的一個重要度量,計算公式如下:
一般情況下,0.4≤ρAi,Aj≤0.6,認為Ai與Aj之間中等程度相關(guān);0.6≤ρAi,Aj≤0.8,認為Ai與Aj之間強相關(guān);0.8≤ρAi,Aj≤1,認為Ai與Aj之間極強相關(guān)。
為了盡可能滿足樸素貝葉斯算法的假設(shè)條件,有必要對變量進行屬性約減。約減規(guī)則如下:
(1)根據(jù)IV值篩選一批對目標變量影響程度較大的自變量,一般選擇IV值大于0.3的變量。
(2)計算(1)中篩選出的自變量之間的相關(guān)系數(shù),一般當ρAi,Aj>0.5時,即可認為Ai與Aj之間有較強的相關(guān)性,不宜全部進入模型。
(3)若ρAi,Aj>0.5,且變量Ai的IV值大于變量Aj的IV值,則只選擇變量Ai參與建模。
樸素貝葉斯算法選擇后驗概率最大的類別作為歸屬,在計算中默認各屬性對目標變量的影響程度一致,但由于信息值已知,各自變量對目標變量的影響程度是有差異的,因此考慮利用各屬性的IV值進行屬性加權(quán)。經(jīng)由前文中基于信息值和相關(guān)屬性約減篩選出對目標變量有強影響力的m個變量,并保證了各變量之間幾乎獨立。假設(shè)這m個變量蘊含了所有的信息,則屬性j所占的比重ej即為:
信息值的比重越大,該變量對目標比變量的影響力就越大,由于條件概率p(xj|Ci)的取值范圍是(0,1),為此可以按照如下公式修正權(quán)重,即:
對后驗概率公式進行修正:
選擇后驗概率最大的類別作為歸屬。
在二分類樸素貝葉斯算法中,若p(C1|X)>p(C0|X),則把樣本X歸為C1類。但有時樣本集中在二類樣本的數(shù)量上相差極大,樣本分布極不均衡,若仍按上述方式判定類別歸屬,則極有可能誤判??紤]當p(C1|X)>l?p(C0|X)時,把樣本X歸為C1類,l值的具體選擇可以依賴其在訓(xùn)練數(shù)據(jù)集上的表現(xiàn)。一般情況下,若C1類的樣本錯判到C0類的較多,可以考慮在(0,1)內(nèi)選擇合適k值;若C0類的樣本錯判到C1類的較多,可以考慮在(1,50)內(nèi)選擇合適k值,以此來提高模型的準確率。
某運營商提供了用戶行為消費特征樣本數(shù)據(jù)共78258條,其中垃圾短信用戶樣本數(shù)據(jù)11837條,用1標識;正常用戶66421條,用0標識。數(shù)據(jù)集有當月消費額、品牌、通話時長、發(fā)送短信條數(shù)、短信回復(fù)率、賬戶余額、是否為垃圾短信用戶等共56個屬性。下面將利用基于信息值的相關(guān)屬性約減—加權(quán)樸素貝葉斯算法來進行建模。
在垃圾短信用戶識別過程中,是否是垃圾短信用戶是目標變量。利用信息值的計算公式,計算除目標變量的其他55個變量的信息值。按照上文中的屬性約減規(guī)則進行屬性約減,最終選定7個變量參與建模,變量的信息值、權(quán)重、相關(guān)系數(shù)如表1和表2所示。
表1 建模變量的信息值、權(quán)重
表2 相關(guān)系數(shù)矩陣
由參與建模的7個變量的相關(guān)系數(shù)矩陣可以看出,變量之間基本滿足條件獨立的假設(shè)。
在數(shù)據(jù)集中按照7:3的比例進行分層隨機抽樣,劃分訓(xùn)練樣本與檢驗樣本。在利用模型求出每一個樣本的后驗概率之后采用自適應(yīng)學(xué)習(xí)選擇合適的l值,判別每一個樣本的歸屬。經(jīng)實驗發(fā)現(xiàn),當l=0.25時模型的準確率最高。至此,當p(C1|X)>0.25?p(C0|X)時,判斷樣本X為垃圾短信用戶。
分別利用改進的樸素貝葉斯算法和傳統(tǒng)樸素貝葉斯算法建立模型,二者在訓(xùn)練集和測試集的建模結(jié)果如表3所示:
表3 模型改進前后效果對比
由表3可以看出基于信息值的相關(guān)屬性約減—加權(quán)樸素貝葉斯算法較傳統(tǒng)的樸素貝葉斯算法在建模效果的準確率上有顯著提升。
樸素貝葉斯算法是目前比較高效經(jīng)濟的分類算法之一,也是常用的十大算法之一。本文在樸素貝葉斯算法的基礎(chǔ)上,針對樸素貝葉斯算法的固有缺陷,提出基于信息值的屬性約減—加權(quán)改進方法,該方法能有效處理相關(guān)屬性,使之盡可能滿足樸素貝葉斯的理論假設(shè)。同時利用屬性的信息值為屬性賦予的權(quán)重,采用自學(xué)習(xí)選擇合適的判定閾值,以降低不平衡樣本對模型的影響,從而最大程度上提高模型的準確率。
在垃圾短信客戶識別的實際應(yīng)用過程中也發(fā)現(xiàn),基于信息值的屬性約減—加權(quán)改進樸素貝葉斯算法較傳統(tǒng)的樸素貝葉斯算法在準確率上有顯著提升。
[1]Geenen P L,Gaag L C V D,Loeffen W L A,et al.Constructing Naive Bayesian Classifiers for Veterinary Medicine:A Case Study in the Clinical Diagnosis of Classical Swine Fever[J].Research in Veterinary Science,2011,91(1).
[2]魏浩,丁要軍.一種基于相關(guān)的屬性選擇改進算法[J].計算機應(yīng)用與軟件,2014,31(8).
[3]王行甫,杜婷.基于屬性選擇的改進加權(quán)樸素貝葉斯分類算法[J].計算機系統(tǒng)應(yīng)用,2015,24(8).
[4]焦鵬,王新政,謝鵬遠.基于屬性選擇法的樸素貝葉斯分類器性能改進[J].電訊技術(shù),2013,(3).
[5]饒麗麗,劉雄輝,張東站.基于特征相關(guān)的改進加權(quán)樸素貝葉斯分類算法[J].廈門大學(xué)學(xué)報:自然科學(xué)版,2012,51(4).
[6]Jiang L,Li C,Wang S,et al.Deep Feature Weighting for Naive Bayes and Its Application to Text Classification[J].Engineering Applications of Artificial Intelligence,2016,(52).
[7]Wang S,Jiang L,Li C.A CFS-Based Feature Weighting Approach to Naive Bayes Text Classifiers[J].Knowledge-Based Systems,2016,(100).