趙小強(qiáng), 姚青磊
(1. 蘭州理工大學(xué) 電氣工程與信息工程學(xué)院, 甘肅 蘭州 730050; 2. 蘭州理工大學(xué) 甘肅省工業(yè)過程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室, 甘肅 蘭州 730050; 3. 蘭州理工大學(xué) 國家級電氣與控制工程實(shí)驗(yàn)教學(xué)中心, 甘肅 蘭州 730050)
隨著計(jì)算機(jī)、通信技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)和工業(yè)等領(lǐng)域產(chǎn)生了大量的數(shù)據(jù),如何在這些大量數(shù)據(jù)中找到并使用有價(jià)值的數(shù)據(jù)已成為目前研究的熱點(diǎn).因此,數(shù)據(jù)挖掘引起了人們的極大關(guān)注,而數(shù)據(jù)不平衡問題是數(shù)據(jù)挖掘中的一個(gè)難點(diǎn),該問題是指在數(shù)據(jù)集中某一類的實(shí)例數(shù)量遠(yuǎn)遠(yuǎn)少于其他類的實(shí)例數(shù)量的情況,其中實(shí)例數(shù)較多的稱為多數(shù)類(負(fù)類),實(shí)例數(shù)較少的稱為少數(shù)類(正類),多數(shù)類和少數(shù)類數(shù)量的比例稱為不平衡比率.傳統(tǒng)的機(jī)器學(xué)習(xí)算法,如SVM[1-2]、決策樹[3]、KNN[4]等都是假定數(shù)據(jù)集是在平衡的情況下進(jìn)行分類的.而在現(xiàn)實(shí)生活中,許多領(lǐng)域都存在不平衡數(shù)據(jù),如信用卡詐騙[5]、蛋白質(zhì)分類[6]、故障診斷[7]和癌癥診斷[8]等.若使用傳統(tǒng)的機(jī)器學(xué)習(xí)分類算法,在處理不平衡數(shù)據(jù)集時(shí)會(huì)為了追求較高的準(zhǔn)確率而導(dǎo)致分類算法偏向于負(fù)類.但是在二分類中,正類負(fù)類的錯(cuò)分代價(jià)往往是不同的,例如在信用卡詐騙中,將詐騙事件誤判為正常事件會(huì)導(dǎo)致不可預(yù)估的損失;在癌癥診斷中,將發(fā)病群體比較少的癌癥患者誤判成正常人,會(huì)導(dǎo)致病人錯(cuò)過最佳的治療時(shí)機(jī),嚴(yán)重的可能導(dǎo)致生命威脅.因此,研究高效的不平衡數(shù)據(jù)分類算法很有意義.
近年來,有許多國內(nèi)外學(xué)者對不平衡數(shù)據(jù)分類問題進(jìn)行了大量的研究.在處理不平衡數(shù)據(jù)分類問題時(shí),改進(jìn)方法主要包括兩個(gè)層面:數(shù)據(jù)預(yù)處理層面和分類算法層面.數(shù)據(jù)預(yù)處理層面也稱為數(shù)據(jù)平衡方法,通過對不平衡數(shù)據(jù)進(jìn)行采樣來改變數(shù)據(jù)樣本分布或消除不平衡性,其代表性的方法包括欠采樣、過采樣和混合采樣.分類算法層面是對現(xiàn)有的算法進(jìn)行修改,提高模型對少數(shù)類的識(shí)別能力,典型的算法包括代價(jià)敏感法、單類學(xué)習(xí)法和集成學(xué)習(xí)法.
Chawla等[9]提出了一種稱為SMOTE(synthetic minority oversampling technique)的過采樣算法,該算法不像隨機(jī)過采樣算法只是單純地復(fù)制或者簡單地旋轉(zhuǎn)來增加樣本個(gè)數(shù),而是通過合成新的、無重復(fù)的小樣本并進(jìn)行插值處理擴(kuò)充樣本數(shù)量,并且該方法沒有造成數(shù)據(jù)丟失.Pakrashi等[10]基于一種訓(xùn)練多類集成分類模型的新視角,利用卡爾曼濾波器的傳感器融合特性,將多個(gè)獨(dú)立的多類分類器組合在一起,構(gòu)建了多類集成分類算法.Chawla等[11]在SMOTE的基礎(chǔ)上,將SMOTE與AdaBoost結(jié)合,提出了SMOTEBoost算法,該算法從少數(shù)類中合成實(shí)例從而間接改變權(quán)重,進(jìn)一步地提升了分類模型的性能,但是如果原始數(shù)據(jù)集的不平衡率比較高,使用過采樣算法得到最理想的平衡數(shù)據(jù)集(不平衡率為1∶1)時(shí),生成的假樣本會(huì)更多,會(huì)導(dǎo)致數(shù)據(jù)集樣本數(shù)量特別大,從而拖慢算法運(yùn)行速度.Seiffert等[12]基于SMOTEBoost算法,提出了一種基于隨機(jī)欠采樣和boosting結(jié)合的混合算法,稱為RUSBoost,隨機(jī)欠采樣隨機(jī)刪除大多數(shù)實(shí)例以形成平衡的數(shù)據(jù)集,但是由于隨機(jī)欠采樣的局限性,得到的數(shù)據(jù)集可能會(huì)丟失一部分多數(shù)類中的有用信息.Rayhan等[13]提出了一種基于聚類的欠采樣和Adaboost結(jié)合的算法,稱為CUSBoost,該算法將原始數(shù)據(jù)集分為多數(shù)類和少數(shù)類,并使用k-means聚類算法將多數(shù)類分成多個(gè)簇,然后通過隨機(jī)選擇50%的實(shí)例對多數(shù)類進(jìn)行欠采樣,達(dá)到在欠采樣的情況下盡可能地保留多數(shù)類有用信息.Ahmed等[14]將欠采樣和過采樣算法結(jié)合起來,提出了RSYNBagging算法,該算法在奇數(shù)次迭代的過程中使用隨機(jī)欠采樣算法,在偶數(shù)次迭代中使用ADASYN過采樣算法,并使用集成學(xué)習(xí)中的Bagging算法進(jìn)行投票得到分類結(jié)果.Elyan等[15]提出了CDSMOTE算法,該算法使用k-means聚類算法將多數(shù)類分為多個(gè)簇,然后將少數(shù)類樣本應(yīng)用SMOTE算法來平衡數(shù)據(jù)集,避免了信息丟失,但是由于分類器較為單一,沒有達(dá)到好的效果.上述方法雖然都在一定程度上提高了不平衡數(shù)據(jù)的分類性能,但是會(huì)存在數(shù)據(jù)丟失或者數(shù)據(jù)量過大等問題.
針對這些問題,本文提出了一種基于DBSCAN聚類分解和過采樣的隨機(jī)森林不平衡數(shù)據(jù)分類算法,該算法通過將不平衡數(shù)據(jù)集分為多數(shù)類和少數(shù)類,先將DBSCAN算法應(yīng)用于多數(shù)類進(jìn)行聚類,將多數(shù)類分解為多個(gè)子類,然后使用Borderline-SMOTE過采樣算法對少數(shù)類數(shù)據(jù)進(jìn)行處理,最后將這個(gè)方法和隨機(jī)森林結(jié)合起來.經(jīng)實(shí)驗(yàn)驗(yàn)證,該算法能有效地提升不平衡數(shù)據(jù)的分類效果.
DBSCAN[16](density-based spatial clustering of applications with noise)是一種基于密度的聚類算法,它的目的是發(fā)現(xiàn)任意形狀的簇,參數(shù)描述了領(lǐng)域的樣本分布緊密程度,其中定義了密度的領(lǐng)域半徑,定義了核心點(diǎn)的閾值.
當(dāng)設(shè)定eps和MinPts=5之后,算法原理如圖1所示.該算法選定某個(gè)核心對象(圖中黃色點(diǎn)),不斷向密度可達(dá)的區(qū)域擴(kuò)張,由密度可達(dá)的關(guān)系導(dǎo)出最大密度相連的樣本集合,這個(gè)集合就是一個(gè)簇.
圖1 DBSCAN算法原理圖
Borderline-SMOTE[17]是一種改進(jìn)的SMOTE算法.如圖2所示,該算法將少數(shù)類樣本按邊界分為三類,周圍一半以上是少數(shù)類樣本的稱為Safe,一半以下是少數(shù)類樣本的稱為Danger,周圍沒有少數(shù)類樣本的稱為Noise.由于Safe群體被誤分可能較小,而Danger群體被誤分可能很大,所以Borderline-SMOTE算法只對Danger群體樣本進(jìn)行采樣處理.
圖2 少數(shù)類樣本邊界劃分Fig.2 Minority sample boundary division
本文提出一種基于密度的聚類分解技術(shù)和過采樣技術(shù)相結(jié)合的隨機(jī)森林不平衡數(shù)據(jù)分類算法,通過將DBSCAN算法應(yīng)用于不平衡數(shù)據(jù)集,來對數(shù)據(jù)集中多數(shù)類進(jìn)行聚類分解,將多數(shù)類劃分為多個(gè)子類,以降低多數(shù)類在數(shù)據(jù)集中的優(yōu)勢;然后使用過采樣技術(shù),增加少數(shù)類的個(gè)數(shù),提高少數(shù)類在數(shù)據(jù)集中的優(yōu)勢.對于不平衡數(shù)據(jù)集A,先將其分解為數(shù)據(jù)集Ac,然后計(jì)算類分解之后類別的平均值,如果少數(shù)類數(shù)據(jù)個(gè)數(shù)仍然少于平均值個(gè)數(shù),再使用過采樣算法,以重新評估分解后的數(shù)據(jù)集Ac,且使用過采樣算法后,會(huì)創(chuàng)建一個(gè)新的數(shù)據(jù)集Aco,這個(gè)新數(shù)據(jù)集是類分解和過采樣之后的結(jié)果,最后將隨機(jī)森林分類技術(shù)應(yīng)用于數(shù)據(jù)集Aco.基于DBSCAN聚類分解和過采樣的隨機(jī)森林不平衡數(shù)據(jù)分類流程圖如圖3所示.
圖3 基于DBSCAN聚類分解和過采樣的隨機(jī)森林不平衡數(shù)據(jù)分類算法流程圖
通過DBSCAN聚類分解和過采樣方法得到平衡數(shù)據(jù)集,再建立隨機(jī)森林分類模型,設(shè)隨機(jī)森林分類模型規(guī)模為t,則具體步驟如下:
輸入:不平衡樣本集A,隨機(jī)森林決策樹數(shù)量t.
輸出:分類結(jié)果.
Step1:對樣本集A中多數(shù)類negative=(n1,n2,…,nm)使用DBSCAN聚類算法,最終劃分為簇c1,c2,…,cn.
Step2:計(jì)算簇c1,c2,…,cn的平均值,若少數(shù)類樣本數(shù)量大于平均值,則轉(zhuǎn)至Step5;若少數(shù)類樣本數(shù)量小于平均值,則選取最接近平均值的一個(gè)子類作為過采樣數(shù)量標(biāo)準(zhǔn),計(jì)算少數(shù)類樣本個(gè)數(shù)pnum,多數(shù)類子類樣本個(gè)數(shù)nnum.
Step3:對少數(shù)類按邊界劃分為Safe樣本、Danger樣本、Noise樣本,將Danger樣本記為{p′1,p′2,…,p′a},樣本個(gè)數(shù)記為dnum.計(jì)算Danger樣本中每個(gè)樣本p′i與少數(shù)類positive的k近鄰,根據(jù)nnum和pnum的比例設(shè)置一個(gè)采樣比例以確定采樣倍率N,根據(jù)采樣倍率N隨機(jī)選擇s個(gè)k近鄰與樣本p′i進(jìn)行線性插值,合成少數(shù)樣本pnew:
pnew=p′i+rand(0,1)×dj(j=1,2,…,s)
(1)
其中:dj代表p′i與其s個(gè)k近鄰的距離.
Step4:將合成少數(shù)樣本加入原本的少數(shù)類中,構(gòu)成新的少數(shù)類positive-c1.
Step5:將多數(shù)類子集和少數(shù)類數(shù)據(jù)集共同合成一個(gè)新的平衡數(shù)據(jù)集Aco.
Step6:計(jì)算新的平衡數(shù)據(jù)集Aco樣本個(gè)數(shù)N,利用Bootstrap有放回地隨機(jī)抽取N次,生成和原訓(xùn)練集樣本個(gè)數(shù)相同的子訓(xùn)練集,這個(gè)過程重復(fù)t次,得到t個(gè)子訓(xùn)練集,構(gòu)建t棵分類決策樹.
Step7:分裂時(shí)從訓(xùn)練樣本的R個(gè)特征中隨機(jī)選擇r個(gè)特征個(gè)數(shù)(r Step8:使用生成的t棵決策樹組成隨機(jī)森林,最終的輸出結(jié)果由每個(gè)決策樹的分類結(jié)果投票決定. 聚類分解是將聚類算法應(yīng)用于數(shù)據(jù)集上,將數(shù)據(jù)集中的同一類數(shù)據(jù)分為一組,以分解為多個(gè)子集,其目的主要有兩個(gè),一是降低多數(shù)類的優(yōu)勢,二是不會(huì)產(chǎn)生任何的數(shù)據(jù)信息丟失.當(dāng)今流行的方法是使用k-means算法對數(shù)據(jù)集進(jìn)行聚類,但是該方法易受噪聲的干擾.針對這個(gè)問題,本文使用了對噪聲不敏感的DBSCAN聚類算法,將該算法應(yīng)用于數(shù)據(jù)集的多數(shù)類上,來生成多個(gè)多數(shù)類子類,從而減少了異常值對模型的影響,并且不用像k-means算法那樣預(yù)先設(shè)置k值. 應(yīng)用聚類分解之后,其結(jié)果如圖4所示,圖4a表示二分類不平衡數(shù)據(jù)集的原始數(shù)據(jù)分布,圖4b表示使用DBSCAN聚類分解之后的數(shù)據(jù)分布.圖4a和圖4b中是相同的數(shù)據(jù)集,但是集群分布不同.通過聚類分解之后,將negative類別分解為negative-c1、negative-c2等(圖4b中分別用c1、c2等表示),這樣,就可以在保留所有數(shù)據(jù)信息的同時(shí)改變數(shù)據(jù)集的分布. 圖4 聚類分解應(yīng)用于不平衡數(shù)據(jù)集 二進(jìn)制分類任務(wù)如下式所示: h(X):X→Y (2) 在h(X)中,將每個(gè)實(shí)例xi映射到y(tǒng)i∈{N,P}.在使用聚類分解之后,得到一個(gè)新的分類任務(wù)h′(X): h′(X):X→Y′ (3) 將每個(gè)實(shí)例xi映射到y(tǒng)′i∈{Nc1,Nc2,Nc3,…,P}.轉(zhuǎn)換數(shù)據(jù)可以將負(fù)類N聚類成多個(gè)子類,有效地降低了負(fù)類N在數(shù)據(jù)集中的主導(dǎo)地位,這也意味著通過聚類分解方法,將原始的二進(jìn)制分類問題轉(zhuǎn)化成了多分類問題. 由于樣本的分布緊密程度不盡相同,在應(yīng)用DBSCAN聚類分解算法以后,從原始的多數(shù)類實(shí)例中可能會(huì)產(chǎn)生新的多數(shù)類或少數(shù)類,所以,需要計(jì)算少數(shù)類的樣本數(shù)量是否超過多數(shù)類子類的平均樣本數(shù),如果沒有超過,則需對少數(shù)類進(jìn)行過采樣. 當(dāng)今最流行的過采樣算法是Chawla提出的SMOTE算法,SMOTE算法通過特征空間而不是數(shù)據(jù)空間來使用k近鄰算法進(jìn)行生成合成實(shí)例,有多位學(xué)者[18]驗(yàn)證了該算法在不平衡數(shù)據(jù)上得到了不錯(cuò)的效果.但是使用SMOTE算法生成的樣例可能會(huì)出現(xiàn)樣本重疊、噪聲等問題[19],為了避免這些問題,本文采用Borderline-SMOTE算法來進(jìn)行過采樣處理,它只對Danger群體的邊界樣本進(jìn)行過采樣處理,這樣可以很好地避免少數(shù)類中的噪聲問題,并且降低了少數(shù)類樣本中的類內(nèi)不平衡問題的影響. Borderline-SMOTE算法和SMOTE算法一樣需要選擇一個(gè)多數(shù)類和一個(gè)少數(shù)類作為輸入,多數(shù)類的樣本數(shù)量是對少數(shù)類樣本合成數(shù)量的參考標(biāo)準(zhǔn).在本文中,選擇使用最接近平均值線的多數(shù)類子類樣本作為Borderline-SMOTE的多數(shù)類輸入,例如在圖4b中,被選用的多數(shù)類子類為negative-c1.使用過采樣方法的目的是增加少數(shù)類樣本數(shù)量,進(jìn)一步減少不平衡比率,降低多數(shù)類優(yōu)勢,使正負(fù)兩類趨于平衡,提高少數(shù)類樣本的分類精度. 集成學(xué)習(xí)的原理是將多個(gè)弱分類器結(jié)合起來,以獲得比單一弱分類器更好的結(jié)果,最常用的集成學(xué)習(xí)算法分為Boosting和Bagging.隨機(jī)森林[20]是Bagging算法的變體,是一種包含多個(gè)決策樹的集成算法,它訓(xùn)練樣本時(shí)采用Bootstrap技術(shù),從原始數(shù)據(jù)集中有放回地隨機(jī)抽取N個(gè)樣本作為一棵樹的訓(xùn)練集,每次隨機(jī)選擇訓(xùn)練樣本特征中的一部分構(gòu)建決策樹,每棵決策樹訓(xùn)練生長過程中不進(jìn)行剪枝,最后采用投票的方式?jīng)Q定分類器最終的結(jié)果.由于隨機(jī)森林的隨機(jī)性,避免了過擬合的風(fēng)險(xiǎn),提高了分類準(zhǔn)確率[21]. 本文實(shí)驗(yàn)是在Windows10系統(tǒng)、AMD 7-4800處理器、NVIDIA GTX 1650ti顯卡、16GB內(nèi)存的計(jì)算機(jī)上進(jìn)行,編程語言為Python,使用PyCharm平臺(tái)實(shí)現(xiàn). 本文使用KEEL公共數(shù)據(jù)庫(http://www.keel.es)[22]中的36個(gè)數(shù)據(jù)集,這些數(shù)據(jù)集全都常用于不平衡數(shù)據(jù)分類中.如表1所列,每個(gè)數(shù)據(jù)集具有不同的不平衡比率、不同的實(shí)例數(shù)量、不同特征的二分類數(shù)據(jù)集. Glass數(shù)據(jù)集的屬性有9個(gè),屬性名稱分別為RI、Na、Mg、Al、Si、K、Ca、Ba、Fe.Glass0是Glass數(shù)據(jù)集的一個(gè)版本,其中第0類屬于正類,其余屬性屬于負(fù)類;Glass2中第2類屬于正類,其余屬性屬于負(fù)類;Glass-0-1-2-3_vs_4-5-6中0、1、2、3類屬于正類,4、5、6類屬于負(fù)類. Yeast是一個(gè)酵母菌數(shù)據(jù)集,用于預(yù)測酵母菌蛋白質(zhì)的定位位點(diǎn).在yeast數(shù)據(jù)集中屬性有8個(gè),屬性名稱分別為Mcg、Gvh、Alm、Mit、Erl、Pox、Vac、Nuc.Yeast1中Nuc屬于正類,其余屬性屬于負(fù)類;Yeast-1-2-8-9_vs_7中Vac屬于正類,Nuc、Cyt、Pox、Erl類屬于負(fù)類;Yeast-1_vs_7中Pox屬性已被刪除,Vac屬于正類,Nuc屬于負(fù)類. 表1 數(shù)據(jù)集 不平衡數(shù)據(jù)分類的難點(diǎn)不只體現(xiàn)在分類模型的訓(xùn)練上,還體現(xiàn)在如何正確地評價(jià)不平衡分類模型的性能上.在不平衡數(shù)據(jù)處理中,因?yàn)椴黄胶鈹?shù)據(jù)中多數(shù)類和少數(shù)類具有不同的錯(cuò)分代價(jià),少數(shù)類的錯(cuò)分可能帶來比較嚴(yán)重的后果,即便總體準(zhǔn)確率較高,但并不代表分類模型是有效的,因此傳統(tǒng)評價(jià)指標(biāo)不能很好地反映分類模型的性能好壞. 對于不平衡數(shù)據(jù)的分類性能評價(jià),有相關(guān)學(xué)者在混淆矩陣的基礎(chǔ)上,提出了F-measure、G-mean等一系列評價(jià)標(biāo)準(zhǔn).混淆矩陣如表2所列. 表2 混淆矩陣 相關(guān)評估指標(biāo)如下: Precision表示精確率,也稱為查準(zhǔn)率,表示預(yù)測為正類的樣本中真正的正類樣本所占的比例,其公式為 (4) Recall表示召回率,也稱為查全率,表示正類樣本中被預(yù)測正確的樣本所占的比例,公式為 (5) F-measure也稱為F-score,是可以兼顧精確率和召回率的最佳組合,公式為 (6) 其中:β為參數(shù),當(dāng)β=1時(shí),稱為F1值. G-mean也稱為G均值,是一種衡量數(shù)據(jù)集整體分類性能的綜合評價(jià)指標(biāo),如下式所示: (7) ROC曲線(receiver operating characteristic curve)是表示以假陽性率(FPR)為橫軸和以真陽性率(TPR)為豎軸的曲線,曲線越靠近坐標(biāo)軸左上角代表分類器性能越好.ROC曲線與坐標(biāo)軸圍成的面積被稱為AUROC(area under the receiver operating characteristic curve)值,AUROC值越大,代表分類器性能越好.假陽性率和真陽性率公式如下: (8) (9) 為驗(yàn)證本文所提算法(DBSRF)的有效性,使用Precision、Recall、F1Score、AUROC、G-mean 5個(gè)評價(jià)指標(biāo)對數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證.在實(shí)驗(yàn)中,DBSCAN算法敏感參數(shù)設(shè)定為eps=0.5,MinPts=5;SMOTE、Borderline-SMOTE、ADASYN算法近鄰數(shù)k設(shè)置為5;Borderline-SMOTE算法中最近鄰參數(shù)m設(shè)置為10;Adaboost、Bagging、隨機(jī)森林(RF)使用C4.5決策樹作為基分類器,集成學(xué)習(xí)的n_estimators設(shè)置為50,n_estimators在Adaboost和Bagging中代表迭代次數(shù),在隨機(jī)森林代表生成的決策樹數(shù)量.數(shù)據(jù)集按照70%和30%的比率分為訓(xùn)練集和測試集,實(shí)驗(yàn)進(jìn)行五倍交叉驗(yàn)證訓(xùn)練. 3.3.1不同過采樣方法對比 為證明所選過采樣方法的有效性,在DBSCAN聚類分解和隨機(jī)森林分類框架的前提下,使用不同的過采樣方法對數(shù)據(jù)集進(jìn)行處理,其中對比的過采樣方法有SMOTE、Borderline-SMOTE和ADASYN.ADASYN[23]算法對不同的少數(shù)類樣本賦予不同的權(quán)重,從而生成不同數(shù)量的樣本,其中較難學(xué)習(xí)的少數(shù)類樣本比容易學(xué)習(xí)的少數(shù)類樣本產(chǎn)生更多的合成數(shù)據(jù),因此,ADASYN算法在減少類不平衡的同時(shí),將分類決策邊界向較難學(xué)習(xí)的少數(shù)類方向移動(dòng). 在KEEL數(shù)據(jù)集中選取6組不平衡數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,其結(jié)果如表3所列.由表3可知,Borderline-SMOTE在6組數(shù)據(jù)集中,有4組數(shù)據(jù)集在五個(gè)指標(biāo)中全優(yōu),這是因?yàn)樵撍惴▋H使用邊界上的少數(shù)類樣本來合成新樣本,減少了噪聲的干擾. 3.3.2與基于Adaboost和Bagging算法的對比 為驗(yàn)證本文數(shù)據(jù)預(yù)處理方法的有效性,將聚類分解過采樣部分與Adaboost和Bagging分別結(jié)合. LIUBoost[24]是將代價(jià)敏感和欠采樣結(jié)合,并與Adaboost結(jié)合的混合算法,首先使用欠采樣方法來平衡數(shù)據(jù)集,同時(shí)保留有關(guān)實(shí)例局部特征的重要信息,并將該信息合并到Adaboost的權(quán)重更新方程中,最大限度地減少了欠采樣帶來的信息損失.本文提出算法使用Adaboost分類器時(shí),對比RUSBoost和LIUBoost算法,性能指標(biāo)使用AUROC.其五次平均分?jǐn)?shù)如表4所列,在驗(yàn)證的17個(gè)數(shù)據(jù)集中10個(gè)表現(xiàn)最優(yōu).由于篇幅限制,在表4中只列出隨機(jī)選取的10個(gè)數(shù)據(jù)集的結(jié)果. 表3 不同過采樣方法的性能對比 表4 不同數(shù)據(jù)預(yù)處理方法與Adaboost結(jié)合的AUROC值對比 UnderBagging是一種基于Bagging的隨機(jī)欠采樣算法,數(shù)據(jù)預(yù)處理部分僅對原始數(shù)據(jù)集進(jìn)行欠采樣;SMOTEBagging將SMOTE過采樣算法應(yīng)用在少數(shù)類上并與Bagging結(jié)合,顯示出了更高的分類精度;ADASYNBagging類似于SMOTEBagging,將ADASYN應(yīng)用于少數(shù)類實(shí)例,為較難分類的少數(shù)類實(shí)例生成更多的合成樣本,同時(shí)使用Bagging保持多數(shù)類實(shí)例不受影響,該方法保持了采樣率的固定,并且不需要額外的參數(shù)調(diào)整.本文提出算法使用Bagging分類器時(shí),與四種基于Bagging的算法進(jìn)行對比,性能指標(biāo)使用AUROC.其五次平均分?jǐn)?shù)如表5所列,在驗(yàn)證的10個(gè)數(shù)據(jù)集中9個(gè)表現(xiàn)最優(yōu). 表5 不同數(shù)據(jù)預(yù)處理方法與Bagging結(jié)合的AUROC值對比 這可以驗(yàn)證本文提出的算法在處理不平衡問題時(shí)是有效的,優(yōu)勢在于聚類分解可以降低多數(shù)類優(yōu)勢,并只對少數(shù)類邊界樣本進(jìn)行過采樣,減少了噪聲的干擾,提高了分類模型的性能. 3.3.3不同分類器對比 為驗(yàn)證分類器在聚類分解和過采樣方法前提下的有效性,將本文所提出的DBSCAN聚類分解和Borderline-SMOTE方法對不平衡數(shù)據(jù)集進(jìn)行處理,再使用5種不同的分類器對處理過的數(shù)據(jù)集進(jìn)行訓(xùn)練學(xué)習(xí),得到分類結(jié)果,其中所選分類器有SVM、Adaboost、Bagging、XGBoost和隨機(jī)森林(RF).SVM在處理小樣本高維度的數(shù)據(jù)時(shí)占有優(yōu)勢;Adaboost不改變訓(xùn)練數(shù)據(jù),迭代時(shí)提升錯(cuò)分樣本權(quán)重;在Bagging中只取初始訓(xùn)練樣本中的一部分來訓(xùn)練,再對分類任務(wù)使用簡單投票法;XGBoost考慮了訓(xùn)練數(shù)據(jù)為稀疏值的情況,可以自動(dòng)學(xué)習(xí)出它的分裂方向;隨機(jī)森林在訓(xùn)練過程中加入了隨機(jī)屬性選擇.此實(shí)驗(yàn)的目的是在聚類分解和過采樣的前提下選擇最合適的分類器. 在驗(yàn)證的13個(gè)數(shù)據(jù)集中有10個(gè)數(shù)據(jù)集4個(gè)指標(biāo)結(jié)果最優(yōu)、1個(gè)數(shù)據(jù)集3個(gè)指標(biāo)結(jié)果最優(yōu).由于篇幅限制,在表6中只列出了其中4個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果.由此可以看出,在本文數(shù)據(jù)預(yù)處理的前提下,隨機(jī)森林分類器比SVM、Adaboost、Bagging、XGBoost的分類性能表現(xiàn)更好. 表6 DBSCAN聚類分解和過采樣前提下的不同分類算法的結(jié)果 3.3.4 與基于隨機(jī)森林的算法對比 為了驗(yàn)證分類性能,選取使用隨機(jī)森林分類的方法進(jìn)行對比,其中分為兩部分,一部分是欠采樣與隨機(jī)森林結(jié)合的算法對比,另一部分是過采樣與隨機(jī)森林結(jié)合的算法對比. 與欠采樣部分中的對比算法有三種,分別為:(1) 傳統(tǒng)隨機(jī)森林算法(RF),該算法直接采用Bootstrap對不平衡數(shù)據(jù)集隨機(jī)抽樣形成訓(xùn)練樣本;(2) 隨機(jī)欠采樣與隨機(jī)森林結(jié)合算法(URF),該算法對多數(shù)類樣本進(jìn)行隨機(jī)欠采樣,再與少數(shù)類樣本混合形成訓(xùn)練樣本;(3)k-means聚類算法欠采樣與隨機(jī)森林結(jié)合算法(CUSRF)[25],該算法對多數(shù)類樣本進(jìn)行聚類形成多個(gè)簇,再對每個(gè)簇進(jìn)行隨機(jī)欠采樣,與少數(shù)類樣本混合形成訓(xùn)練樣本.在驗(yàn)證的8個(gè)數(shù)據(jù)集中有5個(gè)數(shù)據(jù)集表現(xiàn)最優(yōu),其中shuttle-c2-vs-c4數(shù)據(jù)集中4個(gè)指標(biāo)全為1.由于篇幅限制,在表7中只列出了其中4個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果. 與過采樣部分中對比的算法分別為:(1) SMOTE與隨機(jī)森林結(jié)合算法(SM+RF);(2) 加權(quán)SMOTE與隨機(jī)森林結(jié)合(WSM+RF),該算法在SMOTE算法中讓靠近類別中心和邊界的樣本生成更多的假樣本數(shù)量;(3) SMOTE與加權(quán)隨機(jī)森林(SM+WRF),該算法在決策樹訓(xùn)練階段,給每棵樹賦予一個(gè)權(quán)重;(4) 加權(quán)SMOTE與加權(quán)隨機(jī)森林結(jié)合(WSM+WRF)[26],該算法先對少數(shù)類樣本進(jìn)行加權(quán)過采樣,然后在分類階段增加分類效果好的決策樹權(quán)重.G-mean值如圖5所示,從圖5可以看到,本文算法在驗(yàn)證的數(shù)據(jù)集中G-mean值全部最優(yōu). 表7 欠采樣策略與隨機(jī)森林結(jié)合方法與本文方法的綜合性能對比 圖5 過采樣策略與隨機(jī)森林結(jié)合方法與本文方法的G-mean值對比Fig.5 Comparison of the G-mean value between the combination of oversampling strategy and random forest method and the method in this paper 本文針對不平衡數(shù)據(jù)提出了一種基于DBSCAN聚類算法對多數(shù)類分解和Borderline-SMOTE對少數(shù)類進(jìn)行過采樣的隨機(jī)森林不平衡數(shù)據(jù)分類算法,該算法在不損失多數(shù)類樣本數(shù)據(jù)信息的前提下降低了多數(shù)類在數(shù)據(jù)集中的優(yōu)勢,并通過過采樣方法增加少數(shù)類實(shí)例,進(jìn)一步降低了不平衡率,從而改進(jìn)了結(jié)果.經(jīng)實(shí)驗(yàn)證明,對于不同不平衡率、不同樣本數(shù)量的數(shù)據(jù)集,本文算法與當(dāng)前流行不平衡數(shù)據(jù)處理方法對比,結(jié)果顯示本文算法有效地提高了不平衡數(shù)據(jù)分類性能.下一步將考慮如何減少對聚類結(jié)果的依賴,并對大數(shù)據(jù)集中的不平衡問題進(jìn)行研究.2.1 聚類分解
2.2 少數(shù)類過采樣
2.3 隨機(jī)森林
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)數(shù)據(jù)
3.2 評價(jià)指標(biāo)
3.3 實(shí)驗(yàn)結(jié)果
4 結(jié)論