吳疆 岳賢亮 董婷 蔣平



摘 要:主要研究應用單分類支持向量機(One-class Support Vector Machine,OneSVM)在不平衡樣本數據集的建模問題。首先從UCI 獲得Abalon數據集,隨機挑選400正樣本和400負樣本構建訓練集,交叉驗證方法用于OneSVM 分類器訓練,模型對數據集的預測精度達到98.00%,與標準SVM分類器對此數據集83.10%的預測正確率相比具有明顯的競爭力。然后在樣本數據不平衡數據機上訓練加權SVM對負樣本的預測精度為76.70%,模型對負樣本不具有穩定性。實驗結果表明單分類支持向量機在樣本數目失衡的學習問題中具有良好的泛化能力,同時單分類支持向量機只用一類樣本訓練分類器,在算法的復雜度上也具有優勢。
關鍵詞: 支持向量機; 單分類支持向量機; 預測偏置
中圖分類號: TP 311
文獻標志碼: A
Abstract: The purpose of this article is to study the performance ofone-class support vector machine (OneSVM) used in unbalanced dataset prediction. Firstly, the Abalon dataset was obtained for UCI, in which 400 positive and negative samples were selected to construct training datasets, cross-validation method was employed to train OneSVM classifiers, 98.00% accuracy was obtained and the results indicates more promisingcompared with the accuracy 83.10% obtained by using SVM methods. Secondly, an unbalanced dataset was constructed to train right-SVM; the specificity accuracy 76.70% showed the model was lack of stability. The results indicate OneSVM has great generalization in unbalanced dataset learning problems, where, OneSVM is only trained on single class samples that intend to more superior in the complexity.
Key words: support vector machine; OneSVM; prediction bias
0 引言
支持向量機是基于統計學習理論實現的小樣本學習算法,核心思想是實現最大間隔分類從而降低模型的置信范圍,引入核函數對數據空間進行升維從而解決線性不可分問題在超平面上變得線性可分。支持向量機設計應用與二分類問題,在許多領域的應用取得巨大的成功。很多研究者針對不同的問題提出了多種改進算法,如最小二乘支持向量機(Least Square SVM,LSSVM),它遵循結構風險最小化的原則[1]。張學工教授提出了中心支持向量機(Central SVM,CSVM)用于回歸分析[2]。此后,林智仁教授設計并開發了較為完善的Libsvm軟件工具包[3]。
然而在實際應用中,很多的機器學習問題都是小樣本學習問題,無法獲得大量的樣本數據,或者存在某類樣本無法獲得的情況,諸如入侵檢測、敵我識別往往只能獲得一類樣本。因此可以應用于單分類問題的支持向量機算法就顯得尤為重要,Schlkopf設計出了單類樣本學習的支持向量機算法(OneSVM)[4],在很多應用中取得巨大的成功。
1 材料與方法
1.1 支持向量機(SVM)
SVM的數據描述就是找到一個最優分類面,要求能把兩類樣本沒有錯誤地分開并且分類間隔保證最大。前者是逼近經驗風險最小(模型對訓練集樣本能正確分類);使分類間隔最大實現置信范圍最小,從而逼近真實風險最小。SVM可以描述為求解的一個優化問題,如式(1)。
1.2 單分類支持向量機(OneSVM)
OneSVM只在一類樣本集上訓練分類器[5]。在二類問題中常常出現這樣的情況,正樣本容易收集而負樣本很少或者收集需要付出更多的成本,標準SVM算法根本無法有效解決這樣的問題[6]。OneSVM可以看作是解決兩類樣本分類問題的特例,只有正樣本而負樣本很少,或者幾乎沒有負樣本的情況下,單分類支持向量機要求找到這樣一個超平面,這個超平面可以把正樣本完全分開并使得最優分類面距離坐標原點的間隔最大,OneSVM可以描述為求解的一個優化問題[7],如式(2)。
1.3 數據
在本文中,所用數據來源于機器學習標準數據庫(UCI Machine Learning Repository),名稱為Abalone(鮑魚數據庫)由塔斯馬尼亞大學的計算機科學部門在1995年捐贈。鮑魚標準數據集[5]共收有1 528條雄性鮑魚數據和1 342條幼年體鮑魚數據。每條數據由8個屬性組成分別為Length、Diam、Height、Whole、Shucked、Viscera、Shell和Rings。我們將雄性鮑魚作為正樣本(Positive samples),幼年體鮑魚作為負樣本(Negative samples)。隨機在正樣本和負樣本中各選取400條數據作為訓練集,驗證模型對雄性、幼年體鮑魚的預報能力。列出鮑魚數據特征統計信息,如表1所示。
2 實驗結果與討論
2.1 模型性能評價參數
引入四種常用的分類器性能評價指標準確率(Accuracy, Acc)、靈敏度(Sensitivity,Se)、特異性(Specificity, Sp)來評價模型的預報能力和穩定性,如式(3)—式(5)。
其中TP(True Positive)是正樣本數據被模型預測為正類的樣本數目,TN(True Positive)是負樣本數據被模型預測為負類的樣本數目,
FP(False Positive)是負樣本數據被模型預測為正類的樣本數目,FN(False Negative)是正樣本數據被模型預測為負類樣本數目。Acc表示數據集整體的預測準確度;Se表示正樣本的預測精度;Sp表示出負樣本的預測精度。
2.2 支持向量機分類法用于鮑魚數據建模
本實驗通過20-fold交叉驗證的方式來對鮑魚數據進行建模,在訓練分類器模型時,遵循正負樣本平衡的原則,即在選取的訓練集中正樣本的數量與負樣本的數量相等。由于鮑魚原始數據量較大,因此本實驗隨機選取正負樣本各400條,訓練支持向量機分類器,靈敏度為77.0%、特異性為89.3%、準確率為83.1%、馬修相關系數為0.667 5。本分類器模型有預測偏置(靈敏度與特異性相差超過10%),故需再尋求新的實驗方式驗證,實驗結果如表2所示。
2.3 支持向量機對失衡鮑魚數據集建模
本實驗驗證支持向量機算法在正負樣本數目失衡數據集上的泛化能力,在3.2節所用實驗數據基礎上隨機挑選300條正樣本和30條負樣本構建失衡數據集,20-fold交叉驗證方法用來訓練支持向量機分類器,靈敏度為99.0%、特異性為76.7%、準確率為97.0%、馬修相關系數為0.807 4。本分類器雖然準確率高達97.0%但是存在嚴重預測偏置,且預測偏置高達22.3%,這說明分類器對負樣本存在欠擬合問題,導致不能模型不具有穩定性,實驗結果如表3所示。
2.4 加權支持向量機對失衡鮑魚數據集建模
為了解決支持向量機算法在處理正負樣本數目失衡數據集上的預測偏置問題,從過對核函數矩陣正負樣本數據加權的方式在3.3節的數據集上訓練SVM分類器,靈敏度為95.0%、特異性為86.7%、準確率為94.2%、馬修相關系數為0.7117。本分類器模型雖然準確率達到94.2%,但是預測偏置依舊存在,達8.3%,但比3.3節中模型預測偏置要小,實驗結果如表4所示。
2.5 單分類支持向量機對鮑魚數據建模
支持向量機算法適用于兩類樣本的分類問題,而在實際應用中往往會面對正負樣本不平衡的情況,如入侵檢測、敵我識別。在這時支持向量機就無法對數量較少的樣本取得良好的預測精度。單分類支持向量機是一種無監督的學習方法,它通過計算樣本特征空間的概率密度分布的方法實現對樣本的劃分。在給定的訓練樣本中,單分類支持向量機訓練一個決策函數,如果它落入概率密度區域,則被判定為正樣本,沒有落入概率密度區域,則被判定為負樣本。單分類支持向量機使正常類數據在特征空間中的像與原點以最大間隔分開,如圖1所示。
在本次實驗中,在3.2節的數據集上,對各為400條樣本正負負樣本數據集上訓練單分類支持向量機,同樣對應用20-fold交叉驗證方法獲得最優模型,對正負樣本的預測精度為98%,比較四種方法對鮑魚數據建模結果,如表5所示。
由實驗結果可以得出,雖然二分類算法對失衡鮑魚數據建模的整體準確率高達97.0%,但是會出現預測偏置的情況,加權法雖然可以使分類器的預測偏置縮小,但是是犧牲了數目較大的樣本類的預測精度(靈敏度從99.0%下降到95.0%),而單分類支持向量機在本實驗中表現出良好泛化能力,98%的預測精度具有明顯競爭力,并且能有效解決分類器在樣本不平衡情況下的預測偏置問題。
3 總結
標準支持向量機在解決樣本數目失衡學習問題時會發生欠擬合情況,分類器模型對正樣本與負樣本的預測精度會出現偏置,不具備較好的穩定性和推廣性[8]。加權的方法可以有效解決支持向量機分類器預測偏置問題,但是這種優化是通過平衡模型靈敏度和特性而實現的,不能從本質上解決分類器的魯棒性問題。單分類支持向量機算法對樣本數目不平衡數據集的學習問題表現出良好的泛化能力,為解決同類問題,尤其是極致情況下(某類樣本無法獲得,只有正樣本或負樣本)的無監督學習問題有著巨大的適應性。
參考文獻
[1] 袁凱.多視角協同訓練算法研究[J].西安電子科技大學學報,2013,18(1):45-48.
[2] 許良鳳,徐小兵,胡敏,等.基于多分類器融合的玉米葉部病害識別[J]. 農業工程學報,2015(14):194-201.
[3] 鄒晴.多分類器融合的文本分類研究[D].長沙:湖北工業大學,2015.
[4] 吳巾一,周德龍.人臉識別方法綜述[J].計算機應用研究, 2009(9):3205-3209.
[5] 陳善學,尹修玄,楊亞娟.基于碼字匹配和引力篩選的半監督協同訓練算[J].武漢大學學報(信息科學版),2015(4010):1386-1391.
[6] 薛貞霞,劉三陽,劉萬里.改進的漸進直推式支持向量機算法[J].系統工程理論與實踐2009(5):142-148.
[7] 廖東平,姜斌,魏璽章,等.一種快速的漸進直推式支持向量機分類學習算法[J].系統工程與電子技術, 2007(1):87-91.
[8] 馮慧敏.多分類器融合中的模糊測度研究[D].石家莊:河北大學,2005.
(收稿日期: 2019.08.23)