紀(jì)興哲,邵培南
(中國電子科技集團(tuán)第三十二研究所,上海 201808)
隨著軟件技術(shù)的發(fā)展,軟件項(xiàng)目中的缺陷越來越受開發(fā)人員的重視,占據(jù)大量開發(fā)和維護(hù)時(shí)間,降低開發(fā)人員的工作效率,而且給企業(yè)帶來許多財(cái)物損失.目前,軟件缺陷預(yù)測(SDP)[1,2]已經(jīng)成為了一個(gè)快速發(fā)展的研究領(lǐng)域,許多研究[3,4]大都通過機(jī)器學(xué)習(xí)方法來挖掘版本控制系統(tǒng)數(shù)據(jù)集,運(yùn)用歷史數(shù)據(jù)訓(xùn)練預(yù)測模型來預(yù)測軟件項(xiàng)目的缺陷.在整個(gè)數(shù)據(jù)集達(dá)到平衡的前提下,機(jī)器學(xué)習(xí)中許多算法可以解決這類問題;然而,現(xiàn)在的絕大多數(shù)軟件項(xiàng)目數(shù)據(jù)集都極為不平衡,有缺陷的樣本都遠(yuǎn)遠(yuǎn)少于無缺陷的樣本(前者通常被稱為少數(shù)類,后者稱為多數(shù)類),這在SDP中稱為類不平衡問題,類不平衡問題存在于眾多現(xiàn)實(shí)領(lǐng)域中,例如生物醫(yī)學(xué)診斷[5]、多媒體數(shù)據(jù)分類[6]、垃圾郵件識別[7]、信用卡及電信詐騙檢測[8]等,這類問題都具有鮮明的類不平衡問題.
許多優(yōu)秀的用于構(gòu)建分類預(yù)測模型的方法[9]已經(jīng)被提出,包括常用的決策樹(DT),k 最近鄰(KNN) 樸素的貝葉斯,邏輯回歸,多層感知(MLP),支持向量機(jī)(SVM),極限學(xué)習(xí)機(jī)(ELM)和深度神經(jīng)網(wǎng)絡(luò)(DNN)等,在對SDP 問題進(jìn)行建模預(yù)測時(shí),它們的整體分類準(zhǔn)確率通常都不錯(cuò).但是當(dāng)面對類不平衡數(shù)據(jù)集時(shí),尤其是例如癌癥患者預(yù)測[5]這類高失衡率的問題中,即只有極少數(shù)樣本需要正確的預(yù)測時(shí),這些分類算法只能對大多數(shù)不患病的樣本進(jìn)行分類,而忽略了少數(shù)患病樣本,這從算法應(yīng)用的本質(zhì)上與出發(fā)點(diǎn)是相違背的.
解決類不平衡問題的廣泛被采用的方法是二次采樣法,代價(jià)敏感法和集合學(xué)習(xí)法[10],集合學(xué)習(xí)方法是一種通過疊加多個(gè)弱監(jiān)督分類器以獲得更好的強(qiáng)監(jiān)督分類器的學(xué)習(xí)方法,常用的組裝學(xué)習(xí)方法是裝袋,提升和堆疊.代價(jià)敏感法是給每一類實(shí)例分配不同的權(quán)重,以使在分類時(shí)少數(shù)類比多數(shù)類更有被分類的價(jià)值.二次采樣法包括欠采樣和過采樣.欠采樣是通過丟棄部分?jǐn)?shù)據(jù)集中的多數(shù)類來平衡數(shù)據(jù)集,例如RUS,CNN,TL,OSS,以及SBC[3]等,缺點(diǎn)是丟棄的部分實(shí)例可能包含潛在的有用信息;過采樣是合成新實(shí)例添加到少數(shù)類中,例如ROS,SMOTE,以及SMOTE 算法的拓展等.一般情況下,過采樣方法是優(yōu)于欠采樣方法的,因?yàn)檫^采樣避免了信息的丟失,但也有數(shù)據(jù)復(fù)制導(dǎo)致擬合度過高和多樣性不足的困擾.
針對以上缺點(diǎn),本文提出一種基于異類距離排名的過采樣方法(HDR),通過衡量少數(shù)類實(shí)例與最近多數(shù)類之間距離的排名關(guān)系,選出與邊界聯(lián)系最強(qiáng)的實(shí)例組合生成新實(shí)例,緩解數(shù)據(jù)分布的不均衡性并且提升數(shù)據(jù)的多樣性,在此數(shù)據(jù)集基礎(chǔ)上繼而提高軟件缺陷預(yù)測的準(zhǔn)確性.同時(shí)與SMOTE 算法[11]和Borderline-SMOTE 算法[12]等作比較,通過對三者算法的研究和對相同數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),挖掘出新方法的優(yōu)越性.本文結(jié)構(gòu)如下:在第1 節(jié)討論了軟件缺陷預(yù)測的技術(shù)現(xiàn)狀,在第2 節(jié)中討論了不同的采樣方法;在第3 節(jié)中詳細(xì)介紹了本文提出的HDR 算法;在第4 節(jié)中介紹了實(shí)驗(yàn)對象和評估方法以及實(shí)驗(yàn)結(jié)果;在第5 節(jié)中對本文進(jìn)行了總結(jié)并展望了未來的工作.
為了減少軟件故障并提高軟件質(zhì)量,開發(fā)人員往往會(huì)采用許多軟件質(zhì)量保證活動(dòng)(例如缺陷預(yù)測,代碼審查和單元測試等).根據(jù)文獻(xiàn)了解到軟件故障在軟件項(xiàng)目中通常遵從八二定律[13],即80%的缺陷存在于20%的模塊中,而軟件質(zhì)量保證活動(dòng)需要對整個(gè)軟件項(xiàng)目進(jìn)行覆蓋,往往會(huì)在無缺陷的大量模塊上花費(fèi)若干時(shí)間.為了最大程度的降低成本,軟件開發(fā)人員需要知道哪些模塊包含更多缺陷,并首先檢查此模塊.由此,研究人員提出了軟件缺陷預(yù)測技術(shù).
軟件缺陷預(yù)測技術(shù)的過程包含3 個(gè)主要步驟:收集歷史缺陷數(shù)據(jù)集;使用歷史數(shù)據(jù)通過機(jī)器學(xué)習(xí)或深度學(xué)習(xí)技術(shù)來訓(xùn)練分類或回歸模型;將訓(xùn)練后的模型應(yīng)用與預(yù)測軟件缺陷的數(shù)量或可能性.隨著PROMISE知識庫[10],NASA 缺陷樣本集[14]和AEEEM 等數(shù)據(jù)集相繼被公開,軟件缺陷預(yù)測技術(shù)得到了快速的發(fā)展,并出現(xiàn)了多種不同的分類方法.從不同的數(shù)據(jù)集粒度來看,軟件缺陷預(yù)測技術(shù)可分為四類:包級別,文件級別,方法級別,代碼行級別.從不同指標(biāo)來看,分為兩類:靜態(tài)和動(dòng)態(tài).靜態(tài)缺陷預(yù)測采用靜態(tài)軟件指標(biāo)來預(yù)測缺陷數(shù)量或缺陷分布,指標(biāo)包括McCabe 度量和Halstead度量.動(dòng)態(tài)缺陷預(yù)測采用缺陷生成來預(yù)測系統(tǒng)缺陷隨時(shí)間的分布狀況.采用機(jī)器學(xué)習(xí)方法研究軟件缺陷預(yù)測分為3 種不同的方向,分別是項(xiàng)目間缺陷預(yù)測(WSDP),跨項(xiàng)目缺陷預(yù)測(CSDP),以及非均勻缺陷預(yù)測(HDP)[15],比起相較而言已經(jīng)成熟的WSDP,當(dāng)前研究人員更關(guān)注CSDP的發(fā)展進(jìn)程.目前研究人員已經(jīng)提出了許多缺陷預(yù)測方法,但是大多數(shù)缺陷預(yù)測研究對軟件模塊的缺陷傾向性描述較多,而忽視了模塊本身的缺陷數(shù)及缺陷分布,并且機(jī)器學(xué)習(xí)的方法都采用默認(rèn)參數(shù),沒有探究修改參數(shù)帶來的影響.
關(guān)于SDP中的類不平衡問題已有一些研究,相關(guān)文獻(xiàn)多是采用是二次采樣方法[16].二次采樣方法分為欠采樣和過采樣兩種.
欠采樣是通過刪除數(shù)據(jù)集中的部分多數(shù)類,縮小多數(shù)類的規(guī)模達(dá)到類平衡,.目前經(jīng)常作為過采樣方法的補(bǔ)充技術(shù).
過采樣技術(shù)是通過復(fù)制現(xiàn)有少數(shù)類或生成新的合成少數(shù)類來平衡數(shù)據(jù)集的一種采樣方法,隨機(jī)過采樣(ROS)[16]是在少數(shù)類中隨機(jī)復(fù)制部分插入數(shù)據(jù)集中,雖然這種方法能夠簡單有效的解決類不平衡問題,但由于重復(fù)采樣,數(shù)據(jù)缺乏多樣性,常常導(dǎo)致嚴(yán)重的過擬合.Chawla 等人在2002年提出了SMOTE 算法[11],作為迄今為止該研究領(lǐng)域內(nèi)影響最大的過采樣方法,它基于最近鄰思想,提出根據(jù)兩個(gè)少數(shù)類樣本在方向上人工生成新的少數(shù)類的解決方法,實(shí)驗(yàn)證明在處理類不平衡時(shí)能有效緩解數(shù)據(jù)的不平衡分布.Han 等認(rèn)為SMOTE 算法忽視了多數(shù)類的分布,有導(dǎo)致類間重疊的風(fēng)險(xiǎn),提出了Borderline-SMOTE 算法[12],認(rèn)為算法應(yīng)著眼于多數(shù)類與少數(shù)類的決策邊界上.后人的研究多是依據(jù)SMOTE 算法的優(yōu)越性和特殊性對其進(jìn)行拓展,例如:Bunkhumpornpat 等提出了Safe-Level-SMOTE算法[17],用安全等級系數(shù)來保證K 鄰居中其他少數(shù)類實(shí)例數(shù)量;Feng 等人提出了基于復(fù)雜度的過采樣技術(shù)(COSTE)[3],顯著提高了生成實(shí)例的質(zhì)量;He 等人基于密度分布提出了改進(jìn)算法ADASYN (自適應(yīng)合成采樣)[18];Ding 等人在He 工作的基礎(chǔ)上結(jié)合EasyEnsemble集成方法提出了KA-Ensemble[9],動(dòng)態(tài)改善多數(shù)類和少數(shù)類的平衡分布,并且在解決多分類問題中依然有效;Romero 等人提出了KINOS 算法[19],先刪除部分少數(shù)類,對余下數(shù)據(jù)過采樣,最后將刪除部分恢復(fù),既通過生成新實(shí)例拓展了少數(shù)類,又保留了少數(shù)類的高價(jià)值數(shù)據(jù);Tarawneh 等人基于最遠(yuǎn)鄰提出了SMOTEFUNA 算法[20];Paria 等人提出了RCSMOTE[4],該方法能夠改進(jìn)SMOTE算法的泛化問題,避免對無意義的少數(shù)類進(jìn)行過采樣,同時(shí)解決決策邊界的重疊問題.
本文參考SMOTE 算法和Borderlin-SMOTE 算法生成新合成實(shí)例的方法提出一種新的基于異類距離排名的過采樣方法(HDR).由于多數(shù)類和少數(shù)類的邊界數(shù)據(jù)分布情況對分類問題的解決至關(guān)重要.HDR 將過采樣的重點(diǎn)著眼于邊界實(shí)例[12]上,在結(jié)合了噪聲過濾,基于排名和高值數(shù)據(jù)保留等思想和方法后,提出了以下方法步驟.首先,對樣本數(shù)據(jù)集采用實(shí)例分類方法進(jìn)行區(qū)分,剔除噪聲數(shù)據(jù),然后計(jì)算邊界實(shí)例與最近的多數(shù)類的距離,之后HDR 基于距離以升序排列所有邊界實(shí)例,并且將排名相鄰的邊界實(shí)例成對生成新合成實(shí)例.對距離排名的目的是,較高排名的邊界實(shí)例更貼合邊界,在數(shù)據(jù)分類時(shí)更具有區(qū)分度,將排名相鄰的邊界少數(shù)實(shí)例兩兩組合進(jìn)而生成新實(shí)例,實(shí)則是通過組合區(qū)分度高、代表性強(qiáng)的實(shí)例來創(chuàng)造更具多樣性,更有利于均衡類分布的新實(shí)例.在之后,刪除新生成的噪聲合成實(shí)例并且恢復(fù)最開始刪除的少數(shù)類噪聲數(shù)據(jù)以避免丟失有價(jià)值的信息.以下是SMOTE 算法,Borderline-SMOTE 以及HDR 算法的詳細(xì)描述.
SMOTE 算法是在隨機(jī)過采樣(ROS)基礎(chǔ)上改進(jìn)的一種合成少數(shù)類過采樣方法,不同于ROS 采取簡單復(fù)制的方法進(jìn)行過采樣,SMOTE的基本思想是依據(jù)少數(shù)類實(shí)例樣本人工生成新的合成實(shí)例.SMOTE 如圖1,具體內(nèi)容由文獻(xiàn)[11]詳細(xì)介紹,算法流程如下.
圖1 SMOTE 算法基本思想
1)在少數(shù)類中,為每一個(gè)少數(shù)類實(shí)例x使用KNN算法依據(jù)歐氏距離確定K個(gè)最近鄰居;
2)根據(jù)數(shù)據(jù)集的不平衡率設(shè)置一個(gè)過采樣比例M,根據(jù)M確定采樣倍率N,對每一個(gè)實(shí)例x,從x的K近鄰中隨機(jī)選擇T個(gè)實(shí)例(x1,x2,···,xT),T的大小由N決定.對于選擇的每一個(gè)實(shí)例xT,執(zhí)行以下公式生成少數(shù)類新實(shí)例xnew;
3)將新生成的實(shí)例xnew添加到原始數(shù)據(jù)集中,使訓(xùn)練數(shù)據(jù)集的不平衡度達(dá)到要求.
SMOTE 算法的缺陷有以下幾個(gè)方面:首先對所有的少數(shù)類一視同仁,會(huì)導(dǎo)致多數(shù)類與少數(shù)類的邊界會(huì)隨著新添加的生成實(shí)例的增多而越加模糊,其次對于噪聲數(shù)據(jù)的過采樣會(huì)增加數(shù)據(jù)集的不平衡性,最后對于控制SMOTE 算法的兩個(gè)重要參數(shù)K和N需要反復(fù)調(diào)整.
Borderline-SMOTE 算法是針對SMOTE 算法的缺陷提出的一種改良算法.SMOTE 對所有的少數(shù)類實(shí)例都是同等對待.然而有些實(shí)例遠(yuǎn)離邊界,對分類并沒有幫助,這部分實(shí)例在過采樣時(shí)應(yīng)該被丟棄,同時(shí)需要強(qiáng)化邊界生成更多的邊界實(shí)例,來提升數(shù)據(jù)分布不均衡中的少數(shù)類分布比例,Borderline-SMOTE 算法基于此思想被提出.算法的基本思想是將少數(shù)類實(shí)例分為3 類,分別為safe,danger,noise,如圖2,僅對分類為danger的少數(shù)類實(shí)例進(jìn)行過采樣.通過類似Borderline-SMOTE算法的縮小樣本采樣策略,許多研究者相繼提出了諸如SMOTEBoost,AND-SMOTE[21]和ADASYN 等算法,本文提出的HDR 也基于此思想.
圖2 Borderline-SMOTE 算法技術(shù)要點(diǎn)
HDR 算法可分為3 個(gè)步驟:樣本預(yù)處理,過采樣和樣本后處理.
1)樣本預(yù)處理
樣本數(shù)據(jù)預(yù)處理,首先將樣本數(shù)據(jù)根據(jù)標(biāo)簽分為多數(shù)類和少數(shù)類,算法的目的是對少數(shù)類的過采樣進(jìn)行優(yōu)化,基本思想是在不引入嘈雜數(shù)據(jù)的情況下擴(kuò)充少數(shù)類實(shí)例數(shù)量.正如在第3.2 節(jié)中提到的SMOTE 算法的缺陷之一就是對噪聲實(shí)例的過采樣加劇了數(shù)據(jù)集的不平衡,而安全實(shí)例的過采樣產(chǎn)生的新實(shí)例對分類器的學(xué)習(xí)過程也不會(huì)有大的影響.考慮到上述事實(shí),首先需要將少數(shù)類實(shí)例進(jìn)行分類,包括邊界實(shí)例,安全實(shí)例,噪聲實(shí)例,考慮邊界實(shí)例(這在步驟2中運(yùn)用)并且去除噪聲實(shí)例.少數(shù)類實(shí)例的分類方法[4]類似Borderline-SMOTE 如算法1 所示.
算法1.少數(shù)類分類方法輸入:數(shù)據(jù)集,包含少數(shù)類實(shí)例和多數(shù)類實(shí)例,datadD,d∈(d1,d2,d3,···,dnnum)nnumd為的數(shù)量.輸出:邊界實(shí)例B,安全實(shí)例S,噪聲實(shí)例N.
方法:1.針對中的每一個(gè),計(jì)算 在數(shù)據(jù)集中的近鄰,獲得 近鄰中的多數(shù)類實(shí)例數(shù)量.m′=mdimdi di∈Nm d dididatamm m′2.如果,即 所有的近鄰都是多數(shù)類實(shí)例,可被判定為噪聲實(shí)例,;如果,即的近鄰中有超過一半的實(shí)例是多數(shù)類實(shí)例,可被判定為邊界實(shí)例,;如果,即的近鄰中有少于一半的多數(shù)類實(shí)例,可被判定為噪聲實(shí)例,.2 依據(jù)算法1 區(qū)分了3 種不同類型的實(shí)例,在去除了噪聲實(shí)例N后,在步驟2)中不會(huì)再有噪聲實(shí)例生成新實(shí)例干擾數(shù)據(jù)集的平衡性以及分類器的性能.根據(jù)已有研究[12]表明,調(diào)整m的取值,當(dāng)邊界實(shí)例B的數(shù)量達(dá)到少數(shù)類實(shí)例數(shù)量的一半,此時(shí)m為最佳值. 2)過采樣 在預(yù)處理步驟之后,過采樣步驟確定如何生成新合成少數(shù)實(shí)例以及生成的數(shù)量.這一步驟的目的是平衡類之間的分布,提高數(shù)據(jù)集的多樣性,擴(kuò)充邊界實(shí)例,這將有利于分類器更好的發(fā)揮作用.通過計(jì)算邊界實(shí)例的多數(shù)類最近鄰的歐式距離,然后將計(jì)算結(jié)果升序排名,將距離相似的兩個(gè)數(shù)類成對組合在一起,之后參考SMOTE 算法,在二者之間的連線上隨機(jī)選擇一點(diǎn)作為新生成的少數(shù)類實(shí)例.計(jì)算的每一個(gè)結(jié)果,都是在尋找對分類更有效的邊界實(shí)例,越接近多數(shù)類的少數(shù)類,具有的分類代表意義越深,通過組合排名相似的實(shí)例,可以提升生成數(shù)據(jù)的多樣性,緩解類不平衡問題.HDR-過采樣算法如算法2 所示. 算法2.HDR-過采樣算法輸入:邊界實(shí)例B,多數(shù)類實(shí)例D,少數(shù)類實(shí)例,d B∈(b1,b2,b3,···,bi)D∈(D1,D2,D3,···,Di)輸出:平衡數(shù)據(jù)集newdata方法:1.定義:與其多數(shù)類最近鄰的歐氏距離random(a,b)ab xibi 2.定義:和之間任取一點(diǎn)作為結(jié)果M∈(m1,m2,m3···mi)3.定義M:異類距離集合,C 4.定義:生成新實(shí)例集合,,根據(jù)文獻(xiàn)[22]實(shí)驗(yàn)表明,當(dāng)生成新實(shí)例后少數(shù)類總量達(dá)到總體數(shù)量的40%,L 則為最佳值i=1,2,3···L C∈(c1,c2,c3,···,ci) L=length(C)5.forthen:dism=dist(bi,Di) Dibi,為屬于多數(shù)類的的最近鄰xi=dism,存入M 集合6.對M 進(jìn)行升序排序,得到,最小j=1;j=j+2;j≤length(M)m1,m2,m3,···,mim1 7.forthen:repeat:random(mi,mi+1)→cilength(ci)=L/length(B),newdata=C+D+d, 3)樣本后處理 雖然新實(shí)例是通過一組異類距離相似度高的實(shí)例生成而來,這意味著大多數(shù)情況它都存在于少數(shù)類群體內(nèi)部,如圖3,虛線為邊界線,藍(lán)色圓形對勾代表的是根據(jù)黑實(shí)線兩側(cè)異類距離相似的實(shí)例隨機(jī)生成,新合成實(shí)例是安全的,但不排除有黑色圓形對勾的情況,呈凹形的邊界線分布兩側(cè)分布著異類距離相似的實(shí)例,通過HDR 算法生成的新實(shí)例存在于多數(shù)類內(nèi)部,這將形成噪聲,影響分類.因此采用KNN 算法來去除新生成的噪聲實(shí)例.KNN 算法的核心思想是通過判斷當(dāng)前樣本的鄰居所屬類別來推斷樣本所屬的類別.首先,應(yīng)用歐幾里得距離來計(jì)算每個(gè)實(shí)例的K 近鄰,在其K 鄰域內(nèi),如果少數(shù)類的數(shù)量小于多數(shù)類的數(shù)量,就意味著當(dāng)前實(shí)例是噪聲實(shí)例,并且應(yīng)該被刪除. 圖3 HDR-過采樣算法生成新合成實(shí)例 由于有缺陷實(shí)例部分通常較少,每一個(gè)實(shí)例都對應(yīng)了真實(shí)數(shù)據(jù),刪除任意一個(gè)都是對數(shù)據(jù)樣本的污染,因此采取與諸多文獻(xiàn)不同的后處理方式 在預(yù)處理步驟中去除的少數(shù)類噪聲樣本需要被添加回過采樣后的數(shù)據(jù)集.同時(shí)為了研究恢復(fù)實(shí)例對整個(gè)算法的影響,將未進(jìn)行恢復(fù)操作的HDR 算法命名為HDR-half 算法,并通過實(shí)驗(yàn)進(jìn)行研究. 為了驗(yàn)證HDR 算法的有效性,實(shí)驗(yàn)選用了NASA MDP 數(shù)據(jù)集,MDP 數(shù)據(jù)集包含了13 個(gè)NASA 實(shí)際項(xiàng)目,在SDP 研究文獻(xiàn)內(nèi)被多次運(yùn)用.表1選取了MDP 8 個(gè)具有代表性的數(shù)據(jù)集的詳細(xì)信息,包括項(xiàng)目名,度量屬性數(shù),總實(shí)例數(shù)量和有缺陷實(shí)例所占比例.其中度量屬性包含了McCabe 度量,Halstead 度量,代碼行數(shù),操作數(shù)復(fù)雜度等,圖中可以觀察到,有缺陷實(shí)例所占比例都遠(yuǎn)低于50%,這表明MDP 數(shù)據(jù)集可以用做評估解決類不平衡方法的實(shí)驗(yàn)對象. 表1 NASA的MDP 部分?jǐn)?shù)據(jù)集 在SDP中,通?;诨煜仃囉?jì)算性能評價(jià)指標(biāo),如表2所示.其中真陽性(TP)表示正確預(yù)測為缺陷實(shí)例的數(shù)量,假陽性(FP)表示錯(cuò)誤預(yù)測為缺陷實(shí)例的數(shù)量,真陰性(TN)表示正確預(yù)測為無缺陷實(shí)例的數(shù)量,假陰性(FN)表示錯(cuò)誤預(yù)測為無缺陷實(shí)例的數(shù)量. 表2 混淆矩陣 為了有效評估HDR 算法的性能,實(shí)驗(yàn)選用了平衡率(balance),F測量(F1-measure,F1)和G 均值(G-Mean,GM)3 項(xiàng)性能指標(biāo),balance是召回率和準(zhǔn)確率之間的平衡,balance值越大,證明實(shí)驗(yàn)方法性能越好.F1-measure體現(xiàn)模型的穩(wěn)定性,當(dāng)F1-measure 較高時(shí)表明實(shí)驗(yàn)方法有更好的性能.G 均值也可以用來評價(jià)不平衡數(shù)據(jù)的模型表現(xiàn).根據(jù)混淆矩陣,banlance,F1,GM定義如下: 為驗(yàn)證HDR 方法的有效性,實(shí)驗(yàn)分別與SMOTE、Borderlin-SMOTE 實(shí)驗(yàn)作比較;為研究算法中步驟3)處理方法的影響,實(shí)驗(yàn)將HDR-half 算法與HDR 算法進(jìn)行比較.實(shí)驗(yàn)中所涉及的近鄰參數(shù)均按照文獻(xiàn)設(shè)置為5,分類器采用隨機(jī)森林(RF),RF 作為決策樹(DT)的集成方式,目前已被廣泛地應(yīng)用在分類問題中,它的特點(diǎn)是在處理數(shù)據(jù)量較大或度量屬性較多的項(xiàng)目時(shí)訓(xùn)練速度快,訓(xùn)練成本低.實(shí)驗(yàn)采用5 折交叉驗(yàn)證,將數(shù)據(jù)集的80%作為訓(xùn)練集,20%作為測試集,訓(xùn)練過程重復(fù)20 次,性能結(jié)果取20 次5 折交叉驗(yàn)證平均值. 表3,表4和表5分別列出了采用4 種方法關(guān)于MDP 數(shù)據(jù)集的balance,F1-measure和G-Mean 三項(xiàng)指標(biāo).從表中可以看到,HDR-half 算法相比于HDR 算法在balance指標(biāo)上有相似的表現(xiàn),而在F1-measure和G-Mean 指標(biāo)上則得到了相比HDR 算法較差的結(jié)果,由此,本文采用的在過采樣之后恢復(fù)其原始部分少數(shù)類數(shù)據(jù)的獨(dú)特方法,減少了寶貴數(shù)據(jù)的浪費(fèi),豐富了數(shù)據(jù)集和數(shù)據(jù)分布,并且對實(shí)驗(yàn)結(jié)果有巨大的提升. 從表3中可以看到,在HDR 算法采用RF 分類器得到的balance值相對于SMOTE和Borderline-SMOTE取得了全面的優(yōu)勢,尤其在JM1 數(shù)據(jù)集上相比于SMOTE具有23.3%的巨大提升,最低提升發(fā)生在KC3 數(shù)據(jù)集上,提升了3.5%,平均有8.76的提升.這些提升都源自新算法在數(shù)據(jù)集上進(jìn)行了預(yù)處理+后處理的操作;同樣,從表4和表5來看,本文提出的新算法結(jié)果明顯較好,相較于SMOTE 算法在F1-measure 上和G-Mean上分別有8.76%和16.89%的性能提升,和Borderline-SMOTE 相比也分別有6.64%和4.24%的性能提升.其中表4Borderline-SMOTE 在KC3 數(shù)據(jù)集和MC2 數(shù)據(jù)集上結(jié)果較好.經(jīng)過多次實(shí)驗(yàn)分析,原因是兩者的數(shù)據(jù)量太小導(dǎo)致新算法對數(shù)據(jù)集的優(yōu)化不如Borderline-SMOTE 明顯.總體而言,相較于同類型算法Borderline-SMOTE,HDR 采用異類距離排名的方法穩(wěn)定性更強(qiáng),對不平衡數(shù)據(jù)集預(yù)測性能的提升更明顯. 表3 3 種方法在數(shù)據(jù)集上的balance 值 表4 3 種方法在數(shù)據(jù)集上的F1-measure 值 表5 3 種方法在數(shù)據(jù)集上的G-Mean 值 綜上所述,本文在SMOTE 算法和Borderline-SMOTE算法的影響下提出的HDR 算法,在解決SDP的類不平衡問題時(shí),有效緩解了數(shù)據(jù)分布的不平衡性,并且其生成的多樣性新合成實(shí)例也大大提升了分類器的性能,提高了模型預(yù)測的準(zhǔn)確率. 由于已有的過采樣技術(shù)往往導(dǎo)致不同程度的過擬合,并且算法的處理過程通常覆蓋絕大多數(shù)實(shí)例,提高了模型預(yù)測的成本.針對以上缺點(diǎn),本文提出一種基于異類距離排名的過采樣方法(HDR),HDR 利用邊界實(shí)例與最近多數(shù)類的歐氏距離,幫助生成更加多樣性的新合成實(shí)例,同時(shí)噪聲過濾步驟大大降低了新實(shí)例導(dǎo)致的過擬合的可能性.本文通過在NASA的MDP 實(shí)際項(xiàng)目數(shù)據(jù)集上采用RF 分類器與兩種過采樣算法進(jìn)行比較來評估HDR的性能,在用來評估的3 個(gè)指標(biāo)(balance,F1-measure,G-Mean)上可以看到經(jīng)過HDR算法處理過的不平衡數(shù)據(jù)集在軟件預(yù)測模型的性能上體現(xiàn)了較大的優(yōu)勢,然而同時(shí)也看到了HDR 面對小樣本數(shù)據(jù)集的性能缺陷.因此,如何調(diào)整HDR 算法使之能較好的解決各種不同大小的數(shù)據(jù)集以及采取更多的分類器驗(yàn)證其性能將是接下來的研究重點(diǎn).4 實(shí)驗(yàn)分析
4.1 實(shí)驗(yàn)數(shù)據(jù)集
4.2 實(shí)驗(yàn)評價(jià)指標(biāo)
4.3 實(shí)驗(yàn)設(shè)計(jì)
4.4 實(shí)驗(yàn)結(jié)果分析
5 結(jié)論與展望