??? 摘 要: 針對實際中存在的各類別樣本錯分造成不同危害程度的分類問題,提出了一種基于屬性加權的代價敏感支持向量機分類算法,即在計算各個樣本特征屬性對分類的重要度之后,對相應的屬性進行重要度加權,所得的數據用于訓練和測試代價敏感支持向量機。數值實驗的結果表明,該方法提高了誤分代價高的類別的分類精度,同時屬性重要度的引入提高了分類器的整體分類性能。該方法對錯分代價不對稱的數據分類問題具有重要的現實意義。
關鍵詞: 屬性加權; 支持向量機; 代價敏感支持向量機
?
SVM算法是一種專門研究小樣本情況下機器學習規律的理論,它能夠解決漸進理論所難于解決的過擬合、局部極小和泛化能力差等問題。這一新的機器學習方法表現出很多優于已有方法的性能,迅速引起各領域的關注和研究,并成功地引入到很多領域的應用中,取得了大量的應用研究成果。
在SVM算法的研究中,提高它的分類能力是所有研究的宗旨和目的,很多學者提出了改進的支持向量機方法:給每一類樣本賦以不同權值的加權支持向量機算法WSVM(Weighted SVM)[1-2],對類別差異造成的影響進行相應的補償,提高了小類別樣本的分類精度,但影響了整體的分類性能;將模糊學引入了支持向量機,提出了模糊支持向量機算法FSVM(Fuzzy SVM)[3-4],減少野值和噪聲的影響;利用樣本的屬性重要度的支持向量機方法[5],給各個屬性設定相應的權值,提高了分類的精度。
針對實際應用中各類別樣本錯分所造成的不同程度危害,提出了代價敏感支持向量機算法[6],該方法對支持向量機算法進行改進,將分類代價考慮進去,使得分類結果的代價最小,該方法對錯分代價不對稱的數據分類問題具有重要的現實意義,如網絡故障、網絡安全等。
1 支持向量機
支持向量機的基本思想是對于給定的樣本集(xi,yi),xi∈Rn,yi∈{+1,-1},i=1,…,l,其中xi是n維空間中的向量,yi是xi所屬類的類別標識,尋找將兩類數據正確分開并使分類間隔最大的超平面,該超平面稱為最優超平面,分類情況如圖1所示。
?
為了尋找最優超平面,需要求解下面的二次規劃問題:
???????????????????????????
其中,
這是由Vapnik提出的第一種支持向量機,也被稱為C-SVM或標準支持向量機。
2 代價敏感支持向量機
考慮兩類的分類問題,類別分別為C+和C-,假定C+的錯分代價大于C-的錯分代價。為了解決分類中的代價不對稱問題,將分類算法SVM進行改造,基本思想就是對C+錯分、C-錯分兩種錯誤分別引入不同的代價函數。這種方法等價于對誤分代價高的類使用更大的拉格朗日算子αi,從而使分類平面遠離C+,而靠近C-,使得未知數據被劃分為C+的概率更大,從而減小了分類中因錯分引起的損失。
在支持向量機(SVM)中,原始問題為:
在訓練過程中使用C+>C-,得到的分類器的決策平面靠近類別C-,使測試樣本更多地落在C+的區域中,從而減小C+類的樣本錯分的可能性,但也加大了C-類樣本被錯分的可能性。因此需尋找合適的參數,使得兩類樣本的分類結果都盡可能地達到最優。設兩類樣本的約束值的比值為:
s=C+/C-
s值通常使用窮舉的方法來確定,先固定C-的值為C,搜索最佳參數C+的值,使得分類的錯誤代價最小。
代價敏感支持向量機的主要思想就是通過改變兩類的懲罰因子C+和C-的比值,使得分類面向遠離錯分代價高的一類的方向移動,從而使得樣本更大可能地被分為這一類,降低分類錯誤代價,但提高某一類樣本的分類正確率總是以犧牲另一類的分類正確率為代價的。
3 屬性的權值
樣本屬性重要性的度量是屬性相關分析的主要內容,在模糊集和粗糙集理論方面有許多的研究。這里介紹常用的基于信息熵的屬性權值的計算方法[6]。
設有數據樣本集合S,該樣本集有m個不同的屬性值和n個不同的類別,分別定義為Ai(i=1,…,m)和Cj(j=1,…,n),si為Ci中的樣本數。根據概率分布和聯合概率分布以及信息論中熵和條件熵的定義,對于一個給定的樣本分類問題所需的期望信息由下式給出:
式中 pi是樣本屬于Cj的概率,其中 pi=si/s。
設屬性A有v個不同值{a1,a2,…,av},屬性A可將樣本集S劃分為v個子集{s1,s2,…,sv},其中Sj為在屬性A上具有值ai,設sij為子集Sj中類Ci的樣本數。根據A的這種劃分的期望信息為:
式中pij=sij/|sj|,|sj|是sj中樣本屬于類Ci的概率。
在屬性A上該劃分獲得的信息增益為:
δ=H(C)-E(A)
根據上面的計算得到每個屬性的權重系數為:
從分析中知道,該權重系數反應了樣本中各個屬性的重要程度,權重系數值越大則該屬性越重要,對分類的貢獻越大。
在確定了樣本屬性重要度后,就可以構造基于樣本屬性重要度的代價敏感支持向量機。
4 實驗結果
本文利用MATLAB軟件進行模擬實驗,對+1類和-1類的分類性能進行比較,在三維空間中引入兩類不同的樣本:正類和負類,并引入了一定數量的噪聲和野值數據。為了驗證所提算法的有效性,利用所提算法進行了一系列比較實驗。在實驗中,模擬用的訓練樣本和測試樣本均隨機產生,樣本數據情況如表1所示。
在實驗中考慮正類的錯分代價大于負類的錯分代價,分別用C-SVM、Cost-sensitive SVM和屬性加權的Cost-sensitive SVM進行性能測試,表2所示為分類準確率的比較。由表2可見代價敏感支持向量機分類算法提高了錯分代價高的類別的分類精度,在進行屬性加權后,總體的分類精度也得到了提高。
本文在對支持向量機分析的基礎上,提出了對樣本屬性加權型的代價敏感加權支持向量機。數值實驗的結果表明,該方法能夠提高錯分代價敏感的類別的分類精度,同時整體的分類性能也得到了提高。但是如何確定代價系數仍然是一個需要解決的問題,也是筆者下一步要研究的方向。
參考文獻
[1]?范昕煒,杜樹新,吳鐵軍.可補償類別差異的加權支持向量機算法[J].中國圖像圖形學報,2003,8(7):1037-1042.
[2]?賈銀山,賈傳熒. 一種加權支持向量機分類算法[J].計算機工程,2005,10(5):35-39.
[3]?LIN C F, WANG S D. Fuzzy support vector machine [J].?IEEE Trans. On Neural Networks, 2002, 13(2):464-471.
[4]?陳小娟, 劉三陽. 一種新的模糊支持向量機算法[J].西安文理學院學報:自然科學版,2008,11(1):1-4.
[5]?汪延華,田盛豐. 樣本屬性重要度的支持向量機方法[J]. 北京交通大學學報,2007,10(5):43-46.
[6]?趙靖.基于SVM算法的垃圾郵件過濾研究與實現[D].北京:北京交通大學,2005.