• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種軟件缺陷不平衡數(shù)據(jù)分類新方法

      2021-04-10 03:56:32劉文英林亞林李克文雷永秀
      關(guān)鍵詞:軟件缺陷降維決策樹(shù)

      劉文英,林亞林,李克文,雷永秀

      (中國(guó)石油大學(xué)(華東) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 青島 266580)

      對(duì)軟件缺陷預(yù)測(cè)的研究表明,80%的缺陷集中發(fā)生在20%的模塊中,這說(shuō)明軟件系統(tǒng)中的數(shù)據(jù)分布是不平衡的,有缺陷模塊的數(shù)量遠(yuǎn)遠(yuǎn)少于無(wú)缺陷模塊的數(shù)量。雖然有缺陷類樣本的數(shù)量很少,但正確識(shí)別有缺陷樣本是軟件缺陷預(yù)測(cè)的關(guān)鍵,錯(cuò)誤預(yù)測(cè)有缺陷樣本可能會(huì)導(dǎo)致遺漏關(guān)鍵錯(cuò)誤從而增加軟件開(kāi)發(fā)成本。因此,解決不平衡數(shù)據(jù)問(wèn)題對(duì)于提高軟件質(zhì)量、減少預(yù)測(cè)誤差和成功部署軟件具有重要意義。

      不平衡數(shù)據(jù)處理[1]是機(jī)器學(xué)習(xí)研究中的熱點(diǎn)之一,更是軟件缺陷預(yù)測(cè)方向不可或缺的部分,已有不少學(xué)者專注于不平衡數(shù)據(jù)的研究。目前公認(rèn)的解決不平衡數(shù)據(jù)問(wèn)題的方法是從數(shù)據(jù)和算法兩個(gè)層面進(jìn)行的。數(shù)據(jù)層面通過(guò)采樣方法進(jìn)行處理,算法層面通過(guò)應(yīng)用集成分類算法、代價(jià)敏感算法等處理數(shù)據(jù)。例如,Patel等[2]提出合并自適應(yīng)K最近鄰和模糊K最近鄰的方法來(lái)提高不平衡數(shù)據(jù)的分類性能。Marwa等[3]提出一種多目標(biāo)進(jìn)化方法優(yōu)化傾斜決策樹(shù),并將其應(yīng)用到不平衡數(shù)據(jù)分類。Liu等[4]提出了兩階段成本敏感學(xué)習(xí)方法,該方法將成本信息處理分為特征選擇和分類兩個(gè)階段。Rodriguez等[5]比較了成本敏感算法、采樣方法、混合技術(shù)和集成技術(shù)來(lái)處理不平衡數(shù)據(jù)集,結(jié)果表明,不平衡數(shù)據(jù)經(jīng)過(guò)處理后提高了預(yù)測(cè)模型的性能。Ruchika等[6]提出一種新的過(guò)采樣算法SPIDER3,并將采樣算法與成本敏感分類器結(jié)合使用,解決缺陷數(shù)據(jù)集的不平衡問(wèn)題,提高預(yù)測(cè)模型的性能。Siers等[7]提出成本敏感決策樹(shù)和成本敏感投票兩種技術(shù)來(lái)處理不平衡數(shù)據(jù)問(wèn)題,還結(jié)合SMOTE過(guò)采樣方法來(lái)優(yōu)化決策森林進(jìn)行軟件缺陷預(yù)測(cè)。張忠林等[8]提出一種融合了閾值移動(dòng)技術(shù)和Bagging算法的PT-Bagging集成算法,相較于Bagging算法,所提算法在處理不平衡數(shù)據(jù)時(shí)具有更好的性能。Yuan等[9]提出一種新的集成學(xué)習(xí)算法SE-gcForest,在gcForest算法基礎(chǔ)上結(jié)合SMOTE和EasyEnsemble來(lái)處理不平衡數(shù)據(jù)。

      隨著實(shí)際軟件系統(tǒng)復(fù)雜度越來(lái)越高,相應(yīng)的軟件缺陷預(yù)測(cè)面臨的數(shù)據(jù)不平衡問(wèn)題也越來(lái)越突出,目前已出現(xiàn)了一些關(guān)于軟件缺陷預(yù)測(cè)與不平衡數(shù)據(jù)相結(jié)合的研究,但是采樣技術(shù)、特征降維、軟件缺陷預(yù)測(cè)模型等仍然存在很多問(wèn)題值得去探索。由于混合采樣技術(shù)理論上同時(shí)具備欠采樣和過(guò)采樣的優(yōu)點(diǎn),本研究提出一種改進(jìn)的RUS-RSMOTE混合采樣方法,克服SMOTE算法合成新樣本時(shí)隨機(jī)數(shù)取值不精確的缺點(diǎn),引入影響因素posFac對(duì)隨機(jī)數(shù)進(jìn)行約束,在此基礎(chǔ)上結(jié)合隨機(jī)欠采樣技術(shù),對(duì)不平衡的軟件缺陷數(shù)據(jù)集進(jìn)行處理,并利用F-value、AUC、G-mean對(duì)不平衡的軟件缺陷數(shù)據(jù)分類結(jié)果進(jìn)行評(píng)價(jià)。

      1 相關(guān)算法

      1.1 隨機(jī)欠采樣(Random under-sampling, RUS)

      欠采樣技術(shù)通過(guò)一定的規(guī)則或公式減少多數(shù)類樣本的數(shù)量,改變不平衡數(shù)據(jù)集的樣本分布,緩解數(shù)據(jù)集的不平衡程度,降低計(jì)算成本。隨機(jī)欠采樣、壓縮最近鄰[10]、Tomek links方法以及鄰域清理都是常用的欠采樣方法。

      隨機(jī)欠采樣通過(guò)刪除數(shù)據(jù)集中的多數(shù)類樣本實(shí)現(xiàn)類分布均衡的目的,進(jìn)而提高分類模型的效率,但是由于刪除多數(shù)類樣本的過(guò)程具有隨機(jī)性、偶然性,容易使重要信息丟失,降低學(xué)習(xí)器的分類效果。例如,NASA發(fā)布的軟件缺陷數(shù)據(jù)集PC2中有5 589個(gè)樣本,其中23個(gè)(缺陷率0.41%)為有缺陷樣本,5 566個(gè)為無(wú)缺陷樣本,不平衡率高達(dá)242,若使用隨機(jī)欠采樣技術(shù)實(shí)現(xiàn)1∶1(無(wú)缺陷樣本數(shù)∶有缺陷樣本數(shù))的數(shù)據(jù)分布,那么經(jīng)過(guò)隨機(jī)欠采樣處理后的新數(shù)據(jù)集只有46個(gè)樣本(23個(gè)無(wú)缺陷樣本和23個(gè)有缺陷樣本)。圖1是某一不平衡數(shù)據(jù)集經(jīng)過(guò)隨機(jī)欠采樣前后的樣本分布圖。

      圖1 隨機(jī)欠采樣前后樣本分布圖

      1.2 SMOTE

      SMOTE算法是最具代表性的過(guò)采樣算法,通過(guò)相鄰少數(shù)類樣本間線性插值生成新樣本[11],從而改變不平衡數(shù)據(jù)集的類分布情況。SMOTE算法通過(guò)少數(shù)類樣本間線性插值的方式生成新樣本,克服了隨機(jī)過(guò)采樣由于單純復(fù)制少數(shù)類樣本而導(dǎo)致分類器過(guò)擬合的現(xiàn)象,但也存在兩個(gè)方面的問(wèn)題,一是增加了數(shù)據(jù)集樣本量,從而增加了分類器訓(xùn)練時(shí)間;二是函數(shù)rand(0,1)取值范圍過(guò)大,未進(jìn)行精細(xì)控制,導(dǎo)致新合成樣本質(zhì)量無(wú)法得到保證。

      過(guò)采樣技術(shù)和欠采樣技術(shù)都是通過(guò)改變樣本數(shù)量來(lái)改變類分布,從而緩解不平衡數(shù)據(jù)集的樣本分布情況,降低不平衡率。這兩種采樣技術(shù)都有各自的優(yōu)缺點(diǎn),目前關(guān)于兩種技術(shù)的比較尚未形成統(tǒng)一的定論。而混合采樣技術(shù)[16]將欠采樣和過(guò)采樣結(jié)合起來(lái),首先對(duì)不平衡數(shù)據(jù)集進(jìn)行欠采樣,然后在此基礎(chǔ)上進(jìn)行過(guò)采樣?;旌喜蓸涌梢允乔凡蓸雍瓦^(guò)采樣具體方法中任意兩種的組合體。

      1.3 主成分分析

      主成分分析(principal components analysis,PCA)實(shí)質(zhì)是用一組正交向量對(duì)原始特征進(jìn)行變換得到新特征,且新特征間互不相關(guān)。數(shù)據(jù)本身決定著數(shù)據(jù)從原來(lái)的坐標(biāo)系轉(zhuǎn)換到新坐標(biāo)系,第一個(gè)新坐標(biāo)軸是由原始數(shù)據(jù)中方差最大的方向確定的,第二個(gè)新坐標(biāo)軸是由和第一個(gè)新坐標(biāo)軸正交并且方差最大的方向確定的,不斷重復(fù)該過(guò)程,使得重復(fù)次數(shù)等于原始數(shù)據(jù)中的特征數(shù)d,得到投影變化后的新坐標(biāo)軸為{w1,w2,…,wd}。研究發(fā)現(xiàn),大部分方差都包含在最開(kāi)始的{w1,w2,w3,…,wd′}幾個(gè)坐標(biāo)軸中,剩下的坐標(biāo)軸可以忽略,將維度從d降低到d′實(shí)現(xiàn)特征降維,也可以設(shè)置一個(gè)重構(gòu)閾值t,選擇占原始數(shù)據(jù)的方差中一定百分比的特征向量,t一般取95%。PCA適用于對(duì)數(shù)值型數(shù)據(jù)進(jìn)行處理,優(yōu)點(diǎn)是僅需識(shí)別最重要的多個(gè)特征來(lái)降低數(shù)據(jù)的復(fù)雜性,缺點(diǎn)是有可能損失重要信息。

      1.4 Vote

      集成分類器通過(guò)某種策略結(jié)合多個(gè)單分類器來(lái)完成學(xué)習(xí)任務(wù),實(shí)際上是一種組合分類器的方法,集成分類器的結(jié)構(gòu)如圖2所示。如果把單分類器看作是一位決策者,那么集成分類器相當(dāng)于綜合多個(gè)決策者的智慧來(lái)解決問(wèn)題。集成分類器可以根據(jù)分類器的類型分為同質(zhì)集成和異質(zhì)集成,同質(zhì)集成是由類型相同的單分類器結(jié)合而成,例如“決策樹(shù)集成分類器”中的單分類器都是決策樹(shù);異質(zhì)集成是由類型不同的單分類器結(jié)合而成,例如同時(shí)包含決策樹(shù)和樸素貝葉斯的集成分類器。在不平衡的軟件缺陷數(shù)據(jù)集上應(yīng)用集成分類器,可以使得集成分類器的泛化能力明顯高于單分類器,避免過(guò)擬合現(xiàn)象的發(fā)生,有效地降低了單分類器在不平衡數(shù)據(jù)分類時(shí)所產(chǎn)生的偏差[12]。

      圖2 集成分類器結(jié)構(gòu)

      Vote是一種集成分類器結(jié)合策略,包括三種投票方法:相對(duì)多數(shù)投票法即少數(shù)服從多數(shù),預(yù)測(cè)結(jié)果是得票最高的類;絕對(duì)多數(shù)投票法要求最終預(yù)測(cè)類別所得票數(shù)過(guò)半;加權(quán)投票法將每個(gè)類別的票數(shù)進(jìn)行加權(quán)求和,結(jié)果最大的類別即為預(yù)測(cè)結(jié)果。投票策略既可以集成相同類型的分類器,又可以集成不同類型的分類器,因此可以使用投票策略構(gòu)建異質(zhì)集成分類器,綜合多個(gè)分類器的優(yōu)勢(shì)構(gòu)建預(yù)測(cè)模型。

      本研究利用5種集成技術(shù)(如表1)來(lái)構(gòu)建軟件缺陷預(yù)測(cè)模型。

      2 基于RUS-RSMOTE-PCA-Vote的軟件缺陷不平衡數(shù)據(jù)分類方法

      利用混合采樣技術(shù)可以同時(shí)具備欠采樣和過(guò)采樣的優(yōu)點(diǎn),提出一種改進(jìn)的RUS-RSMOTE混合采樣方法。首先對(duì)原始缺陷數(shù)據(jù)集進(jìn)行隨機(jī)欠采樣來(lái)減少無(wú)缺陷樣本的數(shù)量;然后使用SMOTE算法進(jìn)行過(guò)采樣,同時(shí)考慮無(wú)缺陷樣本分布的影響作用,融入影響因素posFac約束隨機(jī)數(shù)rand(0,1)的取值。為解決不平衡數(shù)據(jù)集中的數(shù)據(jù)維度問(wèn)題,將提出的RUS-RSMOTE與PCA相結(jié)合對(duì)軟件缺陷數(shù)據(jù)集進(jìn)行處理。首先對(duì)不平衡數(shù)據(jù)集進(jìn)行RUS-RSMOTE混合采樣,根據(jù)類別標(biāo)記將樣本劃分為有缺陷樣本和無(wú)缺陷樣本,對(duì)無(wú)缺陷樣本進(jìn)行隨機(jī)欠采樣,對(duì)有缺陷樣本進(jìn)行RSMOTE過(guò)采樣;然后對(duì)經(jīng)過(guò)RUS-RSMOTE混合采樣處理后的數(shù)據(jù)集進(jìn)行PCA降維,將所有樣本進(jìn)行中心化,計(jì)算樣本的協(xié)方差矩陣XXT并進(jìn)行特征值分解,最后取前面最大的d′個(gè)特征值對(duì)應(yīng)的特征向量進(jìn)行降維。最后,應(yīng)用Vote集成到的個(gè)體學(xué)習(xí)器,構(gòu)建適合不平衡數(shù)據(jù)的軟件缺陷預(yù)測(cè)模型。

      表1 本研究采用的五種分類器及相關(guān)文獻(xiàn)

      2.1 改進(jìn)的RSMOTE過(guò)采樣方法

      針對(duì)SMOTE算法合成新樣本時(shí)隨機(jī)數(shù)取值不精確的缺點(diǎn),引入影響因素posFac對(duì)隨機(jī)數(shù)進(jìn)行約束[18],使得新樣本合成過(guò)程中的隨機(jī)數(shù)取值更有針對(duì)性以更加合理地?cái)U(kuò)展少數(shù)類樣本,使新數(shù)據(jù)集趨于平衡,提高分類器對(duì)于少數(shù)類樣本的分類能力。影響因素posFac的計(jì)算如下:

      1) 計(jì)算有缺陷樣本xi與其K個(gè)同類近鄰的平均歐幾里得距離

      (1)

      2) 計(jì)算所有有缺陷樣本xi與其K個(gè)同類近鄰的平均歐幾里得距離之和

      (2)

      其中,m表示有缺陷樣本的數(shù)量。

      3) 計(jì)算m個(gè)有缺陷樣本與同類近鄰的平均歐幾里得距離和的均值

      (3)

      4) 計(jì)算有缺陷樣本xi與其K個(gè)無(wú)缺陷樣本近鄰的平均歐幾里得距離

      (4)

      5) 計(jì)算所有有缺陷樣本xi與其K個(gè)無(wú)缺陷樣本近鄰的平均歐幾里得距離之和

      (5)

      6) 計(jì)算有缺陷樣本與無(wú)缺陷樣本間的平均歐幾里得距離和的均值

      (6)

      7) 計(jì)算當(dāng)前被選中的邊界樣本與其K個(gè)同類近鄰的平均歐幾里得距離

      (7)

      8) 計(jì)算當(dāng)前被選中的邊界樣本與其K個(gè)無(wú)缺陷樣本近鄰的平均歐幾里得距離

      (8)

      9) 計(jì)算相對(duì)距離比

      (7)

      10) 得到影響因素

      (8)

      基于樣本分布的RSMOTE算法描述:計(jì)算任意一個(gè)少數(shù)類樣本xi到數(shù)據(jù)集中所有同類樣本的歐幾里得距離,接著尋找樣本xi的K最近鄰,根據(jù)采樣倍率N從xi的K最近鄰中隨機(jī)選擇N個(gè)樣本與xi進(jìn)行線性插值合成新樣本xnew,假設(shè)xj為被選中的xi的K最近鄰樣本,新樣本合成公式為xnew=xi+posFac(xj-xi)。

      2.2 基于RUS-RSMOTE-PCA-Vote的軟件缺陷不平衡數(shù)據(jù)分類方法

      基于RUS-RSMOTE和PCA的特征降維框架如圖3所示,相應(yīng)的算法具體過(guò)程如下:

      圖3 基于RUS-RSMOTE和PCA的特征降維框架

      輸入:DataSet-原不平衡數(shù)據(jù)集;

      輸出:帶有標(biāo)記的分類結(jié)果。

      //RUS-RSMOTE混合采樣階段:

      根據(jù)類別標(biāo)記將DataSet劃分成DefectSet和NonDefectSet;

      對(duì)數(shù)據(jù)集NonDefectSet按照預(yù)期達(dá)到的不平衡率進(jìn)行隨機(jī)欠采樣,記為數(shù)據(jù)集newNonDefectSet;

      有缺陷樣本數(shù)m=DefectSet.size( );

      對(duì)數(shù)據(jù)集DefectSet進(jìn)行隨機(jī)化處理;

      初始化隨機(jī)變量i=0;

      WHILEi

      i++;

      END WHILE;

      newDataSet=newDataSet+DefectSet+new NonDefectSet;

      //PCA降維階段:

      將所有樣本xi進(jìn)行中心化;

      計(jì)算樣本的協(xié)方差矩陣XXT并進(jìn)行特征值分解;

      對(duì)特征值按從大到小的順序進(jìn)行排序;

      取前面最大的d′個(gè)特征值對(duì)應(yīng)的特征向量w1,w2,…,wd′;

      利用特征向量實(shí)現(xiàn)數(shù)據(jù)降維得到新數(shù)據(jù)集;

      //Vote構(gòu)建集成分類器階段:

      將經(jīng)過(guò)前兩個(gè)階段處理后的數(shù)據(jù)集在樸素貝葉斯、決策樹(shù)、支持向量機(jī)、K最近鄰4種算法上進(jìn)行分類;

      分析所有數(shù)據(jù)集在樸素貝葉斯、決策樹(shù)、支持向量機(jī)、K最近鄰4種算法上的分類效果,確定最終用于集成的個(gè)體分類器,組合規(guī)則為“Average of Probabilities”。

      3 實(shí)驗(yàn)設(shè)計(jì)與分析

      3.1 實(shí)驗(yàn)對(duì)象

      利用數(shù)據(jù)挖掘工具WEAK,使用NASA發(fā)布的軟件缺陷數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)集的具體情況見(jiàn)表2。

      表2 用于實(shí)驗(yàn)的10個(gè)軟件缺陷數(shù)據(jù)集基本信息

      3.2 實(shí)驗(yàn)評(píng)價(jià)指標(biāo)

      通常情況下精準(zhǔn)率(precision)和召回率(recall)是評(píng)價(jià)分類器性能的常用指標(biāo),但是對(duì)于軟件缺陷預(yù)測(cè)模型而言,由于面臨著數(shù)據(jù)不平衡問(wèn)題,不適合使用上述兩個(gè)指標(biāo)進(jìn)行模型評(píng)價(jià),本研究使用F-value、AUC、G-mean作為評(píng)價(jià)指標(biāo)。

      F-value是精準(zhǔn)率和召回率的調(diào)和均值,是不平衡數(shù)據(jù)分類問(wèn)題中常用的評(píng)價(jià)指標(biāo),當(dāng)精準(zhǔn)率和召回率的取值都大時(shí),F(xiàn)-value值才大,且值越大代表預(yù)測(cè)模型性能越好。計(jì)算公式為:

      (9)

      AUC(Area Under the Curve)表示ROC曲線與坐標(biāo)軸所圍成的面積,取值范圍是0~1,是不平衡數(shù)據(jù)分類問(wèn)題中常用的評(píng)價(jià)指標(biāo),AUC值越大,則預(yù)測(cè)模型的性能越好。

      G-mean是有缺陷樣本召回率和無(wú)缺陷樣本召回率的幾何均值,是衡量不平衡軟件缺陷數(shù)據(jù)集整體分類情況的性能評(píng)價(jià)指標(biāo),只有當(dāng)有缺陷樣本和無(wú)缺陷樣本的召回率都較大時(shí),G-mean值才大,同樣值越大代表預(yù)測(cè)模型性能越好。計(jì)算公式為:

      (10)

      表3 分類器情況統(tǒng)計(jì)

      數(shù)據(jù)集中樣本的預(yù)測(cè)結(jié)果要么是“有缺陷”要么是“無(wú)缺陷”,是一個(gè)典型的二分類問(wèn)題,樣本的預(yù)測(cè)類別與實(shí)際類別相比會(huì)產(chǎn)生4種結(jié)果(如表3),TP表示正確分類的有缺陷樣本數(shù),TN表示正確分類的無(wú)缺陷樣本數(shù),F(xiàn)P表示實(shí)際為無(wú)缺陷類但被預(yù)測(cè)為有缺類的樣本數(shù),F(xiàn)N表示實(shí)際為有缺陷類但被預(yù)測(cè)為無(wú)缺類的樣本數(shù)。

      3.3 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析

      實(shí)驗(yàn)中的軟件缺陷數(shù)據(jù)集不平衡程度較高,MC1數(shù)據(jù)集的不平衡率最高,為138.21,KC1數(shù)據(jù)集的不平衡率最低,為5.48。為降低不平衡率且最大限度的保持原始數(shù)據(jù)分布,設(shè)置欠采樣后的不平衡率降為5,過(guò)采樣的鄰域值K取5。

      為評(píng)估RUS-RSMOTE混合采樣方法在不平衡數(shù)據(jù)集處理方面的有效性,將其與RUS[19]、SMOTE[20]、RSMOTE[18]、RUS-SMOTE[21]進(jìn)行對(duì)比,選用CM1、KC1、KC3、MC1、MW1、PC2作為實(shí)驗(yàn)數(shù)據(jù)集,在經(jīng)過(guò)采樣處理后的新數(shù)據(jù)集上使用決策樹(shù)(J48)構(gòu)建軟件缺陷預(yù)測(cè)模型,為保證客觀性,所有實(shí)驗(yàn)采用十折交叉驗(yàn)證進(jìn)行,選用F-value、AUC和G-mean作為驗(yàn)證RUS-RSMOTE混合采樣方法在軟件缺陷預(yù)測(cè)中的有效性的評(píng)價(jià)指標(biāo)。

      圖4~6是6個(gè)軟件缺陷數(shù)據(jù)集經(jīng)過(guò)5種采樣方法處理后的F-value、AUC、G-mean評(píng)價(jià)指標(biāo)對(duì)應(yīng)的柱狀圖。由圖4可見(jiàn),所有數(shù)據(jù)集經(jīng)過(guò)RUS-RSMOTE算法處理后的F-value值普遍高于其他采樣算法,在數(shù)據(jù)集KC3上尤為明顯。由圖5、6可見(jiàn),除數(shù)據(jù)集CM1外,剩余5個(gè)數(shù)據(jù)集經(jīng)過(guò)RUS-RSMOTE算法處理后的AUC、G-mean值的高于其他采樣算法。

      圖4 不同算法上的F-value值對(duì)比

      圖5 不同算法上的AUC值對(duì)比

      圖6 不同算法上的G-mean值對(duì)比

      綜合三個(gè)評(píng)價(jià)指標(biāo)來(lái)看,經(jīng)過(guò)隨機(jī)欠采樣處理的不平衡數(shù)據(jù)集的性能最差,評(píng)價(jià)指標(biāo)取值最低。RUS-RSMOTE算法與其他采樣算法相比,在不平衡軟件缺陷數(shù)據(jù)集上的F-value、AUC、G-mean值更高,證實(shí)了RUS-RSMOTE算法對(duì)于處理不平衡的軟件缺陷數(shù)據(jù)集的有效性。

      PC2數(shù)據(jù)集中某兩種屬性的數(shù)據(jù)分布如圖7所示,圖7(a)表示原始數(shù)據(jù)集分布,圖7(b)表示在RUS-RSMOTE混合采樣的基礎(chǔ)上進(jìn)行PCA特征降維后的數(shù)據(jù)分布。其中,紅色標(biāo)記表示無(wú)缺陷樣本,藍(lán)色標(biāo)記表示有缺陷樣本,可以看出圖7(a)中的無(wú)缺陷樣本遠(yuǎn)遠(yuǎn)多于有缺陷樣本,樣本的不平衡程度非常高,無(wú)法找到合適的分割線對(duì)樣本進(jìn)行分類,圖7(b)的樣本分布更適合分類器學(xué)習(xí)。

      表4列出了經(jīng)過(guò)RUS-RSMOTE混合采樣和PCA降維后的10種數(shù)據(jù)集在樸素貝葉斯、決策樹(shù)、支持向量機(jī)、K最近鄰4種機(jī)器學(xué)習(xí)算法上進(jìn)行分類的F-value、AUC、G-mean指標(biāo)對(duì)比,表格中加粗以及下劃線表示的數(shù)據(jù)代表值最高。F-value、G-mean值方面,K最近鄰算法在10個(gè)數(shù)據(jù)集上均取得最大值;AUC值方面,K最近鄰算法在除PC4之外的9個(gè)數(shù)據(jù)集上取得最大值。比較4種分類算法在F-value、AUC、G-mean 3個(gè)指標(biāo)上的平均值發(fā)現(xiàn),K最近鄰算法的最大,決策樹(shù)算法次之。綜上所述,K最近鄰算法在軟件缺陷數(shù)據(jù)集上的分類性能最好,決策樹(shù)算法次之,樸素貝葉斯和支持向量機(jī)的分類性能相對(duì)較差。而支持向量機(jī)算法的最終決策函數(shù)只由少數(shù)的支持向量所確定,魯棒性較強(qiáng)。因此,將K最近鄰、決策樹(shù)、支持向量機(jī)利用投票機(jī)制Vote進(jìn)行異質(zhì)集成。

      圖7 PC2數(shù)據(jù)集的二維散點(diǎn)圖

      表4 不同算法上的評(píng)價(jià)指標(biāo)對(duì)比

      為了驗(yàn)證Vote集成分類器的性能,將其與Bagging、AdaBoostM1、RandomTree、RandomForest集成分類器進(jìn)行對(duì)比,比較這些集成分類器在軟件缺陷預(yù)測(cè)性能方面的差異;為了更好地體現(xiàn)分類效果,同時(shí)與性能較好的單分類器K最近鄰(KNN)進(jìn)行比較。其中,Bagging、AdaBoostM1為元分類器,使用K最近鄰作為基分類器。為保證客觀性,所有實(shí)驗(yàn)采用十折交叉驗(yàn)證進(jìn)行,同樣選用F-value、G-mean和AUC作為驗(yàn)證集成分類器在軟件缺陷預(yù)測(cè)中的性能評(píng)價(jià)指標(biāo)。

      表5是10種軟件缺陷數(shù)據(jù)集在6種分類算法上的F-value值對(duì)比。由表5可以看出:

      1) 使用kNN作為基分類器的Bagging、AdaBoostM1在F-value值上幾乎沒(méi)有提高,應(yīng)用Bagging、AdaBoostM1后的平均F-value值與kNN相等,甚至在應(yīng)用Bagging后數(shù)據(jù)集KC1、MW1、PC1、PC3的F-value值反而略微降低。

      2) Vote在9個(gè)數(shù)據(jù)集上具有最高的F-value值,平均F-value值為0.87;RandomForest次之,值為0.86。

      表6是10種軟件缺陷數(shù)據(jù)集在6種分類算法上的AUC值對(duì)比。由表6可以看出:

      1) 使用kNN作為基分類器的Bagging在AUC值上有顯著提升,而應(yīng)用AdaBoostM1后數(shù)據(jù)集KC1、KC3、MC1、PC1、PC2、PC5的AUC值略微降低,平均AUC值也低于kNN。

      2) RandomForest和Vote的AUC均值相等,值為0.94,相比其他分類器,在軟件缺陷預(yù)測(cè)方面具有明顯優(yōu)勢(shì)。

      表5 不同算法上的F-value值對(duì)比

      表6 不同算法上的AUC值對(duì)比

      表7是10種軟件缺陷數(shù)據(jù)集在6種分類算法上的G-mean值對(duì)比。通過(guò)觀察可以得到如下結(jié)論:

      1) 對(duì)比Bagging、AdaBoostM1和kNN發(fā)現(xiàn), Bagging、AdaBoostM1幾乎沒(méi)有貢獻(xiàn),與單分類器的平均G-mean值相等。

      2) 與AUC值情況一樣,RandomForest和Vote在G-mean上的均值相等,值為0.89,相比其他分類器,這兩種集成算法在軟件缺陷預(yù)測(cè)方面具有明顯優(yōu)勢(shì)。

      圖8~10是采用Vote、kNN算法在10個(gè)數(shù)據(jù)集上的F-value、AUC、G-mean對(duì)比。從圖8可以看出,采用Vote進(jìn)行分類的數(shù)據(jù)集中除PC1外,其他9個(gè)數(shù)據(jù)集的F-value值普遍高于kNN,在數(shù)據(jù)集PC4上尤為明顯。從圖9可以看出,兩者在PC5數(shù)據(jù)集上的AUC值都是0.97,除此之外,采用Vote進(jìn)行分類的AUC值明顯優(yōu)于kNN。圖10的柱狀圖顯示兩者在3個(gè)數(shù)據(jù)集上的G-mean值相等,采用Vote進(jìn)行分類的6個(gè)數(shù)據(jù)集的G-mean值高于kNN。綜上所述,采用Vote集成K最近鄰、決策樹(shù)、支持向量機(jī)的分類器性能遠(yuǎn)遠(yuǎn)超過(guò)個(gè)體分類器kNN。

      表7 不同算法上的G-mean值對(duì)比

      圖8 kNN和Vote的F-value值對(duì)比

      圖9 kNN和Vote的AUC值對(duì)比

      圖10 kNN和Vote的G-mean值對(duì)比

      綜合6種分類算法在F-value、AUC、G-mean 3項(xiàng)指標(biāo)的表現(xiàn)來(lái)看,將K最近鄰、決策樹(shù)、支持向量機(jī)利用投票機(jī)制Vote進(jìn)行異質(zhì)集成的分類器在軟件缺陷預(yù)測(cè)方面具有顯著的性能優(yōu)勢(shì)。

      4 總結(jié)與展望

      為解決軟件缺陷預(yù)測(cè)中存在的數(shù)據(jù)不平衡、特征維度高以及預(yù)測(cè)精度低等問(wèn)題,提出了一種基于RUS-RSMOTE-PCA-Vote的軟件缺陷不平衡數(shù)據(jù)分類方法,首先通過(guò)隨機(jī)欠采樣來(lái)減少無(wú)缺陷樣本的數(shù)量,然后進(jìn)行SMOTE過(guò)采樣,在過(guò)采樣中綜合總體樣本的分布狀況引入影響因素posFac指導(dǎo)新樣本的合成,對(duì)經(jīng)過(guò)RUS-RSMOTE混合采樣處理后的數(shù)據(jù)集進(jìn)行PCA降維,最后應(yīng)用Vote組合K最近鄰、決策樹(shù)、支持向量機(jī)構(gòu)造集成分類器。實(shí)驗(yàn)結(jié)果表明,所提方法可以有效地解決軟件缺陷預(yù)測(cè)中存在的數(shù)據(jù)不平衡、特征維度高以及預(yù)測(cè)精度低等問(wèn)題。

      由于綜合考慮了軟件缺陷數(shù)據(jù)存在的數(shù)據(jù)不平衡、特征維度高以及預(yù)測(cè)精度低等問(wèn)題,因此本方法在時(shí)間復(fù)雜度上稍高于其他方法,接下來(lái)將探究不同運(yùn)行參數(shù)對(duì)于軟件缺陷預(yù)測(cè)的分類性能影響并提高運(yùn)行速度。同時(shí)結(jié)合機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的新技術(shù)進(jìn)行不平衡數(shù)據(jù)處理,例如探討生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks, GAN)在數(shù)據(jù)擴(kuò)充方面的應(yīng)用等。

      猜你喜歡
      軟件缺陷降維決策樹(shù)
      Three-Body’s epic scale and fiercely guarded fanbase present challenges to adaptations
      基于源文件可疑度的靜態(tài)軟件缺陷檢測(cè)方法研究
      降維打擊
      海峽姐妹(2019年12期)2020-01-14 03:24:40
      一種針對(duì)不均衡數(shù)據(jù)集的SVM決策樹(shù)算法
      決策樹(shù)和隨機(jī)森林方法在管理決策中的應(yīng)用
      電子制作(2018年16期)2018-09-26 03:27:06
      基于NPE-SVM的軟件缺陷預(yù)測(cè)模型
      開(kāi)源程序的軟件缺陷分布特征的量化分析研究
      基于決策樹(shù)的出租車乘客出行目的識(shí)別
      基于肺癌CT的決策樹(shù)模型在肺癌診斷中的應(yīng)用
      軟件缺陷管理方案分析
      嘉峪关市| 黄骅市| 奇台县| 南漳县| 鹤山市| 抚州市| 遂平县| 本溪| 焦作市| 宾川县| 柘荣县| 梅州市| 泾源县| 通城县| 怀集县| 和龙市| 沾化县| 汉中市| 麻阳| 孟连| 乡宁县| 华安县| 旌德县| 锡林郭勒盟| 花莲市| 刚察县| 志丹县| 湖口县| 河津市| 开原市| 湖州市| 新和县| 临泽县| 沧源| 麟游县| 鹿邑县| 靖州| 靖宇县| 科技| 阆中市| 巴马|