呂曉燕, 陳立潮
(1. 山西醫(yī)科大學 計算機教學部, 山西 太原 030001; 2. 太原科技大學 計算機科學與技術學院, 山西 太原 030024)
隨著數(shù)據(jù)以及大數(shù)據(jù)價值的不斷發(fā)現(xiàn), 機器學習、 深度學習方法被越來越多地應用于數(shù)據(jù)處理. 其中, Support Vector Machine(SVM), 即支持向量機方法, 更是備受推崇[1-3]. 已有的研究表明: 集合多個SVM分類器, 可以提高系統(tǒng)的泛化能力[4-6]. Zhou[3]等人在研究中進一步發(fā)現(xiàn), 選擇部分SVM分類器集成, 性能要優(yōu)于使用所有個體SVM分類器. 文獻[4]構建了二級SVM分類器, 利用投票法集成. 文獻[6]提出了多級支持向量機. 文獻[7]將灰色理論引入SVM的集成, 進行預測等. 這些研究為SVM的集成學習提供了新的思路[8-10]. 但實際應用中, 分類器常常需要隨著新樣本的特征, 能自動調整, 以增加自適應性.
基于此, 本文提出一種自適應支持向量機集成方法. 通過對待定樣本的特征分析, 利用算法在樣本空間搜索其近鄰. 在此基礎上, 依據(jù)各個SVM分類器在近鄰的分類精度,擇優(yōu)挑選部分SVM組合. 集成過程中, 無論是分類器成員還是分類器在集成中所占的權重, 都能隨著待判別樣本的特征自動調整, 實現(xiàn)了“私人定制”.
近鄰如何確定, 分類器如何選取, 集成時各分類器占的權重如何確定, 是本文重點闡述的內容.
在模式特征空間劃分中, 待定樣本的近鄰, 是指與之特征相近的一組訓練樣本. 如何獲取近鄰是本研究解決的首要問題.
1.1.1 模糊C均值聚類(FCM)
設X={X1,X2,…,Xn}∈R, 為樣本空間的數(shù)據(jù)集, 將樣本集劃分為C類,V={V1,V2,… ,Vc}為C個聚類中心. FCM的義目標函數(shù)為
(1)
約束于
?j=1,…,n,
式中:U為隸屬度矩陣;uij為隸屬度.
注意到, 式(1)的目標函數(shù)中, 默認樣本的各個特征對分類所起的作用相同, 有悖實際情況. 因此, 對式(1)進行修正, 修正后的目標函數(shù)為
(2)
式中:wk為樣本各屬性的權重.
1.1.2 模糊貼近度
設A和B是論域X={x1,x2,…,xn}上的兩個模糊集合,μA(x),μB(x)為隸屬度函數(shù). 則A,B的海明加權相對距離為
(3)
式中:w(xi)為權重, 滿足
為了確定待分類樣本的近鄰, 基于改進的FCM及模糊貼近度的近鄰搜索算法, 在MATLAB環(huán)境下, 完成程序的設計.
首先, 通過改進后的FCM算法, 將樣本特征空間:X={X1,X2,…,Xn}劃分為c個模式特征空間:A1,A2,…,Ac, 聚類中心分別為V1,V2,…,Vc.
然后, 根據(jù)待分類樣本B的特征, 據(jù)式(3), 計算B與各類的模糊貼近度.
若δ(Vi,B)=max{δ(V1,B),δ(V2,B),…,δ(Vc,B)}, 則B最貼近Vi.
則Vi所在的模式特征空間上所有的樣本均為待定樣本B在特征空間上的近鄰.
基于改進的FCM與模糊貼近度的樣本近鄰搜索算法如下:
Step 1 初始化: 樣本分類數(shù)為c(2≤c≤n), 誤差精度為ξ,U(0)為初始矩陣.
Step 2 計算各聚類中心Vi(i=1,2,…,c)
(4)
其中
i=1,2,…,c;j=1,2,…,n.
(5)
Step 3 修正劃分矩陣U(l)
(6)
Step 4 比較U(l)與U(l+1). 對取定的ξ>0, 若‖U(l+1)-U(l)‖≤ξ, 則迭代停止, 轉step 6. 否則,l=l+1, 轉step 2繼續(xù)迭代.
Step 5 據(jù)式(3), 計算待分類樣本與各個類的模糊貼近度, 最大值所在的類為其歸屬類.
Step 6 結束.
依據(jù)樣本近鄰的分類, 構造混淆矩陣如式(7)所示.
(7)
設N為類別數(shù), 定義分類精度
(8)
式中:rjj為分類器能正確分類的樣本數(shù);rjl為誤將j類的樣本錯分到l類的樣本數(shù).
由于樣本特征變化會影響SVM分類器的分類能力, 因此, 對待分類樣本確定以下分類器選取原則: 依據(jù)各分類器在其近鄰的分類精度值, 從高到低擇優(yōu)選取. 對于某個分類器SVMi, 當其分類精度LAi大于精度閥值λ時, 該分類器被選擇集成.
假設有k個分類器被選中. 對于每個被選中的分類器, 設其在待分類樣本近鄰的分類精度為LAi, 則該分類器在集成時, 權重wi可用式(9)計算.
(9)
集成判決模型為
(10)
基于樣本分類精度的SVM集成算法, 部分代碼如下:
Fork=1 toK
利用混亂矩陣CM計算LALk(x);
Do procedure_select(); 選擇l個分類器
Fork=1 tol
計算SVMk(x);
If 所有的SVMk都把x判給相同的類別
Thenx就屬于該類別
Else
End for
Procedure_ select(): 選擇過程:
Fork=1 toK
IfLAk(x)≥λ;λ為閾值
Then 第k個分類器被選中
Else
Goto 返回循環(huán)起始語句, 繼續(xù)循環(huán)
Endfor
集成判決流程圖如圖 1 所示.
圖 1 SVM集成方法流程圖Fig.1 Flowchart for support vector machine integration
選取UCI標準數(shù)據(jù)集中的2個醫(yī)學數(shù)據(jù)集Cardiotocography和 Liver disorder數(shù)據(jù)集, 在Matlab環(huán)境下, 進行數(shù)據(jù)的分類及預測. 數(shù)據(jù)集信息如表 1 所示.
表 1 數(shù)據(jù)集信息Tab.1 Data set information
為了提取對分類有影響的重要指標, 在對數(shù)據(jù)歸一處理的基礎上, 利用Relief算法, 對兩個數(shù)據(jù)集, 提取重要的特征指標, 并賦予相應的權重. 結果如表 2 和表 3.
表 2 Cardiotocography數(shù)據(jù)集屬性及權重Tab.2 Cardiotocography data set
表 3 Liver disorder數(shù)據(jù)集屬性及權重Tab.3 Liver disorder data set
利用Bagging技術, 訓練產生100個SVM分類器. 選用徑向基核函數(shù), 設置參數(shù)為:σ2=0.06,C=10.
調整精度閾值λ, 可改變集成分類器的組合規(guī)模. 根據(jù)不同的λ取值, 分別確定不同數(shù)目的分類器組合, 觀察對分類結果的影響. 結果如圖 2 和圖 3 所示.
圖 2 λ取不同值在Cardiotocography上的分類結果Fig.2 Results on cardiotocography
圖 3 λ取不同值在Liver disorder上的分類Fig.3 Results on liver disorder
圖 2 和圖 3 顯示, 隨著集成中分類器個數(shù)的增加, 準確率開始上升, 直至最高. 此時, 圖 2 對應的分類器個數(shù)為26(λ為0.527), 圖3對應的分類器個數(shù)為21(λ為0.431). 繼續(xù)增加分類器個數(shù), 發(fā)現(xiàn)準確率反而下降, 說明集成中選擇的分類器并非越多越好. 實踐中, 可以通過不斷調整精度閥值λ的值, 以獲得最佳的組合分類器個數(shù).
將本文方法構建的分類器與其它分類器從分類性能方面比較, 結果如表 4 所示.
其中, Bagging和Boosting集成, 采用的算法分別為RF(Random Forest)算法和Adaboost算法.
表 4 幾種方法的分類結果Tab.4 Classification results of several methods
表 4 顯示, 本文方法構建的分類器與其它常見的分類器相比, 無論是準確度, 還是靈敏度或者或特異度, 都有明顯的優(yōu)勢. RF算法與Adaboost算法分類, 分類效果接近, 均高于全部分類器集成.
進一步在兩個數(shù)據(jù)集的測試集上比較幾種集成分類器的判決時間, 結果如圖 4 所示.
圖 4 不同分類器判決時間Fig.4 Decision time of different classifiers
圖 4 顯示, 本文方法構建的分類器可顯著縮短判別時間. 這與本文在個體分類器選擇時使用的策略有關. 由于無需考慮各分類器在整體樣本的分類精度, 所以減少了計算的工作量, 縮短了判別時間. RF算法在數(shù)據(jù)分類時花費時間最長, 原因在于該算法依賴的是決策樹, 復雜度增加時, 決策樹不可避免增加, 導致低效率.
分別從Cardiotocography和Liver disorder兩個數(shù)據(jù)集中, 選取不同規(guī)模的數(shù)據(jù)進行測試, 結果如圖 5 和圖 6 所示.
圖 5 Cardiotocography數(shù)據(jù)集上的穩(wěn)定性Fig.5 Stability on Cardiotocography
圖 6 Liver disorder數(shù)據(jù)集上的穩(wěn)定性Fig.6 Stability on Liver disorder
圖 5 和圖 6 表明, 本文方法構建的SVM集成分類器的準確度始終高于其它兩種方法. 進一步擴大數(shù)據(jù)規(guī)模, 準確率始終高于其它三種分類器的判別效果, 說明了該分類器的性能具有一定的可靠性.
SVM集成的關鍵是如何擇優(yōu)選取個體分類器. 本文從分類性能、 判別時間及穩(wěn)定性方面, 將建立的分類器與其它常用集成分類器進行實驗對比.
結果顯示, 本文提出的方法, 在UCI的兩個醫(yī)學數(shù)據(jù)集的分類中, 無論在分類的準確度還是靈敏度及特異度方面, 均高于其它的集成方法. 選取不同規(guī)模的數(shù)據(jù)進行穩(wěn)定性實驗, 本文方法構建的分類器始終具有一定的優(yōu)勢, 說明本文提出的方法在實踐中具有一定的穩(wěn)定性和可靠性.
比較幾種方法的分類判別時間, 結果顯示, 本文提出的方法所需的時間最短, 利用Bagging中的RF算法判決時, 時間最長, 反應了該算法在解決復雜問題時, 因決策樹增多而導致的低效率.
另外, 本文提出的方法最大的優(yōu)勢還在于動態(tài)性和自適應性. SVM集成中的各個分類品成員, 以及各成員分類器在集成判別中的權重, 都不是一成不變的, 而是隨著待定樣本特征的變化動態(tài)調整.