易 未,毛 力,孫 俊,吳林海
(1.江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122; 2.江南大學(xué)商學(xué)院,江蘇 無錫 214122;3.江南大學(xué)食品安全風(fēng)險(xiǎn)治理研究院,江蘇 無錫 214122)
近年來,不平衡學(xué)習(xí)問題吸引了大量學(xué)術(shù)界和工業(yè)界的興趣[1]。不平衡學(xué)習(xí)的根本問題是不平衡數(shù)據(jù)顯著地降低標(biāo)準(zhǔn)學(xué)習(xí)算法的結(jié)果。大多數(shù)標(biāo)準(zhǔn)學(xué)習(xí)算法假設(shè)均衡類分布或具有相等的誤判成本。因此,當(dāng)面對(duì)復(fù)雜的不平衡數(shù)據(jù)集時(shí),這些算法不能正確地反映數(shù)據(jù)的分布特征,從而使得結(jié)果精度不能令人滿意。希望不同類別樣本的數(shù)量是相等的,但是實(shí)際上在某些情況下不同類別樣本數(shù)量通常是極端不平衡的,一類嚴(yán)重代表了另外一個(gè)類[2-4]。不平衡學(xué)習(xí)困難有2種解決方法,一是從算法上考慮,例如代價(jià)敏感[5]和集成學(xué)習(xí)方法[6];二是對(duì)不平衡樣本進(jìn)行抽樣然后再使用常用的機(jī)器學(xué)習(xí)算法。抽樣有欠抽樣(從多數(shù)類中抽取樣本)[7-8]與過抽樣(合成少數(shù)類樣本)這2種方法。不平衡隨機(jī)過采樣算法隨機(jī)復(fù)制少數(shù)集樣本,最終使少數(shù)集樣本數(shù)量與多數(shù)集樣本數(shù)量相同,而Smote算法的基本思想是通過少數(shù)類樣本的k個(gè)最近鄰樣本,合成新的樣本再添加到數(shù)據(jù)集中,最終使少數(shù)樣本與多數(shù)樣本數(shù)量相同[9]。但是,Smote算法的主要缺點(diǎn)有:1)負(fù)類集合中的噪聲負(fù)類樣本參與新樣本的合成,使得產(chǎn)生的新樣本質(zhì)量較差;2)沒有對(duì)少數(shù)類樣本進(jìn)行區(qū)別性的選擇,而是同等對(duì)待所有的少數(shù)類樣本;3)生成新樣本時(shí),負(fù)類樣本的k近鄰可能是正類樣本,這容易產(chǎn)生正負(fù)類邊界模糊問題;4)合成樣本僅在2個(gè)點(diǎn)的連線上產(chǎn)生,分布區(qū)域較小,分類器分類時(shí)易過擬合。
針對(duì)Smote算法的缺點(diǎn),一些人對(duì)Smote算法提出了改進(jìn)。董燕杰[10]提出Random-Smote算法,該算法對(duì)Smote算法的第4個(gè)缺點(diǎn)進(jìn)行了改進(jìn),在樣本點(diǎn)與2個(gè)近鄰點(diǎn)所形成的三角形區(qū)域里面隨機(jī)插值。王超學(xué)等人[11]提出了改進(jìn)型Smote算法,該算法對(duì)Smote算法的第2個(gè)缺點(diǎn)進(jìn)行了改進(jìn),使用輪盤賭算法來選擇少數(shù)類集合中的少數(shù)類樣本。Han等人[12]提出的Borderline-Smote算法,該算法對(duì)Smote算法的第1個(gè)缺點(diǎn)與第2個(gè)缺點(diǎn)進(jìn)行了改進(jìn),僅僅只對(duì)在分類邊界上的少數(shù)類樣本過采樣。Santos等人[13]提出了CB-Smote算法,該算法對(duì)Smote算法的第3個(gè)缺點(diǎn)進(jìn)行了改進(jìn),生成新樣本時(shí)的類別標(biāo)簽由該樣本與其最近鄰樣本的類別標(biāo)簽共同決定。袁銘[14]提出了R-Smote算法,該算法對(duì)Smote算法的第3個(gè)缺點(diǎn)與第4個(gè)缺點(diǎn)進(jìn)行了改進(jìn),在2個(gè)少數(shù)類樣本上使用N維球面使生成的樣本不在原樣本與其近鄰的直線上。古平等人[15]提出了SD-ISmote算法,該算法對(duì)Smote算法的第2個(gè)缺點(diǎn)、第3個(gè)缺點(diǎn)與第4個(gè)缺點(diǎn)進(jìn)行了改進(jìn),根據(jù)近鄰分布對(duì)少數(shù)類樣本進(jìn)行類別細(xì)分,對(duì)不同細(xì)分的少數(shù)類樣本分別使用R-Smote與Smote算法合成新樣本。
以上算法對(duì)Smote算法做出了許多改進(jìn),但總體分類性能還是稍顯不足。因此本文利用刪去噪音樣本的少數(shù)類樣本集簇心與不大于樣本屬性數(shù)的對(duì)應(yīng)類別少數(shù)集數(shù)據(jù),使用新的樣本生成公式,提出一種新的改進(jìn)型Smote算法—ImprovedSmote算法。
Smote算法全稱是合成少數(shù)類過采樣技術(shù)(Synthetic Minority Oversampling Technique, Smote),它的算法描述如下:
1)對(duì)于少數(shù)類Smin中每一個(gè)樣本xi,以歐氏距離為標(biāo)準(zhǔn)計(jì)算它到全體樣本集中其他的所有樣本距離,得到其k個(gè)最近鄰。
2)根據(jù)數(shù)據(jù)集不平衡比例設(shè)置一個(gè)采樣倍率N,從少數(shù)集樣本中循環(huán)選擇樣本,假設(shè)選擇的樣本為xi。
3)對(duì)于每一個(gè)選出的樣本xi,對(duì)其k個(gè)最近鄰中的每一個(gè)樣本xold按照公式(1)構(gòu)建N個(gè)新樣本xnew:
xnew=xi+rand(0,1)×(xold-xi)
(1)
4)從新生成的少數(shù)集數(shù)據(jù)中隨機(jī)剔除數(shù)據(jù),直到新生成少數(shù)集數(shù)據(jù)個(gè)數(shù)等于原多數(shù)集與少數(shù)集數(shù)據(jù)個(gè)數(shù)之差,然后把生成的數(shù)據(jù)加入到原來的少數(shù)集Smin中。
Smote算法在生成新樣本時(shí),新樣本分布區(qū)域較小,僅僅在線性空間上產(chǎn)生。因此,袁銘提出了R-Smote算法,它的算法描述如下:
1)對(duì)于少數(shù)類Smin中每一個(gè)樣本xi,以歐氏距離為標(biāo)準(zhǔn)計(jì)算它到全體樣本集中其他的所有樣本距離,得到其k個(gè)最近鄰。
2)根據(jù)數(shù)據(jù)集不平衡比例設(shè)置一個(gè)采樣倍率N,從少數(shù)集樣本中循環(huán)選擇樣本,假設(shè)選擇的樣本為xi。
3)對(duì)于每一個(gè)選出的樣本xi,從其k個(gè)最近鄰中隨機(jī)選擇1個(gè)少數(shù)類樣本xold按照公式(2)~公式(4)構(gòu)建新樣本xnew:
Z1,j=xi,j-|xold,j-xi,j|
(2)
Z2,j=xi,j+|xold,j-xi,j|
(3)
xnew,j=xi,j+rand(0,1)×(Z2,j-Z1,j)
(4)
其中,xi,j代表樣本xi的第j個(gè)屬性。
4)xi與其生成的新樣本的距離應(yīng)該小于xi與xold的距離,即:
dist(xi,xnew)≤dist(xi,xold)
(5)
如果不滿足公式(5)則跳轉(zhuǎn)到步驟2。
5)生成的少數(shù)集數(shù)據(jù)個(gè)數(shù)等于原多數(shù)集與少數(shù)集數(shù)據(jù)個(gè)數(shù)之差時(shí)停止生成,并把生成的數(shù)據(jù)加入到原來的少數(shù)集Smin中。
Smote與R-Smote算法在新樣本產(chǎn)生時(shí)并沒有利用多數(shù)類樣本的信息,古平等人提出了SD-ISmote算法,根據(jù)最近鄰的情況對(duì)少數(shù)類樣本進(jìn)行不同處理方法。它的算法描述如下:
1)對(duì)于少數(shù)類Smin中每一個(gè)樣本xi,以歐氏距離為標(biāo)準(zhǔn)計(jì)算它到全體樣本集中其他的所有樣本距離,得到其k個(gè)最近鄰。
2)按照最近鄰少數(shù)類樣本個(gè)數(shù)把Smin細(xì)分為DANGER(少數(shù)類樣本個(gè)數(shù)小于k/2)、SAFE(少數(shù)類樣本個(gè)數(shù)等于k)、AL_SAFE(少數(shù)類樣本個(gè)數(shù)大于k/2,小于k)集合。
3)統(tǒng)計(jì)DANGER,SAFE,AL_SAFE樣本個(gè)數(shù),得到ND,NS,NAL。在DANGER集上使用R-Smote算法進(jìn)行過采樣,采樣數(shù)量為D×NS/(ND+NS+NAL),其中,D為整體過采樣數(shù)量。
4)在SAFE集上使用Smote算法進(jìn)行過采樣,采樣數(shù)量為D×ND/(ND+NS+NAL)。
5)對(duì)于AL_SAFE集合,利用輪盤賭來選擇樣本。按照公式(6)計(jì)算每個(gè)樣本的選擇概率:
(6)
其中,sup(i)為AL_SAFE中樣本最近k近鄰少數(shù)樣本數(shù)量。
6)選擇樣本后使用R-Smote算法生成新樣本,并利用最近1分類判斷最近鄰是否為少數(shù)類。過采樣數(shù)目為D×NAL/(ND+NS+NAL)。
7)合并DANGER,SAFE,AL_SAFE產(chǎn)生的新樣本,并把生成的數(shù)據(jù)加入到原來的少數(shù)集Smin中。
上文中提到R-Smote與SD-ISmote算法,分析它們的算法流程,首先會(huì)發(fā)現(xiàn)R-Smote算法在生成新樣本之后還需要滿足公式(5),SD-ISmote算法在滿足公式(5)的基礎(chǔ)上還要滿足新樣本的最近1近鄰必須為少數(shù)類。由于這2個(gè)條件的影響,R-Smote與SD-ISmote算法新樣本產(chǎn)生的效率不高。同時(shí)SD-ISmote算法沒有對(duì)Smote算法負(fù)類集合中的噪聲負(fù)類樣本參與新樣本的合成,使得產(chǎn)生的新樣本質(zhì)量較差這個(gè)缺點(diǎn)進(jìn)行改進(jìn)。
針對(duì)以上問題,本文提出了ImprovedSmote算法。它的主要思想是:1)剔除少數(shù)數(shù)據(jù)集中的噪音數(shù)據(jù),這改進(jìn)了Smote算法的第1個(gè)缺點(diǎn);2)在剔除噪音數(shù)據(jù)的少數(shù)數(shù)據(jù)集上使用k-means算法,使用簇心與對(duì)應(yīng)類別的少數(shù)集數(shù)據(jù)生成新樣本,這改進(jìn)了Smote算法的第2個(gè)缺點(diǎn)與第3個(gè)缺點(diǎn);3)新樣本在簇心與對(duì)應(yīng)類別的少數(shù)集數(shù)據(jù)形成的圖形內(nèi)部隨機(jī)產(chǎn)生,這改進(jìn)了Smote算法的第4個(gè)缺點(diǎn),同時(shí)也改進(jìn)了R-Smote與SD-ISmote算法新樣本產(chǎn)生效率不高的缺點(diǎn)。
1)數(shù)據(jù)預(yù)處理,然后使用快速搜索與發(fā)現(xiàn)密度峰值聚類(Clustering by Fast Search and Find of Density Peaks,CFSFDP)算法求得聚類中心個(gè)數(shù)[16]。
(7)
5)如果樣本數(shù)量|Sr|≤a,則按照公式(8)生成新樣本xnew:
xnew(i)=rand(min{Cr(i),Sr(i)}, max{
Cr(i),Sr(i)}), 1≤i≤a
(8)
6)重復(fù)步驟4和步驟5直到新生成的數(shù)據(jù)個(gè)數(shù)等于原多數(shù)類數(shù)據(jù)集個(gè)數(shù)與原少數(shù)類數(shù)據(jù)集個(gè)數(shù)之差。
7)輸出平衡后的數(shù)據(jù)集。
輸入:原始數(shù)據(jù)集T,少數(shù)類數(shù)據(jù)集M,多數(shù)類與少數(shù)類樣本數(shù)量之差D,根據(jù)CFSFDP算法得到的聚類中心個(gè)數(shù)k。
輸出:平衡數(shù)據(jù)集T*。
1)對(duì)于數(shù)據(jù)集M上每一個(gè)少數(shù)集樣本a,在數(shù)據(jù)集T(去除樣本a)中使用KNN算法求其近鄰,若其全部近鄰是多數(shù)類別,則把a(bǔ)從M中刪除,得到數(shù)據(jù)集M*。
2)在M*中使用k-means算法(k-means算法k值為聚類中心個(gè)數(shù)k),得到k個(gè)簇心{C1,C2,…,Ck}與對(duì)應(yīng)該簇心的所有少數(shù)集樣本{S1,S2,…,Sk}。
3)計(jì)算少數(shù)集樣本{S1,S2,…,Sk}的樣本個(gè)數(shù)|S1|,|S2|,…,|Sk|。
4)合成所有的少數(shù)類新樣本,過程如下:
for j=1:D
{n=rand(1,k);
if |Sn|>樣本數(shù)據(jù)屬性個(gè)數(shù)b{
for i=1:b
}
else {
for i=1:b
x(i)=rand(min{Cn(i),Sn(i)}, max{Cn(i),Sn(i)});
}
xnew=xnew∪x;
}
T*=T∪xnew;
5)輸出T*。
定義n為少數(shù)集樣本數(shù)量,m為多數(shù)集樣本數(shù)量,樣本屬性個(gè)數(shù)為b。ImprovedSmote算法流程步驟1中,計(jì)算少數(shù)集每個(gè)點(diǎn)之間的距離時(shí)間復(fù)雜度是O(bn(n+m-1)/2),求k1個(gè)距離最小值時(shí)間復(fù)雜度為O(k1(n+m)n),刪除操作為O(1),即步驟1總的時(shí)間復(fù)雜度是O(bn(n+m-1)/2+k1(n+m)n+1)=O(nm)。步驟2中,k-means算法的時(shí)間復(fù)雜度為O(Tk2n),其中T為迭代次數(shù),k2為k-means算法的分類數(shù)。一般地,T與k2比n小得多,因此k-means算法的時(shí)間復(fù)雜度可以簡(jiǎn)化為O(n)。步驟3中,時(shí)間復(fù)雜度是O(1)。步驟4中,若|Sn|≤b,時(shí)間復(fù)雜度為O((m-n)×b2)=O(m-n),否則為O((m-n)×(b+b2))=O(m-n)。綜上,ImprovedSmote算法時(shí)間復(fù)雜度為O(nm)。ImprovedSmote算法與Smote算法的時(shí)間復(fù)雜度基本相同。
ImprovedSmote算法空間復(fù)雜度取決于存儲(chǔ)步驟1中少數(shù)集點(diǎn)與全體樣本的距離。因此,ImprovedSmote算法空間復(fù)雜度為O(n(n+m-1)/2)=O(nm),與Smote及其變種算法的空間復(fù)雜度基本相同。
本文實(shí)驗(yàn)所使用的數(shù)據(jù)集分別是german,yeast,pima,glass這4個(gè)數(shù)據(jù)集。這4個(gè)數(shù)據(jù)集來源于UCI Machine Learning Repository。其中g(shù)erman與pima這2個(gè)數(shù)據(jù)集都是二分類數(shù)據(jù)集。yeast選擇第五類為少數(shù)類,其他合并為多數(shù)類。glass選擇第七類為少數(shù)類,其他合并為多數(shù)類。具體描述如表1所示。
表1 不平衡數(shù)據(jù)集描述
數(shù)據(jù)集樣本數(shù)變量數(shù)少數(shù)樣本類多數(shù)樣本類不平衡率german1000253007002.3333yeast1484951143328.098pima76892685001.8657glass21410291856.3793
由表1可以看出每個(gè)數(shù)據(jù)集的樣本數(shù)、少數(shù)樣本數(shù)、多數(shù)樣本數(shù)、所含變量數(shù)以及不平衡率。不平衡率是多數(shù)樣本集與少數(shù)樣本集數(shù)量之比,數(shù)值越大則該數(shù)據(jù)集的不平衡程度越大。
1)所需參數(shù)。
TP:正類正確分類數(shù)量。
FP:預(yù)測(cè)為正類但是真實(shí)為負(fù)類數(shù)量。
FN:預(yù)測(cè)為負(fù)類但是真實(shí)為正類數(shù)量。
TN:負(fù)類正確分類數(shù)量。
3) AUC值。AUC(Area Under Curve)被定義為ROC曲線下的面積,一般取值范圍為0.5~1。使用AUC值作為評(píng)價(jià)標(biāo)準(zhǔn)是因?yàn)楹芏鄷r(shí)候ROC曲線并不能直觀地說明哪個(gè)分類器的效果更好,而作為一個(gè)數(shù)值,對(duì)應(yīng)AUC更大的分類器效果更好[17]。
4) G-Means×AUC。由于G-Means與AUC的值都大時(shí),對(duì)應(yīng)分類器效果更好。本文采用G-Means與AUC乘積值來評(píng)價(jià)分類器效果。
KNN算法近鄰參數(shù)k值的選擇在判斷少數(shù)集樣本是否為噪音樣本時(shí)特別重要,本文使用二分類數(shù)據(jù)集,因此本文將選擇1,3,5,7,9,11這6個(gè)1~11之間的奇數(shù)作為k的值,通過對(duì)比ImprovedSmote算法過采樣之后的G-Means×AUC值來確定最佳的k值。不同k值的ImprovedSmote算法在german,yeast,pima,glass數(shù)據(jù)集上的分類結(jié)果如圖1~圖4所示。
圖1 不同k值在german數(shù)據(jù)集的分類結(jié)果
由圖1可以看出,k=3時(shí)ImprovedSmote算法在german數(shù)據(jù)集使用C4.5和神經(jīng)網(wǎng)絡(luò)算法均取得最大的G-Means×AUC值。
圖2 不同k值在yeast數(shù)據(jù)集的分類結(jié)果
由圖2可以看出,k=3時(shí)ImprovedSmote算法在yeast數(shù)據(jù)集使用C4.5和神經(jīng)網(wǎng)絡(luò)算法均取得最大的G-Means×AUC值。
圖3 不同k值在pima數(shù)據(jù)集的分類結(jié)果
由圖3可以看出,k=3時(shí)ImprovedSmote算法在pima數(shù)據(jù)集使用C4.5和神經(jīng)網(wǎng)絡(luò)算法均取得最大的G-Means×AUC值。
圖4 不同k值在glass數(shù)據(jù)集的分類結(jié)果
由圖4可以看出,k=3時(shí)ImprovedSmote算法在glass數(shù)據(jù)集使用C4.5和神經(jīng)網(wǎng)絡(luò)算法均取得最大的G-Means×AUC值。綜上所述,在接下來的實(shí)驗(yàn)中ImprovedSmote算法的近鄰參數(shù)選擇為3。
1)確定少數(shù)集以及對(duì)應(yīng)的聚類中心個(gè)數(shù)。
對(duì)german,yeast,pima,glass數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,然后在每個(gè)數(shù)據(jù)集對(duì)應(yīng)的少數(shù)集上使用CFSFDP算法,求得german,yeast,pima,glass少數(shù)集的聚類中心個(gè)數(shù)分別為5,2,5,1。即german,yeast,pima,glass少數(shù)集樣本k-means算法k值選取為5,2,5,1。
2)使用Smote,R-Smote,SD-ISmote與ImprovedSmote算法過采樣數(shù)據(jù)集數(shù)據(jù)。
3)使用C4.5決策樹與神經(jīng)網(wǎng)絡(luò)(NN)算法分類。
在經(jīng)過Smote,R-Smote,SD-ISmote與ImprovedSmote算法處理后的數(shù)據(jù)集上按照7:3的比例分為訓(xùn)練集與測(cè)試集,使用C4.5決策樹與神經(jīng)網(wǎng)絡(luò)算法分類,最后將測(cè)試集的分類結(jié)果一一記錄。
在Smote,R-Smote,SD-ISmote與ImprovedSmote過抽樣算法處理后的數(shù)據(jù)集上使用C4.5決策樹與神經(jīng)網(wǎng)絡(luò)算法分類。4個(gè)測(cè)試集上的分類結(jié)果如表2~表5所示。
表2 4種過抽樣算法在german數(shù)據(jù)集上的分類結(jié)果
評(píng)價(jià)指標(biāo)分類方法SmoteR-SmoteSD-ISmote本文算法G-MeansC4.50.74990.75570.77090.7917NN0.69030.72050.77430.7900AUCC4.50.77620.77100.78520.8016NN0.75580.78400.83980.8708G-Means×AUCC4.50.58210.58260.60530.6347NN0.52170.56490.65020.6879
G-Means值越高,說明多數(shù)類與少數(shù)類上的分類精度均較高;AUC值越高,說明分類效果越好。G-Means×AUC值越高,說明分類器總體上的分類表現(xiàn)越好。從表2中可以看出,在german數(shù)據(jù)集上相較于Smote,R-Smote與SD-ISmote算法,ImprovedSmote算法在C4.5與神經(jīng)網(wǎng)絡(luò)分類算法下都能得到更高的G-Means與AUC值,所以其G-Means×AUC值也更高。
表3 4種過抽樣算法在yeast數(shù)據(jù)集上的分類結(jié)果
評(píng)價(jià)指標(biāo)分類方法SmoteR-SmoteSD-ISmote本文算法G-MeansC4.50.91570.88780.96710.9557NN0.87590.84190.91740.9323AUCC4.50.91100.89700.96500.9790NN0.94000.92300.97300.9790G-Means×AUCC4.50.83420.79640.93320.9356NN0.82340.77710.89260.9128
從表3中可以看出,在yeast數(shù)據(jù)集上相較于Smote,R-Smote與SD-ISmote算法,ImprovedSmote算法在C4.5與神經(jīng)網(wǎng)絡(luò)分類算法下都能得到更高的AUC值。雖然ImprovedSmote算法的G-Means值在C4.5分類算法下比SD-ISmote算法低0.0119,但是G-Means×AUC值均為最高。
表4 4種過抽樣算法在pima數(shù)據(jù)集上的分類結(jié)果
評(píng)價(jià)指標(biāo)分類方法SmoteR-SmoteSD-ISmote本文算法G-MeansC4.50.73940.76930.77750.8047NN0.71740.72780.72720.7644AUCC4.50.78400.79700.81300.8220NN0.75700.81400.82200.8580G-Means×AUCC4.50.57970.61320.63210.6615NN0.54310.59240.59780.6559
從表4中可以看出,在pima數(shù)據(jù)集上相較于Smote,R-Smote與SD-ISmote算法,ImprovedSmote算法在C4.5與神經(jīng)網(wǎng)絡(luò)分類算法下都能得到更高的G-Means與AUC值,所以其G-Means×AUC值也更高。
表5 4種過抽樣算法在glass數(shù)據(jù)集上的分類結(jié)果
評(píng)價(jià)指標(biāo)分類方法SmoteR-SmoteSD-ISmote本文算法G-MeansC4.50.89760.94540.92690.9747NN0.94430.94550.96320.9829AUCC4.50.88300.92600.95400.9710NN0.98300.99300.98200.9940G-Means×AUCC4.50.79260.87540.88430.9464NN0.92820.93890.94590.9770
從表5中可以看出,在glass數(shù)據(jù)集上相較于Smote,R-Smote與SD-ISmote算法,ImprovedSmote算法在C4.5與神經(jīng)網(wǎng)絡(luò)分類算法下都能得到更高的G-Means與AUC值,所以其G-Means×AUC值也更高。
ImprovedSmote算法在實(shí)驗(yàn)數(shù)據(jù)集上G-Means×AUC值均較Smote,R-Smote和SD-ISmote算法高。ImprovedSmote算法與Smote,R-Smote和SD-ISmote算法相比: 1)剔除了少數(shù)集中的噪音數(shù)據(jù)樣本,使得這部分樣本不會(huì)生成新樣本;2)使用簇心與不大于樣本屬性數(shù)的對(duì)應(yīng)類別少數(shù)集數(shù)據(jù)生成新樣本,對(duì)少數(shù)類樣本進(jìn)行了區(qū)別性的選擇;3)參與合成新樣本的樣本都屬于少數(shù)類,產(chǎn)生的新數(shù)據(jù)不會(huì)模糊多數(shù)類與少數(shù)類的邊界;4)新樣本在簇心與不大于樣本屬性數(shù)的對(duì)應(yīng)類別少數(shù)集數(shù)據(jù)形成的圖形內(nèi)部隨機(jī)產(chǎn)生,使得不僅產(chǎn)生新樣本的分布范圍更廣,而且產(chǎn)生新樣本的效率也高。綜上所述,ImprovedSmote算法優(yōu)于Smote,R-Smote和SD-ISmote算法,更加有效地增加不平衡數(shù)據(jù)集的少數(shù)類樣本,從而提高分類器分類性能。
針對(duì)在不平衡數(shù)據(jù)集上有效地分類這個(gè)問題,本文提出了ImprovedSmote算法,該算法剔除了少數(shù)集中的噪音數(shù)據(jù)樣本,使用k-means算法求得少數(shù)數(shù)據(jù)集的簇心,然后使用簇心和不大于樣本屬性數(shù)的對(duì)應(yīng)類別的少數(shù)集數(shù)據(jù)生成新樣本,這可以防止噪音數(shù)據(jù)樣本產(chǎn)生新樣本與新數(shù)據(jù)不會(huì)模糊多數(shù)類與少數(shù)類的邊界。新樣本在簇心與不大于樣本屬性數(shù)的對(duì)應(yīng)類別的少數(shù)集數(shù)據(jù)形成的圖形內(nèi)部隨機(jī)產(chǎn)生,增大了新樣本的生成范圍,減少分類器分類時(shí)易過擬合這種現(xiàn)象的產(chǎn)生。實(shí)驗(yàn)結(jié)果顯示ImprovedSmote算法結(jié)合C4.5決策樹與神經(jīng)網(wǎng)絡(luò)算法在實(shí)驗(yàn)數(shù)據(jù)集上的分類效果較Smote,R-Smote和SD-ISmote算法好。下一階段將改進(jìn)對(duì)應(yīng)類別的少數(shù)集數(shù)據(jù)個(gè)數(shù)大于樣本屬性個(gè)數(shù)時(shí)的數(shù)據(jù)抽取方法,使生成的新樣本分布更加合理。
[1] He Haibo, Garcia E A. Learning from imbalanced data[J]. IEEE Transactions on Knowledge & Data Engineering, 2009,21(9):1263-1284.
[2] He Haibo, Shen Xiaoping. A ranked subspace learning method for gene expression data classification[C]// Proceedings of 2007 International Conference on Artificial Intelligence. 2007:358-364.
[3] Kubat M, Holte R C, Matwin S. Machine learning for the detection of oil spills in satellite radar images[J]. Machine Learning, 1998,30(2-3):195-215.
[4] Pearson R, Goney G, Shwaber J. Imbalanced clustering for microarray time-series[C]// Workshop for Learning from Imbalanced Datasets II, 2003.
[5] Zhao Hong, Li Xiangju. A cost sensitive decision tree algorithm based on weighted class distribution with batch deleting attribute mechanism[J]. Information Sciences, 2017,378(C):303-316.
[6] Reddy M V, Sodhi R. A rule-based s-transform and ada-boost based approach for power quality assessment[J]. Electric Power Systems Research, 2016,134:66-79.
[7] 史穎,亓慧. 一種去冗余抽樣的非平衡數(shù)據(jù)分類方法[J]. 山西大學(xué)學(xué)報(bào)(自然科學(xué)版), 2017,40(2):255-261.
[8] Yen S J, Lee Y S. Cluster-based under-sampling approaches for imbalanced data distributions[J]. Expert Systems with Applications, 2009,36(3):5718-5727.
[9] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: Synthetic minority over-sampling technique[J]. Journal of Artificial Intelligence Research, 2011,16(1):321-357.
[10] 董燕杰. 不平衡數(shù)據(jù)集分類的Random-SMOTE方法研究[D]. 大連:大連理工大學(xué), 2009.
[11] 王超學(xué),潘正茂,董麗麗,等. 基于改進(jìn)SMOTE的非平衡數(shù)據(jù)集分類研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2013,49(2):184-187.
[12] Han Hui, Wang Wenyuan, Mao Binghuan. Borderline-SMOTE: A new over-sampling method in imbalanced data sets learning[C]// Proceedings of 2005 International Conference on Advances in Intelligent Computing. 2005,3644(5):878-887.
[13] Santos M S, Abreu P H, García-Laencina P J, et al. A new cluster-based oversampling method for improving survival prediction of hepatocellular carcinoma patients[J]. Journal of Biomedical Informatics, 2015,58:49-59.
[14] 袁銘. 基于R-SMOTE方法的非平衡數(shù)據(jù)分類研究[D]. 保定:河北大學(xué), 2015.
[15] 古平,楊煬. 面向不均衡數(shù)據(jù)集中少數(shù)類細(xì)分的過采樣算法[J]. 計(jì)算機(jī)工程, 2017,43(2):241-247.
[16] Rodriguez A, Laio A. Machine learning. clustering by fast search and find of density peaks[J]. Science, 2014,344(6191):1492-1496.
[17] 楊明,尹軍梅,吉根林. 不平衡數(shù)據(jù)集分類方法綜述[C]// 第三屆江蘇計(jì)算機(jī)大會(huì)論文集. 2008.