李 斌,龔曉峰
(四川大學(xué)電氣工程學(xué)院,四川 成都 610065)
數(shù)據(jù)不平衡,即其中一類樣本的數(shù)目遠(yuǎn)遠(yuǎn)小于另一類,而往往少數(shù)類樣本會(huì)蘊(yùn)藏更有價(jià)值的信息,因此具有更高的錯(cuò)分代價(jià)。不平衡分類問(wèn)題廣泛存在于社會(huì)生產(chǎn)中,如財(cái)務(wù)欺詐[1],腫瘤識(shí)別[2],軟件漏洞查找[3]。除了數(shù)據(jù)樣本量的差別,不平衡數(shù)據(jù)經(jīng)常存在特征空間重疊,樣本分布不明顯等問(wèn)題,影響分類結(jié)果。
目前的研究主要從數(shù)據(jù)重采樣和改進(jìn)分類算法兩方面解決問(wèn)題。在數(shù)據(jù)處理層面,主要分為欠采樣和過(guò)采樣。Chawla等人[4]提出的 SMOTE算法通過(guò)分析少數(shù)類樣本特征空間,生成與少數(shù)類樣本相似的樣本來(lái)使數(shù)據(jù)集平衡。由于SMOTE算法在合成少數(shù)類樣本的隨機(jī)性過(guò)大問(wèn)題,Torres提出了SMOTE-D[5]。針對(duì)欠采樣容易造成多數(shù)類樣本丟失的缺點(diǎn),學(xué)者先后提出了鄰域清理法[6],基于聚類的欠采樣方法[7]。
分類算法主要根據(jù)傳統(tǒng)分類算法對(duì)不平衡數(shù)據(jù)的缺陷進(jìn)行相應(yīng)的改進(jìn),如單類學(xué)習(xí)中的單類支持向量機(jī)[8],引入敏感因子的代價(jià)敏感決策樹(shù)[9]。集成學(xué)習(xí)是解決不平衡問(wèn)題的常用算法,通過(guò)訓(xùn)練多個(gè)不同的基分類器,并將其分類結(jié)果按一定方式集成,從而提升單個(gè)分類器的性能[10]。集成學(xué)習(xí)算法分為Bagging和Boosting,常見(jiàn)的Boosting算法如XGBoost,Adaboost,GBDT[11],常見(jiàn)的Bagging算法如隨機(jī)森林[12]。學(xué)者將數(shù)據(jù)采樣技術(shù)與集成學(xué)習(xí)結(jié)合,相繼提出了SMOTEBoost[13],RUSBoost[14],RHSBoost[15]去處理不平衡問(wèn)題。
文獻(xiàn)[16]提出了結(jié)合隨機(jī)子空間和SMTOTE過(guò)采樣技術(shù)的AdaBoostRs來(lái)增加分類樣本的多樣性和降低數(shù)據(jù)維度;文獻(xiàn)[17]借鑒了Focal loss的基本思想提出了根據(jù)基分類器預(yù)測(cè)結(jié)果直接優(yōu)化權(quán)重更新策略的FocalBoost。以上所列算法雖然取得了良好的識(shí)別效果,但是在某些極端條件下,如少數(shù)類樣本極端少和分布不連續(xù),很難反映數(shù)據(jù)真實(shí)的分布特性,造成算法分類誤差較大;在處理高維特征數(shù)據(jù)時(shí)很難學(xué)習(xí)到潛在的最優(yōu)特征表達(dá),具有一定的局限性。
針對(duì)上述問(wèn)題,本文在結(jié)合了集成學(xué)習(xí)和特征學(xué)習(xí)思想的基礎(chǔ)上,提出了一種新的不平衡分類算法Bagging-RUSBoost。該算法對(duì)經(jīng)典RUSBoost模型的樣本權(quán)重更新方式進(jìn)行了改進(jìn),提高少數(shù)類樣本的錯(cuò)分代價(jià);引入了散度自編碼器進(jìn)行隱含特征提取,將高維特征進(jìn)行降維處理,使兩類特征差異最大化,提高模型的特征學(xué)習(xí)能力;采用Bagging對(duì)RUSBoost子模型進(jìn)行了加權(quán)集成,解決了單分類器泛化能力差的問(wèn)題。實(shí)驗(yàn)結(jié)果證明相較于其它集成領(lǐng)域的模型,本文算法有效提高了精度,在面對(duì)高維的非平衡樣本時(shí)具有更強(qiáng)的魯棒性。
RUSBoost模型是在AdaBoost理論基礎(chǔ)上融入隨機(jī)欠采樣技術(shù)的不平衡數(shù)據(jù)分類模型,是由多個(gè)弱分類器組合為強(qiáng)分類器的算法。但是在面對(duì)極端不平衡數(shù)據(jù)時(shí),仍存在一些不足和改進(jìn)的地方。主要分為兩點(diǎn):在權(quán)重更新時(shí),所有樣本錯(cuò)分的權(quán)值變化是相同的,這樣容易造成不公平的權(quán)值分配,在兩類樣本相差懸殊時(shí),少數(shù)類應(yīng)當(dāng)具有更高的錯(cuò)分代價(jià);在基分類器訓(xùn)練階段,樣本權(quán)重變化主要依賴于上一輪訓(xùn)練的結(jié)果,然而這樣的權(quán)值分配方式過(guò)于片面,例如前t次迭代某一樣本x全部分類正確,樣本y全部分類錯(cuò)誤,第t+1次x,y均分類錯(cuò)誤,那么其權(quán)值是變化相同的,這樣是不公平的,y理應(yīng)獲得更高的權(quán)值分配,參考前t次的分類結(jié)果進(jìn)行權(quán)值更新更為客觀,使樣本訓(xùn)練更為均衡。
設(shè)訓(xùn)練的不平衡數(shù)據(jù)集S為{(x1,y1),(x2,y2),…(xm,ym)},其中xi表示樣本的特征向量,yi∈{-1,1}表示樣本標(biāo)簽,樣本權(quán)值分布為Dt={w1,w2,…wm}。t表示迭代次數(shù),ht(xi)表示弱分類器。
2)Fort=1,2,…T
a.使用隨機(jī)欠采樣技術(shù)創(chuàng)建臨時(shí)的訓(xùn)練集St,并產(chǎn)生其對(duì)應(yīng)的權(quán)值分布Dt
b.將生成的訓(xùn)練集St,去訓(xùn)練第t次迭代生成的弱分類器ht
c.返回預(yù)測(cè)模型ht
d.計(jì)算第t次訓(xùn)練的分類錯(cuò)誤率εt,εt為在訓(xùn)練集St所有樣本構(gòu)成的分布Λt下預(yù)測(cè)錯(cuò)誤的概率之和,I為弱分類器的概率輸出。如果εt>0.5,則返回b步驟重新訓(xùn)練弱分類器
(1)
e.計(jì)算樣本的權(quán)值更新參數(shù)αt,即弱分類器的權(quán)重
(2)
f.更新樣本權(quán)值,Dt+1(i)表示第i個(gè)樣本在第t+1輪訓(xùn)練的權(quán)值,原始算法為
(3)
Zt表示對(duì)所有樣本權(quán)重的歸一化函數(shù)。
針對(duì)原更新方式的不足,本文提出了一種新的更新模式。原始算法中樣本權(quán)重更新只依賴于上一輪的訓(xùn)練結(jié)果,本算法改為以加權(quán)歷史迭代結(jié)果對(duì)樣本權(quán)重進(jìn)行更新。樣本i在前t次的迭代,即前t個(gè)弱分類器訓(xùn)練的中加權(quán)分類正確率βt
(4)
設(shè)λ為敏感因子,對(duì)少數(shù)類作特殊標(biāo)記,提高每次迭代時(shí)少數(shù)類樣本的錯(cuò)分代價(jià),使其在下次更新時(shí)具有更高的選中率。一般取[0.1,0.2]
(5)
則第t+1次的樣本權(quán)值為
(6)
歸一化因子公式如下
(7)
3) 輸出的T個(gè)弱分類器組合模型RUSBoost
(8)
最終算法會(huì)以sign[HT(x)]輸出樣本所屬類別。如果sign[HT(x)]>0,則輸出1,反之則輸出-1。
樣本不平衡問(wèn)題,除了樣本數(shù)量的失衡,往往伴隨著特征空間重疊、樣本特征不明顯等問(wèn)題,會(huì)導(dǎo)致數(shù)據(jù)特征屬性分布的失衡,尤其在遭遇高維不平衡特征時(shí),其少數(shù)類樣本分布更加稀疏,關(guān)鍵的樣本特征很難得到表達(dá),因此容易導(dǎo)致分類器的性能降低,甚至造成維度災(zāi)難等情況。
針對(duì)以上情況,本文從特征學(xué)習(xí)角度出發(fā),提出了一種基于自編碼器的特征提取方法, 在自編碼器架構(gòu)的基礎(chǔ)上,在其瓶頸層,引入一層KL散度激勵(lì)函數(shù),和重構(gòu)損失函數(shù)構(gòu)成了雙目標(biāo)訓(xùn)練的模型,結(jié)構(gòu)圖如下:
圖1 散度自編碼器的結(jié)構(gòu)
重構(gòu)損失采用交叉熵?fù)p失函數(shù)來(lái)評(píng)價(jià)重構(gòu)特征相對(duì)于原始特征的損失,KL散度激勵(lì)函數(shù)用于將瓶頸層的壓縮特征差異最大化。
編碼階段為對(duì)原始特征進(jìn)行逐層抽象的過(guò)程,x為輸入的原始特征
z=fθ(x)=σ(wx+b)
(9)
z為隱含層的抽象特征,θ={w,b}分別為編碼層權(quán)值參數(shù)和偏置參數(shù),σ為非線性激活函數(shù),一般采用Sigmoid函數(shù)。
(10)
輸入到瓶頸層的特征,會(huì)進(jìn)一步降維。輸入自編碼器的多數(shù)類樣本數(shù)目為m1,少數(shù)類為n1,因?yàn)闃颖臼遣黄胶獾?,在瓶頸層會(huì)在多數(shù)類樣本中抽樣,生成m1/n1個(gè)平衡的樣本矩陣。zM和zN分別代表多數(shù)類樣本和少數(shù)類樣本,在瓶頸層迭代m1/n1次后結(jié)束。KL散度本質(zhì)是對(duì)兩類數(shù)據(jù)分布差異的評(píng)估,在KL散度的激勵(lì)下,模型同時(shí)學(xué)習(xí)兩類樣本的特征,兩類特征會(huì)朝著樣本差異最大化的方向訓(xùn)練,最終生成分布差異更加鮮明的抽象特征,公式如式(11)
(11)
解碼階段即反編碼階段,將瓶頸層的抽象特征z重構(gòu)為原始輸入
y=gθ′(z)=σ′(w′z+b′)
(12)
y為輸出特征,θ′={w′,b′}為解碼層的權(quán)值參數(shù)和偏置參數(shù),σ為非線性激活函數(shù)。
重構(gòu)損失函數(shù)即交叉熵?fù)p失,并采用了L2正則化作為懲罰項(xiàng),防止過(guò)擬合。
如下
(13)
最小化交叉損失熵來(lái)調(diào)整網(wǎng)絡(luò)內(nèi)部的權(quán)值參數(shù)θ,θ′,即優(yōu)化目標(biāo)為
(14)
采用隨機(jī)梯度下降的方式對(duì)自編碼器參數(shù)進(jìn)行優(yōu)化,如下式
(15)
(16)
Bagging作為一種典型的集成學(xué)習(xí)算法,在原始樣本中隨機(jī)采樣,對(duì)多個(gè)獨(dú)立的弱分類器進(jìn)行平行訓(xùn)練,然后利用子學(xué)習(xí)器的投票機(jī)制選出最終的結(jié)果。
結(jié)合2.2節(jié)的特征提取方法,將RUSBoost作為基分類器,利用Bagging思想對(duì)分類器進(jìn)行集成。散度自編碼器的特征在瓶頸層提取后,作為基分類器的訓(xùn)練集。
多數(shù)類樣本數(shù)量為m,少數(shù)類樣本數(shù)量為n,基分類器數(shù)目為k。在自編碼特征訓(xùn)練過(guò)程中,盡可能保留少數(shù)類的特征,避免自編碼器模型偏向于多數(shù)類。少數(shù)類樣本抽樣數(shù)目固定為n,多數(shù)類樣本每次抽樣2*m/k,生成數(shù)據(jù)集輸入到散度自編碼器訓(xùn)練。這樣最大限度保證了自編碼器能充分學(xué)習(xí)到少數(shù)類樣本的特性的同時(shí),也盡量保留了多數(shù)類的特征信息。這樣反復(fù)有放回抽取k次,分別輸入k個(gè)基分類器進(jìn)行訓(xùn)練。
Bagging算法一般采用簡(jiǎn)單多數(shù)投票策略,然而沒(méi)有考慮到各個(gè)基分類器分類性能的差異,不平衡樣本很容易造成在Bagging隨機(jī)抽樣的過(guò)程中數(shù)據(jù)集出現(xiàn)一定的差異,因此需要綜合各分類器的性能進(jìn)行加權(quán)處理。
本文以多數(shù)類和少數(shù)類召回率作為分類器性能的評(píng)價(jià)指標(biāo),召回率高的分類器即給與較高的權(quán)值,最后綜合基分類器給出加權(quán)投票結(jié)果。相對(duì)于原始投票法的硬閾值組合,最終輸出了一個(gè)加權(quán)投票概率,降低了單一分類器隨機(jī)性的影響。
ri表示單個(gè)基分類器的召回率,取兩類召回率的均值,TPR和TNR分別表示少數(shù)類和多數(shù)類的召回率
(17)
即每個(gè)模型的分配權(quán)值ηi為
(18)
RUSBoost子分類器Hi(x)∈{-1,1},1代表少數(shù)類樣本,-1代表多數(shù)類樣本,Bagging加權(quán)組合后的分類器模型為
(19)
最終的分類結(jié)果Result為
(20)
δ為分類閾值,大于閾值會(huì)被歸類到少數(shù)類。δ并不是一個(gè)定值,取值范圍一般在(-1,1),可以通過(guò)交叉驗(yàn)證對(duì)閾值進(jìn)行微調(diào)以達(dá)到較好的處理效果。關(guān)于δ取值的進(jìn)一步討論在第3章闡述。算法流程如圖2所示。
圖2 Bagging-RUSBoost分類算法流程圖
為了驗(yàn)證本文所提算法的先進(jìn)性,本文選取了UCI數(shù)據(jù)集和Fashion_M(jìn)NIST進(jìn)行實(shí)驗(yàn),選取了XGBoost,RUSBoost,AdaBoostRs[16](結(jié)合隨機(jī)子空間和SMOTE過(guò)采樣),F(xiàn)ocalBoost[17](利用Focalloss優(yōu)化權(quán)值更新)四種模型作為對(duì)照。對(duì)召回率、F1score、G-mean、Auc等性能指標(biāo)進(jìn)行了比較,并討論了閾值對(duì)模型的影響。
本文選取了不平衡分類常用的幾種評(píng)價(jià)指標(biāo),混淆矩陣如表1,召回率為樣本正確被分類的比例,TPR和TNR分別表示少數(shù)類和多數(shù)類召回率
表1 淆矩陣
(21)
TPV和TNV分別表示陽(yáng)性精確率和陰性精確率
(22)
F1score是衡量精確率和召回率的分類指標(biāo)
(23)
G-mean是衡量分類器識(shí)別多數(shù)類和少數(shù)類精度的幾何平均值
(24)
Auc是其對(duì)應(yīng)的Roc曲線的面積,能很好度量分類器在面對(duì)不平衡數(shù)據(jù)的分類性能。
Bioassay是UCI的一個(gè)不平衡數(shù)據(jù)集,包含21個(gè)生物測(cè)定數(shù)據(jù)集,本文選取其中的AID362red,AID1608red兩個(gè)特征維度較高的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),其具體信息如下:
表2 UCI數(shù)據(jù)集信息
在處理非圖片數(shù)據(jù)時(shí),自編碼器采用全連接即可,在瓶頸層提取到最優(yōu)的特征表達(dá)去訓(xùn)練RUSBoost分類器,這里采用十折交叉驗(yàn)證去得到最優(yōu)的性能指標(biāo),閾值選取0.1,基分類器數(shù)目為10,單個(gè)分類器的敏感因子取0.2,實(shí)驗(yàn)結(jié)果如表3和表4。
表3 AID362red的五種性能指標(biāo)對(duì)比結(jié)果
表4 AID1608red的五種性能指標(biāo)對(duì)比結(jié)果
由表3和表4可知,新模型的多數(shù)類召回率與AdaBoostRS和FocalBoost相差不大,而在不平衡分類中也更關(guān)注少數(shù)類的分類指標(biāo)。新模型在少數(shù)類召回率更有優(yōu)勢(shì),分別達(dá)到0.833和0.846。其余三種指標(biāo)也優(yōu)于對(duì)比模型,AUC分別達(dá)到了0.886和0.917,尤其在與單一RUSBoost模型的比較占據(jù)了全面優(yōu)勢(shì),證明本模型在不平衡數(shù)據(jù)下是有明顯進(jìn)步的,改進(jìn)的加權(quán)Bagging是有效的。
新模型在面對(duì)UCI的數(shù)據(jù)集時(shí)表現(xiàn)出了良好的分類效果,為了進(jìn)一步證明在圖片這種更高維的數(shù)據(jù)時(shí),同樣能保持性能,本文選取了Fashion_M(jìn)NIST商品數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。Fashion_M(jìn)NIST有十類商品標(biāo)簽,相對(duì)于經(jīng)典的MNIST手寫(xiě)數(shù)據(jù)集,F(xiàn)ashion_M(jìn)NIST的商品圖像訓(xùn)練更具挑戰(zhàn)性,分類難度也更大。為了全面證明模型的泛化能力,選取了兩種實(shí)驗(yàn)方案,為一對(duì)一和一對(duì)多。一對(duì)一為隨機(jī)選取兩類商品訓(xùn)練,多數(shù)類樣本量固定為3000,少數(shù)類分別選取30,25,20,15,10,5進(jìn)行訓(xùn)練,實(shí)驗(yàn)選取shirt和coat作為兩類樣本 ;一對(duì)多為隨機(jī)選取一類商品為少數(shù)類,剩余九類商品為多數(shù)類,樣本數(shù)量與一對(duì)一相同,選取dress作為少數(shù)類。
圖3 散度自編碼器兩種損失函數(shù)的變化
圖4 兩類訓(xùn)練集下算法的性能對(duì)比圖
在處理28×28的圖片數(shù)據(jù)時(shí),自編碼器采用卷積結(jié)構(gòu),選取三層編碼層和三層解碼層,瓶頸層采用全連接層輸出100維數(shù)據(jù)特征。28×28維的原始輸入圖經(jīng)過(guò)編碼層的逐層抽象,會(huì)先轉(zhuǎn)換為1×1000的特征向量,在經(jīng)過(guò)Relu操作和進(jìn)一步降維,最終在瓶頸層輸出100維隱含特征表達(dá)。
自編碼的損失函數(shù)變化如圖3,可知重構(gòu)函數(shù)隨著迭代進(jìn)行逐步趨于0,而KL散度隨迭代次數(shù)增加逐步增大而穩(wěn)定,兩類特征差異隨訓(xùn)練是增大的,最終得到隱含層的兩類特征,是分布差異明顯的特征表達(dá),更有利于分類器的訓(xùn)練。
五種算法的表現(xiàn)如圖4,圖5,訓(xùn)練選取的多數(shù)類樣本固定為3000,橫坐標(biāo)代表訓(xùn)練的少數(shù)類樣本數(shù)目。圖4表示的兩類樣本的分類,而圖5代表多類中識(shí)別一類的實(shí)驗(yàn)結(jié)果。五張子圖分別對(duì)應(yīng)了多數(shù)類召回率,少數(shù)類召回率,F(xiàn)1score,G-mean,Auc。由圖4和圖5可知,五種分類器的多數(shù)類的召回率比較穩(wěn)定,且趨近于1。其余指標(biāo)下,對(duì)照實(shí)驗(yàn)的四組算法,XGBoost的分類性能相對(duì)要低一些,其它三種差異并不明顯,互有優(yōu)劣,在某些樣本集下略微重合。整體的分類效果隨著少數(shù)類樣本數(shù)目的降低而呈現(xiàn)下降趨勢(shì)。
而本文所提模型在所有樣本集下依然保持優(yōu)異的分類性能,尤其在少數(shù)類樣本減少到5時(shí)仍有0.5以上的少數(shù)類召回率,各項(xiàng)指標(biāo)優(yōu)勢(shì)更加明顯,證明模型在樣本極端少且高維的情況下,具有優(yōu)秀的特征學(xué)習(xí)能力,能學(xué)習(xí)到樣本的隱含特征表達(dá)。圖5實(shí)際上驗(yàn)證了樣本在復(fù)雜的噪聲背景下提取關(guān)鍵字的能力,雖然整體的召回率相較于圖4略有下降,但仍然保持較高的精度,在少數(shù)類樣本為10時(shí),仍能保持0.6以上的召回率和接近0.8的AUC,證明了模型在面對(duì)不同的復(fù)雜數(shù)據(jù)集時(shí),具有很強(qiáng)的泛化能力和較高的魯棒性。
圖5 多類訓(xùn)練集下算法的性能對(duì)比圖
以上實(shí)驗(yàn)可以充分證明Bagging-RUSBoost優(yōu)于其它模型,本節(jié)對(duì)算法本身進(jìn)行更深一步的探究。
閾值δ的取值對(duì)Bagging組合模型是有影響的,因此閾值參數(shù)的選取極為重要。當(dāng)基分類器數(shù)目為10,選取UCI數(shù)據(jù)集對(duì)閾值的變化進(jìn)行討論,如圖6。
圖6 模型在不同閾值下的召回率表現(xiàn)
基分類器的輸出為{-1,1},因此閾值的相對(duì)取值范圍在[-1,1],通過(guò)多次實(shí)驗(yàn)可以發(fā)現(xiàn),當(dāng)閾值過(guò)大時(shí),少數(shù)類的召回率會(huì)急劇下降;而閾值過(guò)低時(shí),雖然少數(shù)類的召回率維持在較高水準(zhǔn),但是多數(shù)類性能卻會(huì)下降,閾值維持在[-0.1,0.1]之間時(shí)少數(shù)類和多數(shù)類召回率都相對(duì)良好,因此在選取閾值時(shí)要盡量保證兩類的召回率處于相對(duì)平衡的狀態(tài)。
Bagging-RUSBoost的時(shí)間復(fù)雜度為o(kn),k代表基分類器的數(shù)目,o(n)為單個(gè)基分類器的時(shí)間復(fù)雜度。由于單個(gè)分類器的訓(xùn)練樣本是隨機(jī)抽樣產(chǎn)生的,并在散度自編碼器進(jìn)行了特征降維,因此相對(duì)于傳統(tǒng)的強(qiáng)分類器,樣本規(guī)模和特征復(fù)雜度是降低的,因此分類器有較為良好的時(shí)間復(fù)雜度特性。在實(shí)際實(shí)驗(yàn)過(guò)程中,基分類器的數(shù)目要選取適當(dāng),數(shù)目過(guò)多往往會(huì)導(dǎo)致模型過(guò)擬合,準(zhǔn)確率下降,并且增加了算法的復(fù)雜度。
本文結(jié)合特征層面和算法層面提出了一種基于Bagging思想的RUSBoost組合模型,并得出以下結(jié)論:
1) 針對(duì)數(shù)據(jù)分布極端不均衡的情況,本文在RUSBoost模型的基礎(chǔ)上,結(jié)合了樣本權(quán)重更新的歷史經(jīng)驗(yàn),提高少數(shù)類的錯(cuò)分代價(jià),在UCI兩組訓(xùn)練集少數(shù)類召回率達(dá)到了0.833和0.846,優(yōu)于經(jīng)典RUSBoost算法,降低了單分類器隨機(jī)性的影響。
2) 采用散度自編碼器處理高維數(shù)據(jù),瓶頸層增加的KL散度損失函數(shù)對(duì)兩類特征進(jìn)行了差異區(qū)分,使特征表達(dá)更加鮮明,圖4和圖5當(dāng)少數(shù)類減少到5時(shí)仍能保持0.5左右的召回率,證明了模型處理高維不平衡樣本的優(yōu)越性。
3) 通過(guò)Bagging組合對(duì)基分類器進(jìn)行了加權(quán)投票處理,當(dāng)分類閾值維持在[-0.1,0.1]時(shí)兩類召回率達(dá)到相對(duì)平衡。模型在多個(gè)數(shù)據(jù)集均保持了較好的性能,具有較強(qiáng)的泛化能力,為不平衡數(shù)據(jù)分類提供了一種新思路。