楊立洪,李瓊陽,李興耀
(華南理工大學數學學院,廣州510640)
樸素貝葉斯分類(Naive Bayes Classification)算法是目前公認的一種簡單有效的分類算法,它是一種基于概率的分類方法,被廣泛地應用于模式識別、自然語言處理、機器人導航、機器學習等領域。樸素貝葉斯算法是基于特征項間獨立、對目標變量影響力一致的假設,但實際應用中極少數問題能滿足此假設。為此許多學者致力于改進樸素貝葉斯算法,以期提高算法的普適性和準確率。改進之處主要體現在兩個方面:一是在屬性選擇上預把控;二是衡量各屬性對目標變量的影響程度,對屬性加權。
在屬性選擇上,Geenen P Ld等[1]提出一種基于互信息選擇特征屬性的方法,并利用樸素貝葉斯算法在二分類問題上取得了極好的分類效果。魏浩和丁要軍[2]提出用屬性關聯度表示一個屬性和類屬性間的相關性,反映這個屬性對分類結果影響的程度;用屬性冗余度表示一個屬性和其他屬性之間相關性,反映這個屬性和其他屬性間的依賴度。王行甫和杜婷[3]提出利用CFS算法選擇特征屬性。焦鵬等[4]提出將屬性先驗分布的參數設置加入到屬性選擇的過程中,并研究當先驗分布服從Dirichlet分布及廣義Dirichlet分布情況下的具體實踐方案。研究出一種加權樸素貝葉斯算法,通過對不同的特征項提供不同的權值,削弱特征項之間的相關性。
在屬性加權上,饒麗麗等[5]提出在傳統權重計算基礎上,考慮到特征項在類內和類間的分布情況,另外還結合特征項間的相關度,調整權重計算值,加大最能代表所屬類的特征項的權重。Jiang L等[6]提出在訓練集中深度計算特征加權頻率,估計樸素貝葉斯的條件概率。Lungan Zhang等[7]提出了兩種自適應特征加權方法:一是基于樹的自適應特征加權;二是基于信息增益率的特征加權。
為了解決樸素貝葉斯算法的兩個固有缺陷,本文將構建基于信息值的相關屬性約減—加權二分類樸素貝葉斯模型,有效解決屬性相關、屬性加權的問題。在判定樣本類別歸屬時,采用自適應學習選擇合適的閾值,以此削弱不平衡樣本集的影響,提高模型的準確率。最后在某運營商提供的垃圾短信用戶行為消費特征樣本數據上進行實證分析,結果表明:基于信息值的相關屬性約減—加權二分類樸素貝葉斯較傳統樸素貝葉斯模在模型準確率上有顯著提升。
樸素貝葉斯算法的分類原理是通過某對象的先驗概率,利用貝葉斯公式計算出其后驗概率,具有最大后驗概率的類則為該對象所屬的類。樸素貝葉斯是在貝葉斯分類法的基礎上提出的,該算法滿足一個簡單的假定,即在給定目標值時屬性值之間相互條件獨立。
樸素貝葉斯分類算法的工作過程如下:
(1)設A表示訓練樣本的屬性集,有m個屬性A1,A2,…,Am;C表示類集合,有k個類C1,C2,…,Ck;每個數據樣本X用一個m維特征向量來描述m個屬性的值,即:X=(x1,x2,…,xm),其中xi∈Ai(1≤i≤m)。
(2)對訓練樣本集進行統計,計算得到每個特征屬性在各類別的條件概率估計,即:

(3)對每個類別計算后驗概率,根據貝葉斯定理及樸素貝葉斯算法的假定可知:

(4)取最大后驗概率項作為樣本所屬類別:

信息值簡稱IV,衡量自變量對目標變量的影響程度,是建模時篩選變量的一個非常重要的指標。它起源于香農提出的信息理論,與廣泛應用的熵有極大的相似性,主要適用于二分類模型。在介紹信息值之前,有必要先引入WOE(weight of evidence)。為方便表述,將二分類目標變量標識為0、1,其中1表示違約,0表示正常。WOE實質上是表示自變量取某個值時對違約比例的影響,例如當自變量取值為i時對目標變量違約比例的影響woei的計算公式如下:

其中,Bi指當該自變量取值為i時的違約樣本數,Gi指該自變量取值為i時的正常樣本數。BT指建模樣本數據中總的違約樣本數,GT指建模樣本數據中總的正常樣本數。
信息值衡量一個變量的信息量,例如對于一個有n個取值的自變量而言,該自變量的信息值計算公式如下:
當層間位移角到達2%rad,即梁加載中心點位移25.46 mm時,在梁端位移負向最大位移時,發生一聲巨響,這是用簡易扳手可擰動梁下翼緣與角鋼相連的左排螺栓,但肉眼看不出。當層間位移角到達3%rad(38.19 mm)時,響聲不間斷的會發出,角鋼略微掀起。

從計算公式上可以看出,信息值是自變量WOE值的一個加權組合,其值的大小決定了自變量對目標變量的影響程度。從形式上看來,信息值與信息熵也是極為相似的。
通常認為,0.1≤IV≤0.3時認為該變量對目標變量有中等影響力;0.3≤IV≤0.5時認為該變量對目標變量有較強影響力;IV≥0.5時認為該變量對目標變量有極強的影響力。
樸素貝葉斯算法要求建模的自變量之間相互獨立,但在實際應用過程中,參與建模的變量之間往往會存在一定程度的相關性。相關系數是反映兩個變量之間相關程度的一個重要度量,計算公式如下:

