羅計(jì)根,杜建強(qiáng),聶 斌,李 歡,聶建華,陳裕鳳
1.江西中醫(yī)藥大學(xué) 計(jì)算機(jī)學(xué)院,南昌330004
2.江西中醫(yī)藥大學(xué) 中醫(yī)學(xué)院,南昌330004
不平衡數(shù)據(jù)集一般是指不同類(lèi)別下的數(shù)據(jù)量有較大的差異,小類(lèi)樣本的數(shù)量非常少,或者相對(duì)大類(lèi)樣本來(lái)說(shuō),小類(lèi)樣本的數(shù)量較少。不平衡數(shù)據(jù)的分類(lèi)問(wèn)題具有非常重要的現(xiàn)實(shí)意義,在銀行信用卡欺詐檢測(cè)、醫(yī)學(xué)癌癥檢測(cè)等方面都有重要應(yīng)用[1],是機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域的研究熱點(diǎn)。目前,常用的分類(lèi)算法大多數(shù)是基于平衡數(shù)據(jù)考慮的,面對(duì)不平衡數(shù)據(jù)的分類(lèi)時(shí),這些分類(lèi)算法可能有較高的分類(lèi)準(zhǔn)確率,但對(duì)小類(lèi)樣本的識(shí)別能力相對(duì)較差。
為了能夠在不平衡的數(shù)據(jù)集上有較好的分類(lèi)效果,國(guó)內(nèi)外的學(xué)者主要從數(shù)據(jù)預(yù)處理、分類(lèi)算法改進(jìn)等方面展開(kāi)了研究[2]。數(shù)據(jù)預(yù)處理主要是對(duì)不平衡數(shù)據(jù)進(jìn)行處理,使類(lèi)別之間的數(shù)據(jù)樣本達(dá)到某種平衡,采用的策略包括過(guò)采樣(Over-Sampling)[3]和欠采樣(Under-Sampling)[4]兩種方法。
在過(guò)采樣方法中,較為成熟的是Chawla等人[5]提出的小類(lèi)樣本合成重采樣技術(shù)(Synthetic Minority Oversampling Technique,SMOTE)算法。該方法通過(guò)在相同類(lèi)的連線(xiàn)上隨機(jī)構(gòu)造不重復(fù)的樣本,減少分類(lèi)器的過(guò)擬合,但SMOTE算法很難有效控制樣本數(shù)據(jù)和樣本類(lèi)別。對(duì)此,學(xué)者相繼進(jìn)行了改進(jìn),Han 等人[6]提出Borderline-SMOTE 算法,該方法的主要思想是尋找邊界區(qū)域后插值,使生成的樣本更有效,但無(wú)法找出全部的邊界點(diǎn)。Bunkhumpornpat 等人[7]在Borderline-SMOTE 基礎(chǔ)上進(jìn)行改進(jìn),提出計(jì)算小類(lèi)樣本的安全水平(Safe-level-SMOTE),但該方法容易過(guò)擬合。國(guó)內(nèi)學(xué)者提出利用空間結(jié)構(gòu)信息的N-SMOTE 過(guò)抽樣算法[8]、核SMOTE[9]等。文獻(xiàn)[10]提出根據(jù)聚類(lèi)獲得的樣本中心進(jìn)行插值的算法。文獻(xiàn)[11]提出將模糊最近鄰和SMOTE算法結(jié)合,分類(lèi)效果有所改善。近期,文獻(xiàn)[12]提出噪聲濾波SMOTE算法,加入馬氏距離的MDO算法等[13]。馬驪等人[14]提出CURE-SMOTE,針對(duì)SMOTE 的缺點(diǎn)進(jìn)行改進(jìn)。SMOTE 算法的改進(jìn)較多,但是至今沒(méi)有較為完善的方法。
欠采樣是隨機(jī)性減少大類(lèi)樣本數(shù)量,該方法思想簡(jiǎn)單,操作容易,但存在去除樣本的盲目性和去除樣本比例參數(shù)不確定性等問(wèn)題,并且由于代表性樣本的丟失而影響分類(lèi)精度。其中,Tomek[15]提出了Tomek Links 方法,能夠去除噪音數(shù)據(jù)和邊緣數(shù)據(jù),但是該方法計(jì)算復(fù)雜度較大。Wilson等人[16]提出了改進(jìn)的Tomek Links方法,使用歐氏距離來(lái)計(jì)算類(lèi)間距離,減少計(jì)算量,并且生成新的數(shù)據(jù)集。Hart[17]提出壓縮近鄰法來(lái)精簡(jiǎn)多數(shù)類(lèi)樣本。郭穎婕等人[18]提出了一種利用隨機(jī)森林分類(lèi)器和K-Means 聚類(lèi)降采樣方法的抗性基因識(shí)別算法。該方法通過(guò)將大量樣本聚類(lèi),從每個(gè)簇中選擇單個(gè)樣本與小類(lèi)樣本合并形成平衡樣本集,但該方法僅使用每個(gè)簇的聚類(lèi)中心,一定程度上降低了訓(xùn)練樣本的多樣性,且只能針對(duì)連續(xù)型樣本。
為解決隨機(jī)森林分類(lèi)效果受樣本集類(lèi)間不平衡、類(lèi)內(nèi)不規(guī)則的影響,并提高訓(xùn)練樣本的多樣性,本文提出一種聚類(lèi)欠采樣策略的隨機(jī)森林優(yōu)化方法(Random Forest Optimization Method Based on Cluster Under-Sampling Strategy,CUSRF)。該方法利用聚類(lèi)方法對(duì)大類(lèi)樣本聚類(lèi),形成與小類(lèi)樣本個(gè)數(shù)相同的簇類(lèi)數(shù),從每個(gè)簇中有放回隨機(jī)抽取單個(gè)樣本與小類(lèi)樣本形成平衡樣本集,再利用有放回抽樣方法從平衡樣本集中抽取單棵決策樹(shù)的訓(xùn)練集;重復(fù)該過(guò)程多次,直至構(gòu)建完隨機(jī)森林。該方法利用K-Modes和K-Means聚類(lèi)方法分別對(duì)離散型和連續(xù)型數(shù)據(jù)聚類(lèi),并結(jié)合隨機(jī)森林強(qiáng)大的分類(lèi)能力,解決樣本類(lèi)間不平衡與類(lèi)內(nèi)不規(guī)則的問(wèn)題,使得訓(xùn)練樣本集更具多樣性,提高算法的分類(lèi)能力。
本文提出的基于聚類(lèi)欠采樣策略的隨機(jī)森林優(yōu)化方法一共分成兩部分:
(1)利用聚類(lèi)算法對(duì)原始大類(lèi)樣本聚類(lèi)。針對(duì)離散型和連續(xù)型數(shù)據(jù)的非平衡數(shù)據(jù)集,分別采用K-Modes聚類(lèi)方法[19]和K-Means 聚類(lèi)方法[20]對(duì)其聚成k 個(gè)子類(lèi)簇,從每個(gè)子類(lèi)簇中有放回地隨機(jī)抽取1 個(gè)樣本,則共抽取k 個(gè)樣本,將這k 個(gè)樣本與小類(lèi)樣本合并形成平衡樣本集。為了使大類(lèi)樣本和小類(lèi)樣本數(shù)量達(dá)到平衡,這里的k 為小類(lèi)樣本數(shù)量。此時(shí)平衡樣本集中的樣本個(gè)數(shù)為2k 個(gè),大類(lèi)樣本和小類(lèi)樣本的樣本比例為1∶1。
(2)對(duì)平衡樣本集的隨機(jī)森林構(gòu)建。對(duì)平衡樣本集采用有放回抽樣方法抽取2k 次,將抽取到的數(shù)據(jù)作為單棵決策樹(shù)的訓(xùn)練樣本集,并完成決策樹(shù)的構(gòu)建。
通過(guò)上述兩部分的介紹,本文提出的聚類(lèi)欠采樣策略的隨機(jī)森林優(yōu)化方法有兩處隨機(jī),從而提高了訓(xùn)練樣本的多樣性,能有效解決樣本不平衡給分類(lèi)帶來(lái)的準(zhǔn)確率低下的問(wèn)題。
針對(duì)不同的數(shù)據(jù)類(lèi)型,聚類(lèi)算法在選擇上也存在差異。對(duì)離散型數(shù)據(jù)而言,采用K-Modes聚類(lèi)方法,先確定聚類(lèi)個(gè)數(shù)k;然后隨機(jī)選擇k 個(gè)聚類(lèi)中心;計(jì)算每個(gè)樣本與這k 個(gè)聚類(lèi)中心的距離,將樣本劃分到與之距離最近的一個(gè)聚類(lèi)中心所在類(lèi)別中;當(dāng)所有樣本劃分完成之后,重新計(jì)算每個(gè)簇中的聚類(lèi)中心,不斷重復(fù),直到每個(gè)聚類(lèi)中心不再改變?yōu)橹?。在K-Modes 聚類(lèi)中,樣本到聚類(lèi)中心的距離不再使用普通的歐式距離,而是采用相異度公式來(lái)計(jì)算距離,具體計(jì)算公式如下所示:
其中,n 表示樣本特征個(gè)數(shù),x 表示任意待聚類(lèi)樣本,y表示任意聚類(lèi)中心。
對(duì)連續(xù)型數(shù)據(jù)而言,采用K-Means聚類(lèi)方法,該方法跟K-Modes 聚類(lèi)方法極為相似,只是在計(jì)算樣本到聚類(lèi)中心的距離使用的是歐式聚類(lèi),計(jì)算公式如下所示:
兩種聚類(lèi)算法思想如下所示。
輸入:數(shù)據(jù)集D,聚類(lèi)個(gè)數(shù)k。
輸出:k 個(gè)聚類(lèi)集合。
If 數(shù)據(jù)集為離散型
步驟1 隨機(jī)初始化k 個(gè)聚類(lèi)中心,分別為Ci(1,2,…,k);
步驟2 對(duì)于樣本xi(i=0,1,…,n-1),利用式(1)計(jì)算它到每個(gè)聚類(lèi)中心Ci的距離,將xi劃分到距離最小的簇;
步驟3 待數(shù)據(jù)集D 中樣本全部劃分完成之后,重新確定簇中心,向量Ci中的每一個(gè)分量都更新為簇i 中的眾數(shù);
步驟4 重復(fù)步驟2和步驟3,直到總距離(各個(gè)簇中樣本與各自簇中心距離之和)不再降低,返回最后的聚類(lèi)結(jié)果。
Else
步驟5 隨機(jī)初始化k 個(gè)聚類(lèi)中心,分別為Ci(1,2,…,k);
步驟6 對(duì)于樣本xi(i=0,1,…,n-1),利用式(3)計(jì)算它到每個(gè)聚類(lèi)中心Ci的距離,將xi劃分到距離最小的簇;
步驟7 待數(shù)據(jù)集D 中樣本全部劃分完成之后,重新確定簇中心,向量Ci中的每一個(gè)分量都更新為簇i 中的平均數(shù);
步驟8 重復(fù)步驟6和步驟7,直到總距離(各個(gè)簇中樣本與各自簇中心距離之和)不再降低,返回最后的聚類(lèi)結(jié)果。
End
隨機(jī)森林(Random Forest,RF)是一種經(jīng)典的集成學(xué)習(xí)模型,由多棵決策樹(shù)(Decision Tree,DT){h(x,Θk),k=1,2,…}構(gòu)成,其中參數(shù)集Θk是獨(dú)立并且同分布的隨機(jī)變量。隨機(jī)森林對(duì)數(shù)據(jù)采取有放回隨機(jī)抽樣方法產(chǎn)生訓(xùn)練樣本,假設(shè)數(shù)據(jù)集D 的樣本量為N,采用Bootstrap有放回抽樣時(shí),每個(gè)樣本沒(méi)有被抽取到的概率則為1-1/N ,通過(guò)抽取N 之后,單個(gè)樣本沒(méi)有被抽取到的概率為(1-1/N)N。只要樣本量N 足夠大,數(shù)據(jù)集D會(huì)留下約37%的樣本未被抽中,這部分稱(chēng)為袋外數(shù)據(jù)(Out Of Bag,OOB),其作用是模型評(píng)估。接著,訓(xùn)練樣本采用隨機(jī)抽樣的方法抽取特征子集,特征抽取個(gè)數(shù)一般為為數(shù)據(jù)維度。構(gòu)建完多棵決策樹(shù)后形成隨機(jī)森林,通過(guò)投票的方式得到測(cè)試樣本的最終結(jié)果。隨機(jī)森林算法思想如下所示。
輸入:數(shù)據(jù)集D。
輸出:袋外數(shù)據(jù)的類(lèi)別。
步驟1 對(duì)于第i 棵決策樹(shù),采用Bootstrap抽樣方法抽取樣本N 次,N 為數(shù)據(jù)集D 的樣本量大小,抽到的數(shù)據(jù)為訓(xùn)練集樣本,未抽取到的數(shù)據(jù)作為第i 棵決策樹(shù)的OOBi;
步驟2 利用訓(xùn)練集數(shù)據(jù)構(gòu)建決策樹(shù),每個(gè)節(jié)點(diǎn)分裂之前隨機(jī)選擇特征生成特征子集;
步驟3 構(gòu)建第i 棵決策樹(shù);
步驟4 利用第i 棵決策樹(shù)對(duì)OOBi進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果;
步驟5 重復(fù)步驟1到步驟4,直到構(gòu)建完隨機(jī)森林;
步驟6 采用投票的形式得到所有袋外數(shù)據(jù)的預(yù)測(cè)結(jié)果。
在隨機(jī)森林隨機(jī)抽取樣本時(shí),由于非平衡樣本中大類(lèi)樣本和小類(lèi)樣本數(shù)量相差較多,以致得到的訓(xùn)練樣本嚴(yán)重偏向大類(lèi)樣本,甚至沒(méi)有小類(lèi)樣本參與模型的訓(xùn)練,忽略了小樣本對(duì)模型的貢獻(xiàn)率,這樣訓(xùn)練出來(lái)的模型對(duì)小類(lèi)樣本的識(shí)別效果較差。為了能讓參與模型訓(xùn)練的樣本盡可能得平衡,需要從大類(lèi)樣本中抽取出能涵蓋大類(lèi)樣本所有信息的樣本數(shù)據(jù)。
聚類(lèi)方法通過(guò)距離計(jì)算的方式,將數(shù)據(jù)集中相近或者相似的樣本聚在同一個(gè)簇群中,從每個(gè)簇中隨機(jī)抽取一個(gè)樣本,該樣本既可以代替該簇中樣本,又可以平衡大類(lèi)和小類(lèi)樣本,使訓(xùn)練樣本達(dá)到平衡。具體樣本平衡過(guò)程如圖1所示。
通過(guò)聚類(lèi)方法得到平衡樣本集之后,建立隨機(jī)森林模型,設(shè)該隨機(jī)森林模型的規(guī)模為S。隨機(jī)森林優(yōu)化算法過(guò)程如下所示。
輸入:數(shù)據(jù)集D,隨機(jī)森林樹(shù)棵數(shù)S。
輸出:樣本測(cè)試結(jié)果y_pred。
步驟1 劃分大類(lèi)樣本A(a1,a2,…,an)和小類(lèi)樣本B(b1,b2,…,bk),小類(lèi)樣本總數(shù)k;
步驟2 大類(lèi)樣本共聚成k 簇{K1,K2,…,Kk};
步驟3 循環(huán)i,構(gòu)建S 棵決策樹(shù):從k 個(gè)簇{K1,K2,…,Kk}各自有放回隨機(jī)抽取一個(gè)樣本,形成具有k 個(gè)樣本的數(shù)據(jù)集(k1,k2,…,kk),剩下k 個(gè)簇未被抽中的樣本為OOB1*;
步驟4 將小類(lèi)樣本B(b1,b2,…,bk)和(k1,k2,…,kk)混合后將其順序打亂,使整個(gè)平衡樣本集的樣本個(gè)數(shù)為2k 個(gè)(b1,b2,…,bk,k1,k2,…,kk);
步驟5 對(duì)平衡樣本集(b1,b2,…,bk,k1,k2,…,kk)采用Bootstrape 抽樣方法一共抽取2k 次,抽中的樣本為單棵決策樹(shù)訓(xùn)練集train_datai,未抽中的為單棵決策樹(shù)的OOB2*,所形成的單棵決策樹(shù)的袋外數(shù)據(jù)OOBi=OOB1*+OOB2*;
圖1 樣本平衡過(guò)程
步驟6 隨機(jī)抽取訓(xùn)練集train_datai的特征子集,完成第i 棵treei的構(gòu)建;
步驟7 定義兩個(gè)臨時(shí)空間變量y_pred=[]和result=[];
步驟8 循環(huán)遍歷所有樣本,并且遍歷所有決策樹(shù)的隨機(jī)森林:如果樣本i 不在袋外數(shù)據(jù)OOBj中,則利用該棵決策樹(shù)測(cè)試該條樣本,得到預(yù)測(cè)結(jié)果resulti;
步驟9 遍歷隨機(jī)森林中所有決策樹(shù)之后得到result 集合,通過(guò)投票的方式得到樣本i 的預(yù)測(cè)結(jié)果y_predi;
步驟10 將所有的y_predi添加到預(yù)測(cè)的分類(lèi)結(jié)果中;
End
為了驗(yàn)證本文提出的基于聚類(lèi)欠采樣策略的隨機(jī)森林優(yōu)化方法對(duì)非平衡數(shù)據(jù)集的有效性,選取了KEEL數(shù)據(jù)集(https://sci2s.ugr.es/keel/datasets.php)中10 組不平衡數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證。10 組數(shù)據(jù)的具體信息如表1所示。
表1 10組數(shù)據(jù)的具體信息
由表1 看出,poker-9 數(shù)據(jù)集的不平衡率最高,達(dá)到29.50,反映了該數(shù)據(jù)集大類(lèi)樣本和小類(lèi)樣本相差懸殊,按正常的隨機(jī)抽樣方法建立隨機(jī)森林會(huì)導(dǎo)致模型嚴(yán)重偏向大類(lèi)樣本。
針對(duì)不平衡數(shù)據(jù)的分類(lèi)任務(wù)來(lái)講,不能單純地從分類(lèi)精度去衡量一個(gè)模型的好壞。如一個(gè)100 條數(shù)據(jù)的樣本集,其中正類(lèi)樣本為90,負(fù)類(lèi)樣本僅為10,不平衡率達(dá)到9.0,如果某分類(lèi)模型將這100個(gè)樣本全部劃分成為正類(lèi),則此時(shí)的分類(lèi)精度高達(dá)90%,顯然這種評(píng)價(jià)方式極不合理。因此本文選用分類(lèi)任務(wù)中的其他評(píng)價(jià)指標(biāo)對(duì)算法的有效性進(jìn)行驗(yàn)證,分別為精確率(Precision)、召回率(Recall)、F 值和AUC值,為了更直觀地給出這些評(píng)價(jià)指標(biāo)的計(jì)算公式,需要用到的混淆矩陣如表2所示。
基于表2的混淆矩陣,各評(píng)價(jià)指標(biāo)的計(jì)算公式如下所示:
表2 混淆矩陣
AUC值(Area Under Curve)通常是指曲線(xiàn)下的面積,這里的曲線(xiàn)指的是受試者操作曲線(xiàn)(Receiver Operating Characteristic,ROC)。AUC 常常被用作模型排序好壞的指標(biāo),原因在于AUC 值可以看作隨機(jī)從正負(fù)樣本中選取一對(duì)正負(fù)樣本,其中正樣本的得分大于負(fù)樣本的概率,AUC值越大,表示模型的分類(lèi)能力越好。
為驗(yàn)證本文提出的基于聚類(lèi)欠采樣隨機(jī)森林優(yōu)化模型對(duì)非平衡數(shù)據(jù)有較好的分類(lèi)效果,設(shè)置了其他三種對(duì)比算法:(1)傳統(tǒng)隨機(jī)森林算法(Traditional Random Forest,TRF),該算法對(duì)非平衡數(shù)據(jù)不做任何處理,直接采用Bootstrap隨機(jī)抽樣形成訓(xùn)練樣本;(2)經(jīng)典欠采樣隨機(jī)森林(Classic Under-Sampling Random Forest,CURF),該方法對(duì)大類(lèi)樣本隨機(jī)抽樣,形成與小類(lèi)樣本數(shù)量相同的數(shù)據(jù)集,和小類(lèi)樣本混合形成訓(xùn)練樣本;(3)文獻(xiàn)[18]算法思想,利用K-Means聚類(lèi)對(duì)大類(lèi)樣本聚類(lèi),選擇每個(gè)聚類(lèi)中心作為樣本與小類(lèi)樣本合并形成平衡數(shù)據(jù),以此為訓(xùn)練集構(gòu)建隨機(jī)森林(Random Forest based on K-Means clustering to Balanced Sample,KMRF)。
本文實(shí)驗(yàn)分成兩部分:一部分是通過(guò)對(duì)比其他三種算法,驗(yàn)證CUSRF算法對(duì)非平衡數(shù)據(jù)的分類(lèi)能力;另一部分是CUSRF跟其他三種算法的穩(wěn)定性比較。本文利用算法過(guò)程中定義的OOB計(jì)算模型的精確率、召回率、F 值和AUC值,統(tǒng)一構(gòu)建具有50棵決策樹(shù)的隨機(jī)森林,在10組非平衡數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果見(jiàn)表3,其結(jié)果是經(jīng)過(guò)10次實(shí)驗(yàn)后取到的平均值。
為了能更加直觀地展示上述的實(shí)驗(yàn)效果,繪制出如圖2所示的AUC對(duì)比折線(xiàn)圖。
由表3 和圖2 的實(shí)驗(yàn)結(jié)果可以看出,本文提出的CUSRF 算法與其他三種對(duì)比算法相比,對(duì)非平衡數(shù)據(jù)有明顯的提升效果,在10 組非平衡數(shù)據(jù)集上均有更好的實(shí)驗(yàn)效果,各項(xiàng)指標(biāo)都有一定程度提高。其中,在dermatology、german、poker-9、yeast1、pima、glass1、shuttle這7個(gè)數(shù)據(jù)集上,和傳統(tǒng)RF相比,本文提出的優(yōu)化算法有更加明顯的實(shí)驗(yàn)效果。在剩下的3個(gè)數(shù)據(jù)集vehicle、wisconsin、segment0上,本文提出的優(yōu)化算法和傳統(tǒng)RF算法相比,實(shí)驗(yàn)效果均有所提升,但是幅度不大。這是因?yàn)檫@3組數(shù)據(jù)的不平衡率僅為2左右,小類(lèi)樣本較多,傳統(tǒng)RF對(duì)其有一定的分類(lèi)能力。
表3 四種算法在10個(gè)數(shù)據(jù)集上的綜合表現(xiàn)
圖2 四種算法在10組非平衡數(shù)據(jù)集上的AUC對(duì)比曲線(xiàn)圖
和經(jīng)典的欠采樣隨機(jī)森林算法(CURF)相比,本文提出的CUSRF算法實(shí)驗(yàn)效果有所提升。其中,在vehicle、wisconsin、german、poker-9、yeast1、pima、segment0、glass1這8組實(shí)驗(yàn)數(shù)據(jù)上,CUSRF算法的4個(gè)評(píng)價(jià)指標(biāo)均高于CURF算法。但在shuttle數(shù)據(jù)集上,CUSRF算法的AUC值比CURF的AUC值低0.4個(gè)百分點(diǎn),在dermatology數(shù)據(jù)集上,兩個(gè)算法的實(shí)驗(yàn)效果一致。兩個(gè)算法都是通過(guò)隨機(jī)抽取大類(lèi)中的樣本使訓(xùn)練樣本達(dá)到平衡,但是CUSRF 算法是隨機(jī)抽取每個(gè)分類(lèi)簇中的樣本,使得抽取的樣本更加具備代表性,進(jìn)而會(huì)影響模型的實(shí)驗(yàn)效果??傮w來(lái)看,本文提出的CUSRF 算法的實(shí)驗(yàn)效果依舊優(yōu)于CURF算法。
和KMRF 算法相比,本文提出的CUSRF 算法在這10 組非平衡數(shù)據(jù)集上的實(shí)驗(yàn)效果均有所提升,其中在german和yeast1兩個(gè)數(shù)據(jù)集上,實(shí)驗(yàn)效果提升得更加明顯,AUC 值提升的幅度達(dá)到12 個(gè)百分點(diǎn)。這是因?yàn)镵MRF 算法每次都選擇每個(gè)簇的聚類(lèi)中心作為訓(xùn)練集樣本,導(dǎo)致隨機(jī)森林訓(xùn)練樣本的多樣性不足,而本文提出的改進(jìn)算法在每個(gè)簇中都隨機(jī)抽取樣本,會(huì)使得構(gòu)建隨機(jī)森林的樣本更加具備多樣性,實(shí)驗(yàn)效果更好。
綜上所述,本文提出的CUSRF 算法具有更好的分類(lèi)結(jié)果,在上述10組非平衡數(shù)據(jù)集中,評(píng)價(jià)指標(biāo)AUC值都有一定的提高,具有更強(qiáng)的分類(lèi)能力。并且針對(duì)不平衡率不同的數(shù)據(jù)集,模型的實(shí)驗(yàn)效果提升程度不等,對(duì)于不平衡率較大的數(shù)據(jù)集,分類(lèi)能力提升更為顯著。尤其是在poker不平衡數(shù)據(jù)集上,分類(lèi)結(jié)果的AUC值和傳統(tǒng)RF 相比,提高了近40 個(gè)百分點(diǎn),忽略在平衡數(shù)據(jù)過(guò)程中聚類(lèi)及兩次隨機(jī)抽樣帶來(lái)的偶然性,依舊可以看出,CUSRF 算法的分類(lèi)效果比其他三種算法的分類(lèi)效果要好。
為了探究隨機(jī)森林規(guī)模對(duì)本文方法的性能影響,進(jìn)行穩(wěn)定性比對(duì)實(shí)驗(yàn)。本文設(shè)定隨機(jī)森林中決策樹(shù)的棵數(shù)從20 開(kāi)始,以5 的倍數(shù)依次遞增,最高隨機(jī)森林的規(guī)模為50 棵決策樹(shù)。以AUC 為評(píng)價(jià)指標(biāo),將本文提出的CUSRF 算法和其他三種算法的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,在10組非平衡數(shù)據(jù)集的實(shí)驗(yàn)表現(xiàn)如圖3~圖12所示。
圖3 yeast1數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖4 pima數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖5 segment0數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖6 glass1數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖7 shuttle數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖8 poker-9數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖9 german數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖10 vehicle數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖11 wisconsin數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
圖12 dermatology數(shù)據(jù)集上隨機(jī)森林規(guī)模對(duì)分類(lèi)性能的影響
從圖3 中的10 組非平衡數(shù)據(jù)集的實(shí)驗(yàn)對(duì)比可以看出,隨著隨機(jī)森林規(guī)模的增長(zhǎng),本文提出的CUSRF算法在其中8組數(shù)據(jù)集上隨著規(guī)模的增大,模型效果趨于穩(wěn)定。僅在shuttle 和german 兩組不平衡率較高的數(shù)據(jù)集上波動(dòng)較大,實(shí)驗(yàn)效果穩(wěn)定性不強(qiáng)。這是因?yàn)閮山M數(shù)據(jù)的小類(lèi)樣本數(shù)較少,使得抽取的訓(xùn)練集樣本少,造成OOB 數(shù)據(jù)較多,測(cè)試數(shù)據(jù)明顯多于訓(xùn)練數(shù)據(jù)。從實(shí)驗(yàn)結(jié)果穩(wěn)定性來(lái)說(shuō),本文提出的CUSRF 算法和經(jīng)傳統(tǒng)欠采樣平衡樣本后的隨機(jī)森林算法穩(wěn)定性都相對(duì)較好,其次是KMRF算法,傳統(tǒng)隨機(jī)森林的穩(wěn)定性最差。由此可見(jiàn),本文提出的優(yōu)化模型可以快速達(dá)到收斂狀態(tài),并且模型的AUC值高于其他三種算法。
由分類(lèi)能力對(duì)比實(shí)驗(yàn)和穩(wěn)定性對(duì)比實(shí)驗(yàn)可以看出,本文提出的CUSRF算法在分類(lèi)能力及模型穩(wěn)定性上要優(yōu)于傳統(tǒng)RF 算法,并且分類(lèi)能力優(yōu)于CURF 算法和KMRF算法。對(duì)于不平衡率較大的數(shù)據(jù)集,采用本文提出的優(yōu)化算法平衡數(shù)據(jù),使得樣本多樣性增加并且更具代表性,模型的評(píng)價(jià)指標(biāo)F 值和AUC 值提升得更加明顯。但是不平衡樣本數(shù)據(jù)集中的小類(lèi)樣本較少時(shí),會(huì)導(dǎo)致傳統(tǒng)隨機(jī)森林和本文提出的優(yōu)化模型的穩(wěn)定性不高。
針對(duì)隨機(jī)森林分類(lèi)效果受到樣本集類(lèi)間不平衡、類(lèi)內(nèi)不規(guī)則的影響,本文結(jié)合聚類(lèi)欠采樣算法,提出了一種隨機(jī)森林優(yōu)化方法——CUSRF算法。CUSRF算法利用聚類(lèi)方法分別對(duì)離散型和連續(xù)型不平衡數(shù)據(jù)集中的大類(lèi)樣本聚類(lèi),得到與小類(lèi)樣本個(gè)數(shù)相同的子類(lèi)簇,再?gòu)拿總€(gè)子類(lèi)簇中隨機(jī)抽取一個(gè)樣本與小類(lèi)樣本形成平衡樣本集;對(duì)平衡樣本集有放回抽樣形成單棵決策樹(shù)的訓(xùn)練集樣本并完成建樹(shù),重復(fù)上述過(guò)程,直至達(dá)到隨機(jī)森林的規(guī)模。兩次未被抽中的樣本作為模型測(cè)試的袋外數(shù)據(jù)。使用10 組非平衡數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,結(jié)果表明,CUSRF算法在這10組不平衡數(shù)據(jù)集上的精確率、召回率、F 值以及AUC值均有所提高,并且該算法的穩(wěn)定性要高于其他兩種對(duì)比算法。今后的研究工作將主要集中在如何降低算法的時(shí)間復(fù)雜度上。