常瑞花,沈曉衛(wèi)
(1.武警工程大學(xué)科研部,西安 710086;2.火箭軍工程大學(xué),西安 710025)
軟件缺陷預(yù)測中基于Wrapper的特征選擇方法*
常瑞花1,沈曉衛(wèi)2
(1.武警工程大學(xué)科研部,西安 710086;2.火箭軍工程大學(xué),西安 710025)
特征選擇是提高軟件缺陷預(yù)測精度的關(guān)鍵步驟之一。傳統(tǒng)的軟件缺陷預(yù)測過程主要基于Filter方式進(jìn)行特征選擇,基于Wrapper特征選擇方法的研究還處于起步階段。為了進(jìn)一步研究Wrapper式特征選擇方法在軟件缺陷預(yù)測中的應(yīng)用情況,將特征選擇和缺陷預(yù)測過程相融合,結(jié)合不同的評(píng)價(jià)指標(biāo),設(shè)計(jì)了8種基于Wrapper式特征選擇的缺陷預(yù)測方法。在這些方法中,首先選擇4種常用的缺陷預(yù)測算法分別作為內(nèi)部與外部分類器,然后在AUC和F-measure指標(biāo)下選擇特征子集,在AUC指標(biāo)下評(píng)估預(yù)測結(jié)果。仿真結(jié)果表明,內(nèi)部分類器和外部分類器均選擇為RF時(shí),軟件缺陷預(yù)測精度最佳,NB次之,但是RF耗費(fèi)時(shí)間較多,綜合考慮精度與效率,推薦內(nèi)外分類器均采用NB算法。
軟件缺陷預(yù)測,特征選擇,Wrapper,度量元
軟件密集型裝備,例如航空航天系統(tǒng)中,軟件所占比例日益增加,系統(tǒng)的可靠性愈來愈依賴于其采用軟件的可靠性。為提高系統(tǒng)的可靠性,軟件缺陷預(yù)測已成為軟件工程數(shù)據(jù)挖掘領(lǐng)域中熱點(diǎn)研究內(nèi)容之一[1],學(xué)者們利用統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)等技術(shù)提出了大量的軟件缺陷預(yù)測模型[2-6]。研究表明,軟件缺陷預(yù)測模型的有效性不僅依靠算法而且依賴于度量元數(shù)據(jù)的質(zhì)量[7],無關(guān)特征與冗余特征可能對(duì)預(yù)測模型產(chǎn)生弱化效果,對(duì)度量元數(shù)據(jù)進(jìn)行降維,去掉原始數(shù)據(jù)中與類別不相關(guān)和多余特征,可以大大提高軟件缺陷預(yù)測模型的性能[8]。軟件度量元數(shù)據(jù)的特征選擇已成為構(gòu)建軟件缺陷預(yù)測模型不可或缺的部分,本文對(duì)此展開研究。
特征選擇指的是從D維的原始特征集F中選擇一個(gè)d維子集,該子集在原始特征集F所有維數(shù)為d的子集中使某個(gè)準(zhǔn)則函數(shù)J最優(yōu)[9]。特征選擇問題是NP難問題[10]。按照與后續(xù)分類算法的結(jié)合方式可將其分為 Filter、Wrapper兩類[11]。目前,特征選擇技術(shù)在軟件缺陷預(yù)測中的應(yīng)用研究還十分有限,文獻(xiàn)[12]提出一種可容忍噪聲的特征選擇框架,該框架首先利用聚類分析,將原始特征劃分到指定的簇中,然后設(shè)計(jì)了3種啟發(fā)式的特征選擇策略。文獻(xiàn)[13]對(duì)比分析3種基于Filter和Wrapper的特征選擇方法,結(jié)果表明Wrapper優(yōu)于Filter方法,但計(jì)算成本較大。Guo等人[14]研究發(fā)現(xiàn)無關(guān)特征對(duì)隨機(jī)森林的預(yù)測效果影響較大,使用隨機(jī)森林對(duì)特征進(jìn)行排序時(shí),發(fā)現(xiàn)前5個(gè)特征的預(yù)測效果和使用21個(gè)特征進(jìn)行預(yù)測的效果相當(dāng)。Gao等人[15]在一個(gè)大型通信系統(tǒng)上進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明移除85%的全部特征后,預(yù)測準(zhǔn)確率沒有降低,反而提升,同時(shí)發(fā)現(xiàn)各種過濾式方法的預(yù)測效果類似,沒有顯著性差異。Wang等人[16]認(rèn)為單個(gè)特征選擇方法不穩(wěn)定,他們將多個(gè)特征選擇方法進(jìn)行綜合以獲得穩(wěn)定的特征集合,研究了18種特征排序方法,對(duì)這18種方法進(jìn)行組合,共生成17種集成方案,實(shí)驗(yàn)結(jié)果表明隨著特征選擇方法集成數(shù)目的增加,缺陷預(yù)測性能開始提升;在集成2~4個(gè)特征選擇方法時(shí),效果最佳;隨著集成數(shù)量的增加,預(yù)測效果反而開始下降。Menzies等人[17]使用信息增益對(duì)特征進(jìn)行排序,他們的結(jié)論和Guo[14]相似。Rodriguez等人[18]使用3種過濾式和2種封裝式特征選擇方法在5組軟件工程數(shù)據(jù)集上進(jìn)行了研究,結(jié)果表明封裝式方法的預(yù)測效果優(yōu)于過濾式方法,但封裝式方法計(jì)算開銷高,實(shí)用性差。Wang[19]等人通過仿真實(shí)驗(yàn)也發(fā)現(xiàn),只需要3個(gè)軟件度量元特征就能達(dá)到軟件缺陷預(yù)測效果,因?yàn)閷?duì)于每一類特征,除了基本特征是從源代碼中直接抽取外,其他特征均是由基本特征計(jì)算得到。
封裝式(Wrapper)特征選擇方法將分類器與特征選擇集成起來,利用分類器的結(jié)果對(duì)特征子集好壞進(jìn)行評(píng)價(jià)。封裝式特征選擇的過程如圖1所示。
圖1 基于Wrapper的特征選擇方法框架
由圖1可以看出,封裝式特征選擇方法的性能主要受3方面的影響,分別是:①最優(yōu)特征子集的搜索方式;②學(xué)習(xí)(分類)器;③對(duì)已選擇特征子集的評(píng)估。與過濾式特征選擇算法不同,該方法考慮具體的分類學(xué)習(xí)算法,為了便于區(qū)分,本文將與特征選擇過程集成的學(xué)習(xí)器稱為內(nèi)部學(xué)習(xí)器,特征選擇后的分類器稱為外部學(xué)習(xí)器。內(nèi)部學(xué)習(xí)器主要進(jìn)行特征子集的評(píng)判,外部的學(xué)習(xí)器主要實(shí)現(xiàn)軟件缺陷的預(yù)測。
為了進(jìn)一步分析封裝式特征選擇方法在軟件缺陷預(yù)測領(lǐng)域中的應(yīng)用情況,本文分別從上述3方面出發(fā),設(shè)計(jì)了多個(gè)Wrapper式特征學(xué)習(xí)器,并在3組航空航天軟件數(shù)據(jù)上進(jìn)行仿真實(shí)驗(yàn)。
樸素貝葉斯算法(Naive Bayes)是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類方法,該算法中對(duì)于給定的訓(xùn)練數(shù)據(jù)集,首先基于特征條件獨(dú)立假設(shè),學(xué)習(xí)輸入/輸出的聯(lián)合概率分布;然后基于此模型,對(duì)給定的輸入x,利用貝葉斯定理求出后驗(yàn)概率最大的輸出y。樸素貝葉斯算法實(shí)現(xiàn)簡單,模型訓(xùn)練與預(yù)測的效率都很高,是軟件缺陷預(yù)測過程中常用的一種基準(zhǔn)算法。
決策樹(Decision Tree)是眾多的分類模型中,應(yīng)用最廣泛的分類算法之一,其通過構(gòu)造樹來解決分類問題。本文選擇C4.5算法生成特征決策樹。首先利用訓(xùn)練數(shù)據(jù)集來構(gòu)造決策樹,一旦樹建立起來,就可為未知樣本產(chǎn)生一個(gè)分類。決策樹具有便于使用、高效、規(guī)則易于解釋等特點(diǎn)。
支持向量機(jī)(Support Vector Machine,SVM)是借助最優(yōu)化方法解決機(jī)器學(xué)習(xí)問題的新工具,最初由V.Vapnik等人在1995年首先提出,近幾年來在其理論研究和算法實(shí)現(xiàn)等方面都取得了很大的進(jìn)展,開始成為克服“維數(shù)災(zāi)難”和過學(xué)習(xí)等困難強(qiáng)有力的手段。根據(jù)Vapnik&Chervonenkis的統(tǒng)計(jì)學(xué)習(xí)理論,如果數(shù)據(jù)服從某個(gè)(固定但未知的)分布,要使機(jī)器的實(shí)際輸出與理想輸出之間的偏差盡可能小,則機(jī)器應(yīng)遵循結(jié)構(gòu)風(fēng)險(xiǎn)最?。⊿tructural Risk Minimization,SRM)原則,而不是經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化原則,通俗地說就是應(yīng)當(dāng)使錯(cuò)誤概率的上界最小化。與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)相比,SVM具有結(jié)構(gòu)簡單且泛化能力高等特點(diǎn)。
隨機(jī)森林學(xué)習(xí)算法(Random Forest,RF)通過訓(xùn)練生成多個(gè)決策樹模型,然后綜合利用多個(gè)決策樹進(jìn)行分類。對(duì)于每個(gè)新的測試樣例,RF綜合多個(gè)決策樹的分類結(jié)果作為最終的分類結(jié)果。在隨機(jī)森林中,無需交叉驗(yàn)證來評(píng)價(jià)其分類的準(zhǔn)確性,隨機(jī)森林自帶OOB(Out-Of-Bag)錯(cuò)誤估計(jì),OOB被證明是無偏的。
為了對(duì)特征子集以及預(yù)測結(jié)果進(jìn)行評(píng)價(jià),本文在混淆矩陣的基礎(chǔ)上,構(gòu)造了軟件缺陷預(yù)測領(lǐng)域常用的評(píng)價(jià)指標(biāo),分別是F-measure和AUC。
下面首先給出二維混淆矩陣,如表1所示。
表1 二維混淆矩陣
基于表1所示的二維混淆矩陣,下面給出F-measure的計(jì)算公式:
AUC(Area Under roc Curve)是一種用來度量分類模型好壞的一個(gè)標(biāo)準(zhǔn),在軟件缺陷預(yù)測中得到了廣泛的使用。AUC主要計(jì)算ROC曲線下方的那部分面積的大小。通常,AUC的值介于0.5到1.0之間,較大的AUC代表了算法較好的性能。其中,ROC曲線的橫縱坐標(biāo)分別由PD、PF表示,如式(2)和式(3)所示。
特征選擇方法依據(jù)特征子集搜索策略可分為完全搜索、啟發(fā)式搜索和隨機(jī)搜索3類。本文選擇GreedyStepwise(向前或向后的單步搜索)搜索方式。它由一個(gè)空集開始正向處理或從全集開始反向搜索,一旦加入或刪除最佳剩余屬性導(dǎo)致評(píng)估度量下降時(shí),它能夠及時(shí)終止。
為了進(jìn)一步驗(yàn)證上述多個(gè)特征選擇方法的有效性,利用航空航天局NASA MDP數(shù)據(jù)庫中的3組數(shù)據(jù)集進(jìn)行仿真實(shí)驗(yàn),數(shù)據(jù)描述如表2所示。本仿真實(shí)驗(yàn)中使用的表示軟件特征的度量元主要包括Line of Code度量元,McCabe度量元,Halstead基本度量元及其擴(kuò)展度量元。
表2 缺陷數(shù)據(jù)集
下面給出基于Wrapper特征選擇算法的仿真實(shí)驗(yàn)設(shè)計(jì)圖,如圖2所示。
圖2 基于Wrapper的特征選擇設(shè)計(jì)
以CM1數(shù)據(jù)為例,由圖2可以看出:①特征選擇過程,使用了4種不同的內(nèi)部分類器以及2種不同的評(píng)價(jià)指標(biāo),分別得到8組特征子集;②在上述特征選擇的基礎(chǔ)上,進(jìn)行軟件缺陷預(yù)測,主要使用了4種不同的外部分類器以及AUC評(píng)價(jià)指標(biāo),得到32組預(yù)測結(jié)果。
根據(jù)上述的實(shí)驗(yàn)設(shè)計(jì),不同的內(nèi)部分類器、不同的內(nèi)部評(píng)價(jià)指標(biāo)組合后,可以分別得到8種特征選擇算法。本文實(shí)驗(yàn)環(huán)境為:Intel(R)Core(TM)i5-3210M CPU,2.50GHz,12GDDR 內(nèi)存,Windows 7操作系統(tǒng),MatLab(R2014a)和 Weka3.6.2。為了更準(zhǔn)確地衡量算法的性能,給出了上述算法10次獨(dú)立運(yùn)行后仿真結(jié)果的平均值。利用Weka軟件中自帶的4種分類算法進(jìn)行仿真實(shí)驗(yàn),參數(shù)設(shè)置為默認(rèn)值。下面首先對(duì)不同的特征選擇方法的運(yùn)行時(shí)間進(jìn)行對(duì)比和分析,仿真結(jié)果如表3所示。
表3 不同特征選擇算法運(yùn)行時(shí)間
由表3可以看出,首先對(duì)于CM1數(shù)據(jù)而言,NB-F-measure特征選擇方法所用時(shí)間最短,RF-AUC特征選擇方法所用時(shí)間最長,達(dá)到了720 s。對(duì)于MC2數(shù)據(jù)而言,NB-F-measure與C4.5-F-measure兩種特征選擇方法所用時(shí)間一樣均為7 s,RF-AUC特征選擇方法所用時(shí)間最長,達(dá)到了843 s。對(duì)于PC1數(shù)據(jù)而言,NB-F-measure特征選擇方法所用時(shí)間最短約5 s,RF-AUC特征選擇方法所用時(shí)間最長,達(dá)到了1 982 s。綜上可以看出:①F-measure評(píng)價(jià)指標(biāo)下所用的時(shí)間往往小于AUC評(píng)價(jià)指標(biāo)下耗費(fèi)的時(shí)間;②NB分類器在兩種評(píng)價(jià)指標(biāo)下所用的時(shí)間與其他分類算法相比,均是最短的,而且在CM1、MC2、PC1 3組數(shù)據(jù)上的結(jié)果是類似的;③RF分類器在這3組數(shù)據(jù)以及兩種評(píng)價(jià)指標(biāo)下進(jìn)行特征選擇所需的時(shí)間均是最多的。
為了進(jìn)一步驗(yàn)證上述不同的特征選擇算法對(duì)于軟件缺陷預(yù)測模型的影響性能,下面選擇4組不同的外部分類器,在AUC評(píng)價(jià)指標(biāo)下,對(duì)上述24組特征子集進(jìn)行仿真驗(yàn)證,仿真結(jié)果如表4~表6所示。
由表4可以看出,在AUC的評(píng)價(jià)指標(biāo)下,從縱向來看外部分類器RF取得了最佳的預(yù)測結(jié)果,NB次之。需要說明的是SVM受參數(shù)c影響較大。從橫向來看,RF-AUC-RF取得了最佳的預(yù)測結(jié)果,然而,結(jié)合表3耗時(shí)數(shù)據(jù)(720 s)看出,最佳的預(yù)測結(jié)果建立在最長的特征選擇時(shí)間基礎(chǔ)上。因此,綜合耗時(shí)預(yù)測精度,本文推薦NB-F-measure-RF組合。
表4 CM1數(shù)據(jù)預(yù)測結(jié)果
表5給出了MC2數(shù)據(jù)在上述8種特征選擇方法下的預(yù)測結(jié)果。
表5 MC2數(shù)據(jù)預(yù)測結(jié)果
由表5可以看出,在AUC的評(píng)價(jià)指標(biāo)下,首先從橫向來看,對(duì)于前3種特征選擇方法,外部分類器選擇NB時(shí),預(yù)測結(jié)果最佳;對(duì)于后5種特征選擇算法,外部分類器選擇為RF時(shí),預(yù)測結(jié)果最佳。同時(shí),從橫向和縱向所求的平均值,可以看出內(nèi)部分類器或者外部分類器設(shè)置為RF時(shí),AUC預(yù)測值均比較高。然而,觀察整個(gè)表5可以看出取得最佳預(yù)測值為C4.5-AUC-RF組合。
另外可以發(fā)現(xiàn),不論內(nèi)部分類器與評(píng)價(jià)指標(biāo)如何選擇,外部分類器NB和RF兩種分類器的平均預(yù)測結(jié)果均達(dá)到了0.7以上,RF最佳,NB次之。如果結(jié)合算法運(yùn)行時(shí)間來考慮,鑒于RF運(yùn)行時(shí)間較長,對(duì)于一些效率要求較高的算法,推薦采用內(nèi)部和外部分類均為NB算法的組合,即NB-AUC-NB。
表6給出了PC1數(shù)據(jù)在上述8種特征選擇方法下的預(yù)測結(jié)果。
表6 PC1數(shù)據(jù)預(yù)測結(jié)果
由表6可以看出對(duì)于PC1數(shù)據(jù)而言,內(nèi)部分類器與內(nèi)部評(píng)價(jià)指標(biāo)不論如何設(shè)計(jì),外部分類器選擇為RF算法時(shí),預(yù)測性能最佳,尤其在內(nèi)部分類器也選擇為RF時(shí),達(dá)到預(yù)測的最高值0.877。C4.5分類器次之。
另外一點(diǎn)需要說明的是SVM算法在所有情況下的預(yù)測值均為0.5,預(yù)測結(jié)果比較差。(其所有參數(shù)設(shè)置為WEKA軟件中的默認(rèn)設(shè)置,例如懲罰因子c=1.0)。在SVM算法中,由軟間隔非線性分類模型產(chǎn)生的規(guī)則化參數(shù)(C)和高斯核函數(shù)的參數(shù)高斯寬度(σ)直接影響著SVM分類的表現(xiàn)性能:過高的參數(shù)C可能導(dǎo)致SVM的分類效果過擬合,過低的參數(shù)C可能影響SVM對(duì)線性不可分?jǐn)?shù)據(jù)的分類性能。
綜上,通過上述3組仿真數(shù)據(jù)可以看出,隨機(jī)森林預(yù)測結(jié)果最佳,但耗費(fèi)時(shí)間最多;支持向量機(jī)算法受參數(shù)c影響,在默認(rèn)參數(shù)下,預(yù)測結(jié)果較差。在綜合考慮預(yù)測時(shí)間和精度的條件下,推薦具有堅(jiān)實(shí)數(shù)學(xué)基礎(chǔ)和穩(wěn)定分類效率的樸素貝葉斯算法,該算法所需估計(jì)的參數(shù)很少,對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡單。然而其假設(shè)屬性之間是相互獨(dú)立的,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的,這給樸素貝葉斯模型的正確分類帶來了一定影響,下一步將對(duì)此展開研究。
[1]郁抒思,周水庚,關(guān)佶紅.軟件工程數(shù)據(jù)挖掘研究進(jìn)展[J].計(jì)算機(jī)科學(xué)與探索,2012,6(1):1-31.
[2]王青,伍書劍,李明樹.軟件缺陷預(yù)測技術(shù)[J].軟件學(xué)報(bào),2008,19(7):1565-1580.
[3]陳翔,顧慶,劉望舒,等.靜態(tài)軟件缺陷預(yù)測方法研究[J].軟件學(xué)報(bào),2016,27(1):1-25.
[4]HALL T,BEECHAM S,BOWES D,et al.A systematic literature review on fault prediction performance in software engineering [J].IEEE Transactions on Software Engineering.2012,38(6):1276-1304.
[5]MICHAEL S J,ISLAM M Z.Software defect prediction using a cost sensitive decision forest and voting,and a potential solution to the class imbalance problem [J].Information Systems,2015,51:62-71.
[6]ZTüRK M M,CAVUSOGLU U,ZENGIN A.A novel defect prediction method for web pages using k-means++[J].Expert Systems with Application,2015,42(19):6496-6506.
[7]CHEN J Q,LIU S L,CHENG X,et al.Empirical studies on feature selection forsoftware faultprediction[C]//In Proceedings ofthe 5th Asia-Pacific Symposium on Internetware.ACM New York,NY,USA,2013.
[8]GAO K,KHOSHGOFTAAR T M,WANG H.An empirical investigation of filter attribute selection techniques for software quality classification[C]//In Proceedings of the 10th IEEE International Conference on Information Reuse and Integration.Las Vegas,Nevada,2009.
[9]NARENDRA P M,F(xiàn)UKUNAGA K.A branch and bound algorithm for feature subset selection[J].IEEE Transactions on Computers,1977,26(9):917-922.
[10]AMALDI E,KANN V.On the approximability of minimizing nonzero variables or unsatisfied relations in linear systems[J].Theoretical Computer Science,1998,209(1-2):237-260.
[11]KOHAVI R,JOHN G H.Wrapper for feature subset selection[J].Artificial Intelligence,1997,97(1):273-324.
[12]劉望舒.一種面向軟件缺陷預(yù)測的可容忍噪聲的特征選擇框架[J].計(jì)算機(jī)學(xué)報(bào),2016,33(39):1-16.
[13]RODRIGUEZ D,RUIZ R,CUADRADO-GALLEGO J,et al.Detecting fault modules applying feature selection to classi-fiers[C]//In Proceedings of 8th IEEE International Conference on Information Reuse and Integration,Las Vegas,Nevada,2007.
[14]GUO L,MA Y,CUKIC B,et al.Robust prediction of fault-proneness by random forests[C]//In Proceedings of International Symposium on Software Reliability Engineering(ISSRE),IEEE,2004:417-428.
[15]GAO K,KHOSHGOFTAAR T M,WANG H.Choosing software metrics for defect prediction:an investigation on feature selection techniques [J].Software:Practice and Experience,2011,41(5):579-606.
[16]WANG H,KHOSHGOFTAAR T M,NAPOLITANO A.A
comparative study of censeble feature selection techniques for software defect prediction [C]//In:Proceeding of the International Conference on Machine Learning and Applications(ICMLA),IEEE,2010:135-140.
[17]MENZIES T,GREENWALD J,F(xiàn)RANK A.Data mining static code attributes to learn defect predictors[J].IEEE Transactions on Software Engineering,2007,33(1):2-13.
[18]RODRIGUEZ D,RUIZ R,CUADRADO G J,et al.Detecting fault modules applying feature selection to classifiers[C]//In Proceedings of the International Conference on Information Reuse and Integration,IEEE,2007.
[19]WANG H,KHOSHGOFTAAR T M,SELIYA N.How many softwaremetricsshouldbeselectedfordefectprediction[C]//Proceedings of the Twenty-Fourth International Florida Artificial Intelligence Research Society Conference,AAAI.Palm Beach,F(xiàn)lorida,USA,2011:69-74.
Feature Selection Based on Wrapper During Software Defect Prediction
CHANG Rui-hua1,SHEN Xiao-wei2
(1.Research Department of Armed Police Engineering University,Xi’an 710086,China;2.University of Rocket Engineering,Xi’an 710025,China)
Feature selection is one of the key steps to improve prediction accuracy of software defects.In the traditional fields of software defect prediction,feature selection based on filter is more often used than wrapper.In order to further investigate how to use feature selection based wrapper in software defect prediction application,eight feature selection methods based on wrapper with combining the process of prediction and selection is designed.Firstly,four common defect prediction algorithms are used as internal and external classifiers.Then AUC and F-measure are used to assess the performance of feature selection methods.Simulation results show that the internal and external classifiers select RF,software defect prediction accuracy is the best,and NB is the second.But because of RF is more timeconsuming,NB algorithm is recommended considering the precision and efficiency.
software defect prediction,feature selection,wrapper,metrics
1002-0640(2017)10-0059-05
TP311.53
A
10.3969/j.issn.1002-0640.2017.10.013
2016-08-15
2016-10-25
國家自然科學(xué)基金(51503224);陜西省自然科學(xué)基金(2015JQ6224);武警工程大學(xué)基礎(chǔ)研究基金(WJY201602);大學(xué)軍事理論研究基金資助項(xiàng)目(JLX201680)
常瑞花(1982- ),女,山西清徐人,博士,工程師。研究方向:機(jī)器學(xué)習(xí),模式識(shí)別。