一般情況下,0.4≤ρAi,Aj≤0.6,認為Ai與Aj之間中等程度相關;0.6≤ρAi,Aj≤0.8,認為Ai與Aj之間強相關;0.8≤ρAi,Aj≤1,認為Ai與Aj之間極強相關。
為了盡可能滿足樸素貝葉斯算法的假設條件,有必要對變量進行屬性約減。約減規則如下:
(1)根據IV值篩選一批對目標變量影響程度較大的自變量,一般選擇IV值大于0.3的變量。
(2)計算(1)中篩選出的自變量之間的相關系數,一般當ρAi,Aj>0.5時,即可認為Ai與Aj之間有較強的相關性,不宜全部進入模型。
(3)若ρAi,Aj>0.5,且變量Ai的IV值大于變量Aj的IV值,則只選擇變量Ai參與建模。
樸素貝葉斯算法選擇后驗概率最大的類別作為歸屬,在計算中默認各屬性對目標變量的影響程度一致,但由于信息值已知,各自變量對目標變量的影響程度是有差異的,因此考慮利用各屬性的IV值進行屬性加權。經由前文中基于信息值和相關屬性約減篩選出對目標變量有強影響力的m個變量,并保證了各變量之間幾乎獨立。假設這m個變量蘊含了所有的信息,則屬性j所占的比重ej即為:

信息值的比重越大,該變量對目標比變量的影響力就越大,由于條件概率p(xj|Ci)的取值范圍是(0,1),為此可以按照如下公式修正權重,即:

對后驗概率公式進行修正:

選擇后驗概率最大的類別作為歸屬。
在二分類樸素貝葉斯算法中,若p(C1|X)>p(C0|X),則把樣本X歸為C1類。但有時樣本集中在二類樣本的數量上相差極大,樣本分布極不均衡,若仍按上述方式判定類別歸屬,則極有可能誤判??紤]當p(C1|X)>l?p(C0|X)時,把樣本X歸為C1類,l值的具體選擇可以依賴其在訓練數據集上的表現。一般情況下,若C1類的樣本錯判到C0類的較多,可以考慮在(0,1)內選擇合適k值;若C0類的樣本錯判到C1類的較多,可以考慮在(1,50)內選擇合適k值,以此來提高模型的準確率。
某運營商提供了用戶行為消費特征樣本數據共78258條,其中垃圾短信用戶樣本數據11837條,用1標識;正常用戶66421條,用0標識。數據集有當月消費額、品牌、通話時長、發送短信條數、短信回復率、賬戶余額、是否為垃圾短信用戶等共56個屬性。下面將利用基于信息值的相關屬性約減—加權樸素貝葉斯算法來進行建模。
在垃圾短信用戶識別過程中,是否是垃圾短信用戶是目標變量。利用信息值的計算公式,計算除目標變量的其他55個變量的信息值。按照上文中的屬性約減規則進行屬性約減,最終選定7個變量參與建模,變量的信息值、權重、相關系數如表1和表2所示。

表1 建模變量的信息值、權重

表2 相關系數矩陣
由參與建模的7個變量的相關系數矩陣可以看出,變量之間基本滿足條件獨立的假設。
在數據集中按照7:3的比例進行分層隨機抽樣,劃分訓練樣本與檢驗樣本。在利用模型求出每一個樣本的后驗概率之后采用自適應學習選擇合適的l值,判別每一個樣本的歸屬。經實驗發現,當l=0.25時模型的準確率最高。至此,當p(C1|X)>0.25?p(C0|X)時,判斷樣本X為垃圾短信用戶。
分別利用改進的樸素貝葉斯算法和傳統樸素貝葉斯算法建立模型,二者在訓練集和測試集的建模結果如表3所示:

表3 模型改進前后效果對比
由表3可以看出基于信息值的相關屬性約減—加權樸素貝葉斯算法較傳統的樸素貝葉斯算法在建模效果的準確率上有顯著提升。
樸素貝葉斯算法是目前比較高效經濟的分類算法之一,也是常用的十大算法之一。本文在樸素貝葉斯算法的基礎上,針對樸素貝葉斯算法的固有缺陷,提出基于信息值的屬性約減—加權改進方法,該方法能有效處理相關屬性,使之盡可能滿足樸素貝葉斯的理論假設。同時利用屬性的信息值為屬性賦予的權重,采用自學習選擇合適的判定閾值,以降低不平衡樣本對模型的影響,從而最大程度上提高模型的準確率。
在垃圾短信客戶識別的實際應用過程中也發現,基于信息值的屬性約減—加權改進樸素貝葉斯算法較傳統的樸素貝葉斯算法在準確率上有顯著提升。
[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]魏浩,丁要軍.一種基于相關的屬性選擇改進算法[J].計算機應用與軟件,2014,31(8).
[3]王行甫,杜婷.基于屬性選擇的改進加權樸素貝葉斯分類算法[J].計算機系統應用,2015,24(8).
[4]焦鵬,王新政,謝鵬遠.基于屬性選擇法的樸素貝葉斯分類器性能改進[J].電訊技術,2013,(3).
[5]饒麗麗,劉雄輝,張東站.基于特征相關的改進加權樸素貝葉斯分類算法[J].廈門大學學報:自然科學版,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).