摘 要:針對不平衡數(shù)據(jù)集中存在的噪聲以及類內(nèi)類間不平衡問題,提出了基于密度峰值聚類過采樣算法。首先對多數(shù)類樣本進(jìn)行預(yù)處理,篩選噪聲樣本并刪除;其次,對所有少數(shù)類樣本采用密度峰值聚類,剔除噪聲點;再次,根據(jù)聚類后每個簇不同的稀疏度分配采樣權(quán)重,并計算每個簇需要合成的新樣本數(shù)目;最后在每個簇內(nèi)進(jìn)行SMOTE過采樣合成新樣本。將提出的過采樣算法與5種常用過采樣算法對比,并分別與5種基分類器相結(jié)合,在10個不平衡數(shù)據(jù)集上進(jìn)行對比實驗。實驗結(jié)果表明:本文方法的F1、G-mean、AUC分別最低可提升1.21%、0.94%、5.14%,最高可提升15.90%、14.99%、11.26%;證明該方法能夠減少樣本重疊,有效避免不平衡數(shù)據(jù)集中噪聲的產(chǎn)生,提升了分類精度。
關(guān)鍵詞:不平衡數(shù)據(jù);分類;過采樣;密度峰值聚類;稀疏度
DOI:10.15938/j.jhust.2024.06.005
中圖分類號: TP181
文獻(xiàn)標(biāo)志碼: A
文章編號: 1007-2683(2024)06-0045-16
DPC-SMOTE Over-sampling Algorithm for Imbalanced Data Classification
LIU Zhihan, ZHANG Zhonglin, ZHAO Lei
(College of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract:An oversampling algorithm based on density peak clustering is proposed to solve the problem of noise and imbalance among classes in imbalanced data sets. Firstly, most of the samples are preprocessed, and the noise samples are screened and deleted. Secondly, the algorithm adopts density peak clustering for all minority samples and removes noise points. Then the sampling weights are assigned according to the different sparsity of each cluster, and the number of new samples to be synthesized for each cluster is calculated. SMOTE oversampling is performed in each cluster to synthesize new samples. The proposed oversampling algorithm is compared with five common oversampling algorithms. It is combined with five base classifiers respectively, and comparison experiments are carried out on six imbalanced data sets. The experimental results show that F1, G-mean and AUC of this method can increase by 1.21%, 0.94% and 5.14% at least. The maximum increase can be 15.90%, 14.99%, 11.26%. It is proved that this method can reduce sample overlap, effectively avoid noise generation in imbalanced data sets, and improve classification accuracy.
Keywords:imbalanced data; classification; oversampling; density peak clustering; sparsity
收稿日期: 2023-06-28
基金項目: 國家自然科學(xué)基金(61662043);甘肅省自然科學(xué)基金(21JR7RA288).
作者簡介:
劉志函(1998—),女,碩士研究生;
趙 磊(1997—),男,碩士研究生.
通信作者:
張忠林(1965—),男,博士,教授,E-mail:zhangzl@mail.lzjtu.edu.cn.
0 引 言
分類學(xué)習(xí)是機(jī)器學(xué)習(xí)的重要研究方向之一,分類可以通過使用數(shù)據(jù)來建立一個具有很強(qiáng)泛化能力的分類模型,從中提取出有用的信息,它是一種具有較強(qiáng)推廣性的分類模型,并從海量數(shù)據(jù)中抽取有用信息的關(guān)鍵技術(shù),因此受到了人們的廣泛關(guān)注。傳統(tǒng)的分類模型,如決策樹、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等,在解決分類問題時,假設(shè)樣本分布在本質(zhì)上是平衡的,但在實際問題上,為了更高的精確率,算法更容易傾向于識別多數(shù)類,少數(shù)類容易被誤分,但更多的情況,識別少數(shù)類更為重要,錯分代價更高。在近年各類實際問題中,不平衡問題出現(xiàn)在各個領(lǐng)域,如醫(yī)學(xué)診斷[1]、網(wǎng)絡(luò)入侵檢測[2]、破產(chǎn)預(yù)測[3]、軟件缺陷預(yù)測[4]、客戶行為分析[5]、文本分類[6]等。
目前,針對非均衡數(shù)據(jù)的研究主要集中在數(shù)據(jù)預(yù)處理、特征和算法3個層面,以保證分類器在多類和少類兩類情況下都具有較高的分類精度。數(shù)據(jù)預(yù)處理層面的主要思想是改變原始數(shù)據(jù)集的分布,增加少數(shù)類樣本或減少多數(shù)類樣本,以降低或者消除不平衡現(xiàn)象,使非平衡數(shù)據(jù)集趨于平衡。特征選擇的目的是根據(jù)某種規(guī)則從原始數(shù)據(jù)集中選擇出代表性較優(yōu)的特征子集,以提高分類器的分類精度。算法層面通過結(jié)合非平衡數(shù)據(jù)的特征,改進(jìn)原有算法或者設(shè)計更有效的新算法,以提高對少數(shù)類數(shù)據(jù)的識別。
在數(shù)據(jù)預(yù)處理層面,最具代表性方法是數(shù)據(jù)重采樣[7]。根據(jù)采樣方式不同,重采樣分為兩種類型:過采樣和欠采樣[8]。在兩種采樣方法中,過采樣比其他數(shù)據(jù)級方法使用得更頻繁[9-11],因為欠采樣在刪除樣本的過程中可能會損失部分重要信息,降低了分類器的泛化性能,過采樣則是增加少數(shù)類數(shù)量來提高分類性能。此外,Batista等[12]通過ROC曲線下面積(area under curve,AUC)的測量證明,過采樣通常比欠采樣表現(xiàn)更好。最簡單的過采樣方法通過隨機(jī)復(fù)制使兩類數(shù)據(jù)趨于平衡。但由于反復(fù)復(fù)制少數(shù)類樣本而增加了分類算法過擬合的可能[13]。為此,Chawla等[14]提出了少類樣本合成過采樣技術(shù)(synthetic minority oversampling technique, SMOTE),SMOTE通過隨機(jī)選擇同類近鄰的樣本進(jìn)行插值,生成無重復(fù)的新的少數(shù)類樣本,能在一定程度上克服過擬合問題,但其可能會出現(xiàn)過泛化、樣本重疊、噪聲等一系列問題。為了解決以上問題,Han等[15]提出了 Borderline-SMOTE 來選擇邊界線附近的少數(shù)類樣本進(jìn)行過采樣,但邊界樣本的投票選擇策略使大量的高密度少數(shù)類樣本參與過采樣,在某些數(shù)據(jù)集中極易導(dǎo)致過擬合;Abdi等[16]提出了一種基于馬氏距離的過采樣方法,僅在少數(shù)類密集的區(qū)域中合成樣例,能有效克服樣本重疊問題,但該方法無法保證少數(shù)類的邊界樣本信息;He等[17]提出了一種自適應(yīng)學(xué)習(xí)算法ADASYN,它以權(quán)重分布為標(biāo)準(zhǔn),根據(jù)每個少數(shù)類樣本的學(xué)習(xí)難度自動決定需要合成樣本的數(shù)量,但此算法中邊界區(qū)域中的樣本難以被過采樣,且未對噪聲進(jìn)行處理。Douzas等[18]提出基于 K-means 的 SMOTE 算法,該算法可以有效改善類不平衡問題,但其采樣結(jié)果受K-means聚類效果的影響,易放大少數(shù)類樣本的誤差,降低分類器分類性能。以上方法雖然在某些方面取得了較好的分類效果,但是其分類精度并不高,在樣本空間位置分布,以及噪聲樣本處理方面都存在不足。
對于不平衡數(shù)據(jù)分類問題,特征選擇方法同樣具有重要意義。樣本數(shù)量分布不平衡時,特征的分布同樣會不平衡。賈鶴鳴等[19]將支持向量機(jī)分類與特征選擇同步結(jié)合,并采用智能優(yōu)化算法對參數(shù)進(jìn)行優(yōu)化;Han等[20]采用截斷梯度法選取相關(guān)特征,并有效應(yīng)用于處理在線不平衡數(shù)據(jù); Yin 等[21]提出了兩種針對高維不平衡數(shù)據(jù)的特征選擇方法:拆分法和 Hellinger 距離法。拆分法通過K均值聚類算法將多數(shù)類拆分成多個子類,優(yōu)勢在于計算效率高。Hellinger距離能有效度量分布的差異,且不涉及類別先驗信息,因此對類別偏置不敏感,能有效避免受樣本分布不平衡因素的影響;Song等[22]提出了一種基于互信息的裸骨粒子群優(yōu)化特征選擇算法,并開發(fā)了補(bǔ)充算子和刪除算子,專注于探索潛在的最優(yōu)區(qū)域,提升了搜索能力。
算法層面主要通過設(shè)計適用于不平衡數(shù)據(jù)特征的模型訓(xùn)練算法來解決類別不平衡問題?;谒惴▽用娴姆椒ㄖ饕写鷥r敏感方法、集成學(xué)習(xí)方法和單類學(xué)習(xí)方法。Chung等[23]在CNN的損失函數(shù)中嵌入代價因子,提升經(jīng)典CNN對少數(shù)類樣本的識別精度;Krawczyk 等[24]提出了一種代價敏感決策樹的集成方法,該方法將代價敏感的決策樹與基于隨機(jī)子空間的特征空間劃分結(jié)果相結(jié)合,創(chuàng)建一個能夠提高對少數(shù)類的識別的分類器池;Zhou等[25]提出了一種基于互信息的相關(guān)系數(shù)的特征選擇,具有較好的特征分類能力;Cui等[26]開發(fā)了一種新型的基于聚類的智能集成學(xué)習(xí)算法CIEL(cluster intelligence ensemble learning),采用聚類來提高分類算法的性能并提出動態(tài)加權(quán)概率組合策略;Luca等[27]針對異常檢測中正常數(shù)據(jù)與異常數(shù)據(jù)的極端不平衡問題,采用單類支持向量機(jī)有效實現(xiàn)了異常檢測。
目前,不平衡數(shù)據(jù)的研究取得了快速的進(jìn)展,從算法層面上分類器的改進(jìn)優(yōu)化到數(shù)據(jù)預(yù)處理采樣方法的研究,不平衡數(shù)據(jù)的研究取得了很大的成效。但在采樣方面,傳統(tǒng)采樣算法仍然存在著樣本重疊,過擬合,樣本代表性不足,噪聲干擾等問題。針對以上問題,本文提出一種基于密度峰值聚類[28](density peak clustering,DPC)和稀疏度的過采樣算法。本算法首先對所有少數(shù)類樣本進(jìn)行密度峰值聚類,聚類之后得到大小規(guī)模不同的簇,通過計算各個簇的稀疏度對其分配不同的采樣數(shù)目,根據(jù)分配好的采樣數(shù)目在各個簇內(nèi)采用SMOTE合成新的少數(shù)類樣本,避免了在少數(shù)類樣本集中的區(qū)域合成樣本所造成的過擬合問題,同時還能對少數(shù)類樣本的稀疏性進(jìn)行合理的補(bǔ)充,從而有效地解決了數(shù)據(jù)失衡的問題。
1 相關(guān)算法
1.1 孤立森林算法
孤立森林(isolated forest,iForest)算法是由Liu等[29]提出的一種異常檢測方法,與其他異常檢測算法通過距離、密度等量化指標(biāo)來刻畫樣本間的疏離程度不同,iForest算法通過對樣本點的孤立來檢測異常值。iForest算法采用二叉樹對數(shù)據(jù)進(jìn)行切分,數(shù)據(jù)點在二叉樹中所處的深度反映了該條數(shù)據(jù)的疏離程度。
單棵iTree的訓(xùn)練步驟如下:
步驟1):從訓(xùn)練數(shù)據(jù)中隨機(jī)選擇x個樣本點作為子樣品,放入樹的根節(jié)點;
步驟2):隨機(jī)選擇一個維度,在當(dāng)前節(jié)點數(shù)據(jù)中隨機(jī)產(chǎn)生一個切割點p,切割點產(chǎn)生于當(dāng)前節(jié)點數(shù)據(jù)中最大值與最小之間;
步驟3):以此切割點生成一個超平面,將當(dāng)前的節(jié)點數(shù)據(jù)空間劃分為兩個子空間,樣本中小于該取值的數(shù)據(jù)劃分到左分支,大于等于該取值的數(shù)據(jù)劃分到右分支;
步驟4):重復(fù)步驟2),3),直到數(shù)據(jù)不可再分,二叉樹達(dá)到限定的最大深度。
將生成的t棵iTree構(gòu)成iForest,用樣本x遍歷所有iTree,記遍歷的路徑長度為h(x),計算樣本x最終的異常分值Score(x):
Score(x)=2-E(h(x))C(n)(1)
其中:E(h(x))為數(shù)據(jù)x在多棵iTree的路徑長度的期望;C(n)為數(shù)據(jù)集大小為n的路徑長度h(x)的平均值。C(n)的計算如下:
C(n)=2H(n-1)-2(n-1)n(2)
其中H(n-1)可以用ln(n-1)+ξ表示,ξ是歐拉常數(shù)。當(dāng)h(x)趨近于無窮時,異常得分趨近于0,說明x不是一個孤立點。相反h(x)趨近于0,異常得分趨近于1,x是正常樣本。設(shè)置一個閾值S0,如果該指標(biāo)超過S0,則表示該樣本為異常值樣本,反之,該樣本為正常樣本。
1.2 DPC算法
DPC算法是由 Rodriguez 等提出的一種聚類方法,該算法的基本思路是通過計算樣本點的局部密度并尋找密度峰值點,從而形成類簇。主要有兩個需要計算的量:局部密度和相對距離。
1.2.1 局部密度
DPC算法有兩種方式定義局部密度,對于較大規(guī)模的數(shù)據(jù)集,采用截斷核的計算方式為
ρi=∑i≠jχ(dij-dc)(3)
χ(x)=1,xlt;0
0,x≥0(4)
對于小規(guī)模數(shù)據(jù)集,采用高斯核的計算方式為
ρi=∑i≠jexp-dijdc2(5)
其中:dij為數(shù)據(jù)點i與數(shù)據(jù)點j的歐氏距離;dc為數(shù)據(jù)點i的鄰域截斷距離。
1.2.2 相對距離
相對距離δi指樣本點i與其他密度更高的點之間的最小距離。在計算樣本點i前需要對每個數(shù)據(jù)點的局部密度進(jìn)行排序。
對于密度最高的樣本,相對距離定義為
δi=maxi≠j(dij)(6)
對于其余數(shù)據(jù)點,相對距離定義為
δi=minj:ρjgt;ρi(dij)(7)
由于密度最高的樣本不存在比其密度更高的點,DPC認(rèn)為該點必為類簇中心。具有高δ值和較低ρ值的點往往是離群點或噪聲點,在類簇中心找到后,剩余點被歸屬到具有更高密度的最近鄰點所屬類簇。一般來說,DPC算法具有較好地區(qū)分類簇中心、邊界樣本和離群點的能力。
1.3 SMOTE算法
Chawla等提出SMOTE過采樣方法,該方法的基本思想是對少數(shù)類樣本進(jìn)行分析和模擬,并將人工模擬的新樣本添加到數(shù)據(jù)集中,進(jìn)而使原始數(shù)據(jù)集中的類別不再嚴(yán)重失衡。該算法的模擬過程采用了KNN技術(shù),模擬新生成的樣本過程如下:
1)采用KNN算法,計算每個少數(shù)類樣本的K個近鄰;
2)從K個近鄰中隨機(jī)挑選N個樣本進(jìn)行隨機(jī)線性插值;
3)構(gòu)造新的少數(shù)類樣本;
4)將新樣本與原數(shù)據(jù)合并,產(chǎn)生新的訓(xùn)練集。
圖1和圖2為SMOTE算法合成新樣本的模擬過程。
2 DPC-SMOTE算法
2.1 改進(jìn)的smote算法
SMOTE可以合成需要的樣本數(shù)目,但是會出現(xiàn)泛化,樣本重疊等問題,因此本文提出了一種改進(jìn)的SMOTE算法,其基本思想是:原始少數(shù)類樣本集合經(jīng)過DPC算法聚類后得到n個簇,為了確定每個簇需要合成的樣本數(shù)量,根據(jù)每個簇稀疏度的不同,分配不同的采樣數(shù)目。當(dāng)簇的稀疏度越高時,表示它的密度越小,則合成的樣本數(shù)目越多;反之,則合成的樣本數(shù)目越少。改進(jìn)之后的SMOTE算法步驟如下:
1)計算每個簇的歐氏距離矩陣Dk;
Dk=d11d12…d1n
d21d22…d2n
dn1dn2…dnn(8)
其中Dk為每個少數(shù)類簇Ck的歐式距離矩陣;dij為集群中少數(shù)類樣本xi到xj的歐式距離;n為少數(shù)類樣本個數(shù)。
2)計算每個簇中少數(shù)類樣本的平均距離Average_dis;
Average_dis=∑ni=2dij(dij∈Dk,jlt;i)n2-n(9)
平均距離即為距離矩陣中所有非對角線元素的和與非對角線元素個數(shù)的比值。
3)計算每個簇的密度ρCk;
ρCk=nAverage_disp(10)
密度即為每個簇中少數(shù)類樣本的個數(shù)n與少數(shù)類樣本平均距離的特征數(shù)次冪相比的比值,p為此數(shù)據(jù)集樣本的特征數(shù)。
4)計算每個簇的稀疏度Sparsity;
Sparsity=1ρCk(11)
5)計算所有簇的稀疏度之和Sparsitysum;
Sparsitysum=∑Cnumk=1Sparsity(12)
6)計算每個簇的采樣權(quán)重ωck;
ωck=SparsitySparsitysum(13)
7)計算要合成的樣本總數(shù)N;
N=Nmaj-Nmin(14)
其中:Nmaj為多數(shù)類樣本數(shù)量;Nmin為少數(shù)類樣本數(shù)量。
8)計算每個簇需要合成的樣本數(shù)目Samplesck。
Samplesck=Nωck(15)
2.2 DPC-SMOTE算法
針對SMOTE等傳統(tǒng)過采樣算法存在的一些問題,如:忽略類間不平衡現(xiàn)象、合成的少數(shù)類樣本意外入侵多數(shù)類樣本區(qū)域以及合成高度相似的新樣本等,本文提出了基于密度峰值聚類的少數(shù)類樣本合成過采樣算法(synthetic minority oversampling algorithm based on density peaks clustering,DPC-SMOTE),DPC-SMOTE算法將密度峰值聚類算法和 SMOTE 方法相結(jié)合。 利用密度峰值聚類算法識別出生成人工數(shù)據(jù)最有效的區(qū)域,能夠有效緩解數(shù)據(jù)的類間和類內(nèi)不平衡,并能避免噪聲問題。密度峰值聚類算法和 SMOTE 算法都具有普遍適用性,因而提出的過采樣方法易于實現(xiàn)。DPC-SMOTE算法主要包括以下3個步驟:采用DPC算法對少數(shù)類進(jìn)行聚類、計算每個簇的稀疏度并根據(jù)稀疏度計算采樣權(quán)重并根據(jù)采樣權(quán)重計算需要合成的樣本數(shù)目、采用SMOTE 算法在簇內(nèi)合成新少數(shù)類樣本。
具體流程如下:
1)對少數(shù)類樣本Nmin進(jìn)行DPC聚類,得到簇劃分{C1,C2,…,Cn},并過濾噪聲樣本t1,t2,…,tm;
2)計算剩余少數(shù)類的樣本總數(shù)Nmin1;
Nmin1=Nmin-m(16)
3)根據(jù)公式 (9)(10) (11)(12)計算聚類后每個簇的稀疏度Sparsity并進(jìn)行求和得到Sparsitysum;
4)根據(jù)公式 (13) 計算每個簇的采樣權(quán)重ωck;
5)根據(jù)公式 (14) 計算需要合成的新樣本總數(shù)N;
6)根據(jù)公式 (15) 計算每個簇需要合成的樣本數(shù)目Samplesck;
7)采用SMOTE算法在每個簇內(nèi)根據(jù)Samplesck合成新樣本;
8)將新合成的少數(shù)類樣本與原有的多數(shù)類樣本和少數(shù)類樣本合并,得到均衡的樣本集S。
DPC-SMOTE算法的偽代碼如算法1所示:
算法1 DPC-SMOTE
Input:Nmin(原始少數(shù)類樣本)
N(需要合成的樣本數(shù)目)
knn(最近鄰數(shù))
p(計算密度的指數(shù),默認(rèn)為數(shù)據(jù)集的特征數(shù))
Output:S(過采樣后得到的數(shù)據(jù)集)
//Step 1:對少數(shù)類樣本進(jìn)行聚類,并過濾噪聲樣本。
clusters←DPC(Nmin)
filtered clusters←t1,t2,…,tm
//Step 2:計算每個簇的稀疏度,根據(jù)稀疏度計算采樣權(quán)重,根據(jù)采樣權(quán)重計算需要合成的樣本數(shù)目。
for f ∈ filtered clusters do
average distance(f) ←mean(euclidean distance(f))
density factor(f) ←minority count(f)average distance(f)p
sparsity factor(f) ←1density factor(f)
end
sparsity sum←∑f∈flitered clusterssparsity factor(f)
sampling weight←sparsity factor(f)sparsity sum
generated samples←‖Nsampling weight(f)‖
//Step 3:采用SMOTE 合成新少數(shù)類樣本。
S←generated samples∪
{SMOTE(f,numberofsamples,knn)}
Return S
DPC-SMOTE算法流程如圖3所示。
DPC-SMOTE算法的第一步是采用密度峰值聚類算法對少數(shù)類樣本進(jìn)行聚類。密度峰值聚類算法通過對數(shù)據(jù)進(jìn)行降維,構(gòu)建出數(shù)據(jù)點之間的層次關(guān)系,然后選擇密度高且與其他密度更大的數(shù)據(jù)點之間距離較遠(yuǎn)的數(shù)據(jù)點作為聚類中心,將局部密度而距離較大的點歸為異常點。對于其它數(shù)據(jù)點,算法將其分配到最近鄰且密度比它大的數(shù)據(jù)點所在的簇。
經(jīng)過第一步的密度峰值聚類算法,輸入數(shù)據(jù)被劃分到各個簇中,第二步是要確定這些簇中需要合成的新樣本數(shù)目。為了緩解類內(nèi)不平衡,需要為每個簇賦予權(quán)重,使得少數(shù)類分布稀疏的簇可以分配到更多的合成樣本。每個簇中少數(shù)類的稀疏度由密度的倒數(shù)計算得出,因此首先求出少數(shù)類簇的歐式距離矩陣,根據(jù)歐式距離矩陣計算出每個簇中少數(shù)類樣本的平均距離,密度則是每個簇中少數(shù)類樣本的個數(shù)與少數(shù)類樣本平均距離的特征數(shù)次冪相比的比值。根據(jù)密度計算出每個目標(biāo)簇中少數(shù)類的稀疏度之后,將其與所有選中的目標(biāo)簇的稀疏度總和相比的比值就是為每個簇賦予的權(quán)重。將每個簇的權(quán)重與需要生成的合成樣本總數(shù)相乘便可以確定每個目標(biāo)簇中需要合成的新樣本數(shù)量。第三步利用 SMOTE 算法對目標(biāo)簇按照計算出的合成樣本數(shù)目進(jìn)行過采樣生成新樣本,使得數(shù)據(jù)達(dá)到相對平衡的狀態(tài)。
通過以上3個步驟,能有效地克服樣本重疊,合理的補(bǔ)充少數(shù)類樣本,還可以平衡區(qū)域內(nèi)的樣本密度,以達(dá)到提高分類性能的目的。
3 整體模型
本文建立的模型首先采用iForest算法對多數(shù)類樣本進(jìn)行去噪處理,然后采用DPC-SMOTE算法合成新少數(shù)類樣本并加入原訓(xùn)練集中來改善數(shù)據(jù)集的不平衡,最后使用分類器進(jìn)行學(xué)習(xí)。具體過程如下:
1)利用iForest算法按照特定閾值對多數(shù)類樣本進(jìn)去噪;
2)獲得新的多數(shù)類樣本Nmaj;
3)利用DPC-SMOTE算法剔除噪聲樣本,合成新樣本;
4)將新合成的樣本與Nmin1、Nmaj合并,獲得均衡的樣本集S;
5)用得到的均衡樣本集S對分類器進(jìn)行訓(xùn)練;
6)用測試集T對訓(xùn)練好的模型進(jìn)行測試,來驗證所提方法的分類性能。
整體模型如圖4所示。
4 實驗分析
4.1 數(shù)據(jù)集
為驗證本文提出的算法的有效性,本文選取了來自UCI機(jī)器學(xué)習(xí)庫的6個數(shù)據(jù)集與KEEL數(shù)據(jù)庫中的4個數(shù)據(jù)集進(jìn)行實驗,分別是:Abalone數(shù)據(jù)集,Ecoli數(shù)據(jù)集,Glass數(shù)據(jù)集,Yeast數(shù)據(jù)集,Letter數(shù)據(jù)集,Wilt數(shù)據(jù)集,Winequality-red-3_vs_5數(shù)據(jù)集,Poker-8_9_vs_5數(shù)據(jù)集,Poker-8_vs_6數(shù)據(jù)集,Kddcup-rootkit-imap_vs_back數(shù)據(jù)集,將這10個數(shù)據(jù)集用D1到D10進(jìn)行標(biāo)號,詳細(xì)信息如表1所示。為了反映數(shù)據(jù)集的類失衡程度,引入不平衡比率[30](imbalance ratio,IR),表1最后一列采用IR反映數(shù)據(jù)的失衡程度,本文選取的數(shù)據(jù)集的IR從2.11到100.14。IR的計算方式為
IR=NmajNmin(17)
其中:Nmaj為多數(shù)類樣本數(shù)量;Nmin為少數(shù)類樣本數(shù)量。
4.2 評價指標(biāo)
在不平衡數(shù)據(jù)集中,用于評估分類器性能的各種評估指標(biāo)并不完全適用。針對此類問題,專門提出了用于處理不平衡數(shù)據(jù)的評價指標(biāo)[31]。而混淆矩陣[32]統(tǒng)計了各類樣本的分類情況,是衡量分類模型性能最直觀的方法。其中行代表分類算法的預(yù)測類別,列代表樣本的真實類別,少數(shù)類定義為正類,多數(shù)類定義為負(fù)類。TP表示正類樣本預(yù)測結(jié)果為正類,F(xiàn)P表示負(fù)類樣本預(yù)測結(jié)果為正類,F(xiàn)N表示正類樣本預(yù)測結(jié)果為負(fù)類,TN表示負(fù)類樣本預(yù)測結(jié)果為負(fù)類,混淆矩陣的統(tǒng)計結(jié)果如表2所示。
基于混淆矩陣提出了較多的評價指標(biāo)計算方式,其中的精度(Precision)和召回率(Recall)分別描述了預(yù)測為少數(shù)類的樣本中分類預(yù)測與真實值相符的情況和少數(shù)類樣本中分類預(yù)測與真實值相符的情況,其調(diào)和平均值F1可以從整體上對少數(shù)類的分類情況進(jìn)行評估,計算方法如下:
fPrecision=TPTP+FP(18)
fRecall=fSensitivity=TPTP+FN(19)
fSpecificity=TNTN+FP(20)
F1=2fPrecisionfRecallfPrecision+fRecall(21)
以上指標(biāo)只針對某一類的分類情況進(jìn)行評價,容易受到類不平衡度的影響,難以整體評價分類性能。G-mean可以綜合評價多數(shù)類和少數(shù)類的分類正確率情況,相對于準(zhǔn)確率而言,能更好地衡量分類方法在不平衡數(shù)據(jù)集上的分類效果。計算方法為:
G-mean=fsensitivityfspecificity(22)
分類器的分類性能要綜合多數(shù)類和少數(shù)類的分類情況進(jìn)行評價,如果只評價某一類的分類情況,則類不平衡度會對評價結(jié)果產(chǎn)生一定的影響。而AUC是ROC曲線下的面積,能夠同時考慮分類器對于多數(shù)類和少數(shù)類樣本的分類能力,在樣本不平衡的情況下,仍能夠?qū)Ψ诸惼鬟M(jìn)行合理的評價,是衡量分類性能的最佳評價模型,計算方法為:
AUC=121+TPTP+FN-FPFP+TN(23)
因此,本文采用F1、G-mean、AUC作為對比實驗中的評價指標(biāo),同時分析fPrecision和fRecall的變化,體現(xiàn)本文提出模型的優(yōu)勢。
4.3 實驗設(shè)置
本次實驗硬件環(huán)境為:AMD R7-5800H,八核CPU,16GB內(nèi)存;軟件環(huán)境為:64位Windows 11操作系統(tǒng),PyCharm實驗平臺;開發(fā)語言:Python 3.9。
為了驗證本文所提算法的有效性,選取了5種重采樣算法對原始數(shù)據(jù)集進(jìn)行抽樣,然后與DPC-SMOTE算法在五種分類器上進(jìn)行對比。5種重采樣算法分別為Random Oversampling[33](簡記為ROS)、SMOTE[14]、ANASYN[15]、Borderline-SMOTE[17](簡記為BSMOTE),K-means SMOTE[18](簡記為KSMOTE);5種分類器分別為K-近鄰[34](k-nearest neighbor,KNN)、邏輯回歸[35](logistic regression,LR)、樸素貝葉斯[36](nave bayes,NB)、支持向量機(jī)[37](support vector machine,SVM)和決策樹[38](decision trees,DT)。
本文所提的DPC-SMOTE算法中,DPC算法的參數(shù)blockNum是聚類的簇數(shù),由于每個數(shù)據(jù)集不同的分布特征,最終本文選取該算法在各個數(shù)據(jù)集中不同取值下分類效果最好的blockNum, blockNum∈{1,2,…,12 };將SMOTE、ANASYN、Borderline-SMOTE采樣算法中的KNN最近鄰搜索的最近鄰數(shù)設(shè)置為5,Borderline-SMOTE 算法的參數(shù)m設(shè)置為 10。過采樣率為1,即合成樣本數(shù)量為數(shù)據(jù)集中多數(shù)類樣本數(shù)量減去少數(shù)類樣本數(shù)量,輸出的結(jié)果中少數(shù)類與多數(shù)類比例為1∶1。
4.4 結(jié)果分析
為了能夠避免實驗結(jié)果受到隨機(jī)影響,客觀比較各類算法和提升模型的泛化能力,本文采用十折交叉驗證,重復(fù)10次,并對結(jié)果取平均值,得到最終的實驗結(jié)果。本文實驗采用原始數(shù)據(jù)的70%作為訓(xùn)練集,使用這一部分樣本和新合成樣本對分類器進(jìn)行訓(xùn)練,另外30%樣本作為測試集。為得到真實的結(jié)果,合成樣本只參與分類器的訓(xùn)練階段,測試階段的數(shù)據(jù)全部采用真實數(shù)據(jù)。實驗結(jié)果如表3~表7所示,其中每個數(shù)據(jù)集的第1行為F1值,第2行為G-mean值,第3行為AUC值。圖5~圖7為F1值、G-mean值、AUC值可視化。
圖5是各算法在5種分類器上的F1值,F(xiàn)1是衡量類之間重疊的指標(biāo),可以更好地表征最終獲得的精度,F(xiàn)1越大,表明新數(shù)據(jù)集的數(shù)據(jù)重疊現(xiàn)象越少。本文算法在10個數(shù)據(jù)集中F1均有提升,在5種分類器上,對比ROS算法,分別提升了提升2.87%、7.86%、15.90%、2.73%、1.21%;對比SMOTE算法,分別提升了提升3.79%、8.98%、12.02%、2.50%、2.16%;對比ANASYN算法,分別提升了提升5.18%、10.54%、14.32%、3.78%、2.38%;對比BSMOTE算法,分別提升了3.98%、9.40%、12.05%、3.24%、2.12%;對比KSMOTE算法,分別提升了提升10.66%、7.26%、12.32%、4.65%、4.84%;說明本文提出的算法能減小數(shù)據(jù)重疊對分類器帶來的消極影響,弱化噪聲數(shù)據(jù)帶來的分類偏差,具有良好的泛化能力。
圖6是各算法在5種分類器上的G-mean值,G-mean值同時能夠衡量多數(shù)類和少數(shù)類的分類性能,對比其他5種過采樣算法,DPC-SMOTE算法的G-mean值在KNN上的平均提高率分別為:10.08%、1.97%、3.79%、5.91%、4.59%;在LR上的平均提高率分別為:3.56%、5.08%、5.90%、7.35%、2.83%;在NB上的平均提高率分別為:8.88%、10.39%、12.42%、12.78%、5.73%;在SVM上的平均提高率分別為:8.72%、5.14%、6.26%、8.53%、3.23%;在DT上的平均提高率分別為:14.99%、9.28%、12.03%、11.61%、0.94%;表明DPC-SMOTE算法能夠在保證在多數(shù)類樣本識別率的前提下提高少數(shù)類樣本的識別效果;在Letter、Wilt數(shù)據(jù)集以及Poker-8_9_vs_5數(shù)據(jù)集上G-mean值略低于最高值,原因可能是少數(shù)類樣本過少,導(dǎo)致合成的樣本缺乏代表性,損失了原始數(shù)據(jù)的分布信息,從而影響了分類性能。綜合來看,DPC-SMOTE算法不僅在少數(shù)類分類問題上有著更出色的性能,而且在多數(shù)類分類上也有著良好表現(xiàn)。
圖7是各算法在5種分類器上的AUC值,AUC同時考慮了分類器對于少數(shù)類和多數(shù)類的分類能力,在樣本不平衡的情況下,依然能夠?qū)Ψ诸惼鬟M(jìn)行合理的評價。DPC-SMOTE算法的AUC值幾乎在所有數(shù)據(jù)集上都取得了最優(yōu)結(jié)果。與其他算法相比,DPC-SMOTE算法的AUC值在五種分類器上分別提升了5.14%、6.79%、11.26%、5.21%、8.00%??梢?DPC-SMOTE算法比其他算法對數(shù)據(jù)集的整體分類的準(zhǔn)確率有較大提升,因為聚類選擇的點相當(dāng)于進(jìn)行了篩選,能夠更合理地擴(kuò)充數(shù)據(jù)集,同時孤立森林算法與密度峰值聚類算法分別將多數(shù)類與少數(shù)類樣本的噪聲樣本剔除,也弱化了噪聲樣本帶來的分類偏差,可以有效緩解不平衡數(shù)據(jù)集存在的小分離、類內(nèi)和類間不平衡問題,且在不同IR的數(shù)據(jù)集上都能有效提升分類器的性能。
綜上所述,可以證明本文提出的DPC-SMOTE算法能夠合理地補(bǔ)充少數(shù)類樣本,有效地解決數(shù)據(jù)失衡的問題,提升分類精度。本文算法在5種分類器上都有不錯的表現(xiàn),在穩(wěn)定性上較傳統(tǒng)算法有更好的優(yōu)勢,也證明了本文算法的魯棒性和適用性。
5 結(jié) 論
現(xiàn)實生活中收集到的大多數(shù)數(shù)據(jù)都存在類不平衡的問題,對數(shù)據(jù)集進(jìn)行過采樣處理是解決數(shù)據(jù)量少且不平衡的有效辦法。本文在數(shù)據(jù)預(yù)處理階段對多數(shù)類進(jìn)行去噪處理,然后將DPC算法與改進(jìn)后的SMOTE算法相結(jié)合,對少數(shù)類樣本進(jìn)行聚類并剔除噪聲樣本,接著按照聚類后每個簇稀疏度的不同,分配不同的合成樣本數(shù)目進(jìn)行樣本的生成。實驗結(jié)果表明,DPC-SMOTE過采樣算法可以有效克服SMOTE等傳統(tǒng)過采樣算法忽略少數(shù)類樣本的類內(nèi)不平衡現(xiàn)象,并且容易受噪聲樣本的干擾,擴(kuò)展少數(shù)類的分類區(qū)域等問題,極大地提升了不平衡數(shù)據(jù)集的分類準(zhǔn)確率,改善了分類結(jié)果偏向多數(shù)類樣本的問題。算法僅對過采樣的樣本選擇進(jìn)行了優(yōu)化,后續(xù)仍需要對樣本的合成以及結(jié)合欠采樣進(jìn)行數(shù)據(jù)重采樣做進(jìn)一步研究。
參 考 文 獻(xiàn):
[1] HASSAN MM, HUDA S, YEARWOOD J, et al. Multistage Fusion Approaches Based on a Generative Model and Multivariate Exponentially Weighted Moving Average for Diagnosis of Cardiovascular Autonomic Nerve Dysfunction[J]. Information Fusion, 2018, 41: 105.
[2] ANDRESINI G, APPICE A, DE Rose L, et al. GAN Augmentation to Deal with Imbalance in Imaging-based Intrusion Detection[J]. Future Generation Computer Systems, 2021, 123: 108.
[3] SUN J, LANG J, FUJITA H, et al. Imbalanced Enterprise Credit Evaluation with DTE-SBD: Decision Tree Ensemble Based on SMOTE and Bagging with Differentiated Sampling Rates[J]. Information Sciences, 2018, 425: 76.
[4] SONG Q, GUO Y, SHEPPERD M. A Comprehensive Investigation of the Role of Imbalanced Learning for Software Defect Prediction[J]. IEEE Transactions on Software Engineering, 2018, 45(12): 1253.
[5] CHEN S, WANG X, ZHANG H, et al. Customer Purchase Prediction from the Perspective of Imbalanced Data: A Machine Learning Framework Based on Factorization Machine[J]. Expert Systems with Applications, 2021, 173: 114756.
[6] LI Y, GUO H, ZHANG Q, et al. Imbalanced Text Sentiment Classification Using Universal and Domain Specific Knowledge[J]. Knowledge-Based Systems, 2018, 160: 1.
[7] BATISTA G E, PRATI R C, MONARD M C. A Study of the Behavior of Several Methods for Balancing Machine Learning Training Data[J]. ACM SIGKDD Explorations Newsletter, 2004, 6(1): 20.
[8] 趙楠, 張小芳, 張利軍. 不平衡數(shù)據(jù)分類研究綜述[J]. 計算機(jī)科學(xué), 2018, 45(S1): 22.
ZHAO Nan, ZHANG Xiaofang, ZHANG Lijun.Overview of Imbalanced Data Classification[J].Computer Science,2018,45(S1): 22.
[9] SUN Z, SONG Q, ZHU X, et al. A Snovel Ensemble Method for Classifying Imbalanced Data[J]. Pattern Recognition, 2015, 48(5): 1623.
[10]BASZCZYSKI J, STEFANOWSKI J. Neighborhood Sampling in Bagging for Imbalanced Data[J]. Neurocomputing, 2015, 150: 529.
[11]TSAI C F, LIN W C, HU Y H, et al. Under-sampling Class Imbalanced Datasets by Combining Clustering Analysis and Instance Selection[J]. Information Sciences, 2019, 477: 47.
[12]BATISTA G E, PRATI R C, MONARD M C. A Study of the Behavior of Several Methods for Balancing Machine Learning Training Data[J]. ACM SIGKDD Explorations Newsletter, 2004, 6(1): 20.
[13]GUNTURI S B, RAMAMURTHI N. A Novel Approach to Generate Robust Classification Models to Predict Developmental Toxicity from Imbalanced Datasets[J]. SAR and QSAR in Environmental Research, 2014, 25(9): 711.
[14]CHAWLA N V, BOWYER K W, HALL L O, et al. SMOTE: Synthetic Minority Over-sampling Technique[J]. Journal of Artificial Intelligence Research, 2002, 16: 321.
[15]HAN H, WANG W Y, MAO B H. Borderline-SMOTE: A New Over-Sampling Method in Imbalanced Data Sets Learning[J]. Lecture Notes in Computer Science, 2005:878.
[16]ABDI L, HASHEMI S. To Combat Multiclass Imbalanced Problems by Means of Over-sampling Techniques[J]. IEEE Transactions on Knowledge and Data Engineering, 2015, 28(1): 238.
[17]HE H, YANG B, GARCIA E A, et al. ADASYN: Adaptive Synthetic Sampling Approach for Imbalanced Learning[J]. IEEE, 2008:322.
[18]DOUZAS G, BACAO F, LAST F. Improving Imbalanced Learning Through a Heuristic Oversampling Method Based on k-means and SMOTE[J]. Information Sciences, 2018, 465: 1.
[19]賈鶴鳴, 李瑤, 孫康健. 基于遺傳烏燕鷗算法的同步優(yōu)化特征選擇[J]. 自動化學(xué)報, 2022, 48(6): 1601.
JIA HeMing, LI Yao,SUN KangJian.Simultaneous Feature Selection Optimization Based on Hybrid Sooty Tern Optimization Algorithm and Genetic Algorithm[J].Acta Automatica Sinica, 2022, 48(6): 1601.
[20]HAN C, TAN Y K, ZHU J H, et al. Online Feature Selection of Class Imbalance Via Pa Algorithm[J]. Journal of Computer Science and Technology, 2016, 31: 673.
[21]YIN L, GE Y, XIAO K, et al. Feature Selection Forhighdimensional Imbalanced Data[J]. Neurocomputing, 2013, 105: 3.
[22]SONG X, ZHANG Y, GONG D, et al. Feature Selection Using Bare-bones Particle Swarm Optimization with Mutual Information[J]. Pattern Recognition, 2021, 112: 107804.
[23]CHUNG Y A, LIN H T, YANG S W. Cost-aware Pretraining for Multiclass Cost-sensitive Deep Learning[J].arXiv Preprint arXiv:1511.09337, 2015.
[24]KRAWCZYK B, WONIAK M, SCHAEFER G. Cost-sensitive Decision Tree Ensembles for Effective Imbalanced Classification[J]. Applied Soft Computing, 2014, 14: 554.
[25]ZHOU H, WANG X, ZHU R. Feature Selection Based on Mutual Information with Correlation Coefficient[J]. Applied Intelligence, 2022: 1.
[26]CUI S, WANG Y, YIN Y, et al. A Cluster-based Intelligence Ensemble Learning Method for Classification Problems[J]. Information Sciences, 2021, 560: 386.
[27]LUCA S, CLIFTON D, VANRUMSTE B. One-class Classification of Point Patterns of Extremes[J]. Journal of Machine Learning Research, 2016, 17(191).
[28]RODRIGUEZ A,LAIO A. Clustering by Fast Search and Find of Density Peaks[J]. Science, 2014, 344(6191): 1492.
[29]LIU F T, TING K M, ZHOU Z H. Isolation Forest[C]//2008 Eighth Ieee International Conference on Data Mining. IEEE, 2008: 413.
[30]GARCA S, HERRERA F. Evolutionary Under-sampling for Classification with Imbalanced Datasets: Proposals and Taxonomy[J]. Evolutionary Computation, 2009, 17(3): 275.
[31]LUQUE A, CARRASCO A, MARTN A, et al. The Impact of Class Imbalance in Classification Performance Metrics Based on the Binary Confusion Matrix[J]. Pattern Recognition, 2019, 91: 216.
[32]GALAR M, FEMANDEZ A, BARRENECHEA E, et al. A Review on Ensembles for the Class Imbalance Problem: Bagging-, Boosting-, and Hybrid-based Approaches[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2011, 42(4): 463.
[33]CHAWLA N V. Data Mining for Imbalanced Datasets: An Overview[J]. Data Mining and Knowledge Discovery Handbook, 2010: 875.
[34]COVER T, HART P. Nearest Neighbor Pattern Classification[J]. IEEE Transactions on Information Theory, 1967, 13(1): 21.
[35]HOSMER Jr D W,LEMESHOW S, STURDIVANT R X. Applied Logistic Regression[M]. John Wiley amp; Sons, 2013.
[36]RISH I. An Empirical Study of the Naive Bayes Classifier[C]//IJCAI 2001 Workshop on Empirical Methods in Artificial Intelligence, 2001, 3(22): 41.
[37]CORTES C,VAPNIK V. Support-vector Networks[J]. Machine Learning, 1995, 20: 273.
[38]SAFAVIAN S R, LANDGREBE D. A Survey of Decision Tree Classifier Methodology[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1991, 21(3): 660.
(編輯:溫澤宇)