楊 毅,梅 穎
(麗水學院工學院,浙江麗水323000)
不平衡數(shù)據(jù)集廣泛地存在于實際生活中,如醫(yī)療診斷、垃圾郵件過濾、衛(wèi)星圖像中的石油泄漏等。不平衡數(shù)據(jù)集是相對于平衡數(shù)據(jù)集而言的,指的是數(shù)據(jù)集的類別分布相差很大。
通常,樣本數(shù)目多的類別稱為多數(shù)類,樣本數(shù)目少的類別稱為少數(shù)類。分類器往往會因為數(shù)據(jù)的不平衡性而無法滿足分類的要求,因此在構(gòu)建分類模型前,需要對不平衡數(shù)據(jù)集進行預(yù)處理[1-2]。
目前,處理不平衡數(shù)據(jù)集的分類問題主要分兩類。一類是從訓練集入手,改變訓練樣本的分布,改善數(shù)據(jù)集的不平衡性。另一類是從學習算法入手,標準的分類算法在處理不平衡問題時存在缺陷,分類結(jié)果會錯誤地傾向于多數(shù)類樣本,因此需要適當調(diào)整算法使之適用于不平衡數(shù)據(jù)集的分類問題。改善訓練集不平衡性的方法主要有隨機采樣和訓練集分類。學習算法層面的方法主要有分類器集成、代價敏感學習和特征選擇等。
隨機采樣的方法是通過增加少數(shù)類樣本和減少多數(shù)類樣本來改善不平衡數(shù)據(jù)集的不平衡性,從而提高分類器對少數(shù)類樣本的識別率。Chawla等人提出的SMOTE算法[3]是一種簡單有效的過采樣方法,該方法在少數(shù)類樣本中隨機選擇k近鄰,通過與k近鄰插值增加少數(shù)類樣本的數(shù)量,改善了不平衡數(shù)據(jù)集的分布。文[4]提出的B-SMOTE(Borderline-SMOT)算法是建立在SMOTE算法的基礎(chǔ)上的,它把少數(shù)類樣本分成噪聲、邊界樣本及安全樣本,對其中的邊界樣本進行近鄰插值,從而進一步改善數(shù)據(jù)集的不平衡分布。文[5]在B-SMOTE算法的基礎(chǔ)上提出了RB-SMOTE(Refined Borderline-SMOTE)算法,該方法根據(jù)邊界樣本的具體分布設(shè)置了不同的采樣倍率,再通過內(nèi)插的方式合成新生的少數(shù)類樣本,進一步優(yōu)化了不平衡數(shù)據(jù)集的分布。
集成學習算法[6-7]是構(gòu)建并結(jié)合多個分類器來完成學習任務(wù)的。一般先產(chǎn)生一組基分類器,再用某些方法把基分類器組合成集成分類器。集成學習主要有兩個問題需要解決,一個是如何得到一組基分類器,另一個是如何選擇組合方法把基分類器合成一個集成的強分類器。組合方法主要有平均法、投票法和學習法等。集成分類器通??梢缘玫奖葐我环诸惼骶哂懈语@著的泛化性。經(jīng)典的集成學習法有 bagging[8]、boosting[9]、隨機森林[10]、stacking[11]等等。
本文在RB-SMOTE算法的基礎(chǔ)上結(jié)合集成學習的投票法,提出了面向不平衡數(shù)據(jù)集的一種基于SMOTE的集成學習算法。該算法合成不平衡率不一的多個新訓練樣本集,利用這些新數(shù)據(jù)集訓練相應(yīng)的支持向量機作為基分類器,剔除具有錯誤分類傾向的基分類器,通過投票的方式把剩余的基分類器組合成集成分類器。
設(shè)原始訓練樣本為T,分為少數(shù)類樣本P和多數(shù)類樣本 N。其中 pi∈P,i=1,2,…,pnum 表示少數(shù)類樣本,ni∈N,i=1,2,…,nnum 表示多數(shù)類樣本。
SMOTE算法首先計算少數(shù)類樣本中的每一個樣本pi與少數(shù)類樣本P的歐式距離,得到k近鄰;再根據(jù)采樣倍率,在k個近鄰中選擇適合的個數(shù)s;然后把該樣本pi與s個近鄰進行線性插值,合成新增加的少數(shù)類樣本;最后新增加的少數(shù)類樣本與原始數(shù)據(jù)合并,構(gòu)成新的訓練樣本。
在SMOTE算法的基礎(chǔ)上,B-SMOTE算法把少數(shù)類樣本劃分為安全樣本、邊界樣本和噪聲。先計算少數(shù)類樣本中的每一個樣本pi與訓練樣本T的歐式距離,得到k近鄰;再根據(jù)采樣倍率,在k個近鄰中選擇適合的個數(shù)s,少數(shù)類中的邊界樣本插值合成新的少數(shù)類樣本。
RB-SMOTE算法在B-SMOTE的基礎(chǔ)上對少數(shù)類中的邊界樣本加以區(qū)分,選擇合適的采樣倍率,精細化分配新生成的樣本數(shù)量,進一步改善不平衡數(shù)據(jù)的不平衡性。
在集成學習的分類任務(wù)中,通過訓練m個基分類器C1,C2,…,Cm,選擇合適的組合方法,把多個基分類器合并成一個集成的強分類器。如圖1,輸入測試樣本到m個基分類器中,得到相應(yīng)的m個預(yù)測結(jié)果q1,q2,…,qm,選擇投票方式獲得分類結(jié)果。
圖1 集成學習流程圖
反映不平衡數(shù)據(jù)集各類之間不平衡程度的一個重要指標是不平衡率,二分類數(shù)據(jù)集的不平衡率表示為:
下面給出基于SMOTE的集成學習算法的具體步驟:
步驟1 獲得少數(shù)類樣本的k近鄰。
計算少數(shù)類樣本 pi,i=1,2,…,pnum 與訓練樣本T的k近鄰,k近鄰中有k'(0≤k'≤k)個樣本屬于多數(shù)類樣本。
步驟2 劃分少數(shù)類樣本。
如果0≤k'<k/t(適當選取參數(shù)t),則pi屬于安全樣本;如果k/t≤k'<k,則pi屬于邊界樣本;如果k'=k(適當選取參數(shù)t),則pi屬于噪聲;其中,邊界類樣本記為 p't,t=1,2,…,dnum。
步驟 3 設(shè)置采樣倍率 Ut,t=1,2,…,dnum。
步驟4 訓練樣本的不平衡率rIR設(shè)置為m種情況,確定m種情況下需要增加的少數(shù)類樣本的個數(shù)。設(shè)置采樣倍率,邊界樣本p't與其近鄰插值合成 st個新增的少數(shù)類樣本。cj=p't+rj×dj,t=1,2,…,dnum,j=1,2,…,st,其中 s1+s2+…+sdnum為某一平衡率下增加的少數(shù)類樣本的個數(shù),rj為0到1之間的隨機數(shù),dj為p't與其近鄰的歐式距離。
步驟5 新增的少數(shù)類樣本分別與原始訓練樣本合并,構(gòu)成新訓練樣本 T'1,T'2,…,T'm,m 個新訓練樣本與支持向量機構(gòu)成m個基分類器。
步驟6 輸入測試樣本到m個基分類器中,剔除具有錯誤分類傾向的分類器,利用剩余的分類器進行投票分類。
實驗采取了5折交叉驗證法,運行30次,取其均值。仿真軟件為Matlab R2018a,實驗環(huán)境為操作系統(tǒng)Windows10 64 bit,處理器為Intel(R)Core(TM)i5-7200U CPU@2.50GHz 2.71GH,內(nèi)存為8GB。利用支持向量機(SVM)[12-13]作為分類器,徑向基核選取的核寬為0.8[14]。
實驗數(shù)據(jù)來源于UCI數(shù)據(jù)集(https://archive.ics.uci.edu/ml/index.html) 和 KEEL數(shù)據(jù)集(http://sci2s.ugr.es/keel/study.php?Cod=24),其中選取了不平衡率不相同的10組數(shù)據(jù)集(表1),并且數(shù)據(jù)歸一化到[0,1]進行預(yù)處理。
在本文的仿真實驗中,新算法步驟5的m取11,分別設(shè)置不平衡率 rIR為 0.5,0.6,…,1.4,1.5 等11種情況。利用這11個數(shù)據(jù)集分別訓練得到11個分類器,剔除3個分類結(jié)果過于傾向于負類樣本和3個分類結(jié)果過于傾向于正類樣本的分類器,利用剩下5個基分類器進行投票。
表1 數(shù)據(jù)集的描述
目前,不平衡數(shù)據(jù)集的分類問題常用的評價標準有查全率、查準率、G-mean值、Fvalue值等等,這些評價標準兼顧了各類樣本的分類精度,能更好地評價不平衡數(shù)據(jù)集的整體性能。
表2給出了混淆矩陣,它是常用的一種評價分類性能的方法。表2中TP、TN分別表示正確分類的少數(shù)類和多數(shù)類樣本個數(shù)。FP、FN分別表示錯誤分類的少數(shù)類和多數(shù)類樣本個數(shù)。
表2 混淆矩陣的描述
查全率rTP、rTN及查準率公式如下:
綜合查全率和查準率的F值公式如下:
G-mean值公式如下:
圖 2 給出了 SMOTE、B-SMOTE、RB-SMOTE、11個集成、5個集成等5種方法的G-mean值比較。
圖2 各種算法的G-mean值比較
從G-mean值的角度看,RB-SMOTE結(jié)合集成學習的算法優(yōu)于單一的RB-SMOTE算法,5個集成學習的算法略優(yōu)于11個集成學習的算法,如圖2。
表 3、表 4分別給出了 SMOTE、B-SMOTE、RB-SMOTE、11個集成、5個集成等5種算法的rTP值與Fvalue值比較。表中顯示,11集成與5集成不論是rTP還是Fvalue值都優(yōu)于其他算法。
表3 各種算法的rTP值比較
表4 各種算法的Fvalue值比較
本文提出了一種基于SMOTE的集成學習算法。B-SMOTE算法是在SMOTE算法的基礎(chǔ)上建立起來的,RB-SMOTE算法精細化了B-SMOTE算法,新算法是把RB-SMOTE算法結(jié)合了的集成學習算法,分別設(shè)置11個與5個平衡率不同的數(shù)據(jù)集,并投票獲得分類結(jié)果。新算法結(jié)合了RB-SMOTE方法與集成學習方法的優(yōu)勢,使得新分類器穩(wěn)定性更強。仿真實驗表明基于SMOTE的集成學習分類器比 SMOTE、B-SMOTE和RB-SMOTE整體上更優(yōu)。