李莉,石可欣,任振康
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)(?通信作者電子郵箱lli@nefu.edu.cn)
基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法
李莉*,石可欣,任振康
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)(?通信作者電子郵箱lli@nefu.edu.cn)
跨項(xiàng)目軟件缺陷預(yù)測可以解決預(yù)測項(xiàng)目中訓(xùn)練數(shù)據(jù)較少的問題,然而源項(xiàng)目和目標(biāo)項(xiàng)目通常會有較大的數(shù)據(jù)分布差異,這降低了預(yù)測性能。針對該問題,提出了一種基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法(CPDP-FSTr)。首先,在特征選擇階段,采用核主成分分析法(KPCA)刪除源項(xiàng)目中的冗余數(shù)據(jù);然后,根據(jù)源項(xiàng)目和目標(biāo)項(xiàng)目的屬性特征分布,按距離選出與目標(biāo)項(xiàng)目分布最接近的候選源項(xiàng)目數(shù)據(jù);最后,在實(shí)例遷移階段,通過采用評估因子改進(jìn)的TrAdaBoost方法,在源項(xiàng)目中找出與目標(biāo)項(xiàng)目中少量有標(biāo)簽實(shí)例分布相近的實(shí)例,并建立缺陷預(yù)測模型。以F1作為評價指標(biāo),與基于特征聚類和TrAdaBoost的跨項(xiàng)目軟件缺陷預(yù)測(FeCTrA)方法以及基于多核集成學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測(CMKEL)方法相比,CPDP-FSTr的預(yù)測性能在AEEEM數(shù)據(jù)集上分別提高了5.84%、105.42%,在NASA數(shù)據(jù)集上分別提高了5.25%、85.97%,且其兩過程特征選擇優(yōu)于單一特征選擇過程。實(shí)驗(yàn)結(jié)果表明,當(dāng)源項(xiàng)目特征選擇比例和目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例分別為60%、20%時,所提CPDP-FSTr能取得較好的預(yù)測性能。
跨項(xiàng)目缺陷預(yù)測;特征選擇;核主成分分析;實(shí)例遷移;TrAdaBoost
由于軟件開發(fā)人員開發(fā)經(jīng)驗(yàn)的匱乏、對需求的誤解或軟件開發(fā)過程的不規(guī)范等一系列問題,導(dǎo)致了軟件缺陷的產(chǎn)生。軟件缺陷如果不立即修正,可能會導(dǎo)致巨大的人力、物力以及經(jīng)濟(jì)損失。在整個軟件項(xiàng)目開發(fā)周期內(nèi),只有盡早發(fā)現(xiàn)軟件缺陷,因軟件缺陷帶來的風(fēng)險和修復(fù)風(fēng)險的代價才能越小。軟件缺陷預(yù)測(Software Defect Prediction, SDP)[1-2]可以幫助軟件開發(fā)人員盡早發(fā)現(xiàn)項(xiàng)目中存在的缺陷。目前,大部分研究工作聚焦于項(xiàng)目內(nèi)軟件缺陷預(yù)測(Within-Project Defect Prediction, WPDP)[3],就是采用項(xiàng)目內(nèi)的歷史數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),對新版本進(jìn)行建模預(yù)測。但是,對于新啟動的項(xiàng)目來說,沒有足夠多的歷史數(shù)據(jù)來構(gòu)建模型進(jìn)行預(yù)測??珥?xiàng)目缺陷預(yù)測(Cross-Project Defect Prediction, CPDP)[4]因此產(chǎn)生,即利用其他項(xiàng)目(即源項(xiàng)目)中的數(shù)據(jù)構(gòu)建軟件缺陷預(yù)測模型,對當(dāng)前項(xiàng)目(即目標(biāo)項(xiàng)目)進(jìn)行缺陷預(yù)測。然而,源項(xiàng)目和目標(biāo)項(xiàng)目間通常有較大的數(shù)據(jù)分布差異,這會導(dǎo)致預(yù)測模型很難得到較好的預(yù)測性能。因此,CPDP中的關(guān)鍵問題也就是如何縮小源項(xiàng)目和目標(biāo)項(xiàng)目之間的數(shù)據(jù)分布差異。
針對該問題,本文提出了一種兩階段的基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法(Cross-Project Defect Prediction method based on Feature Selection and TrAdaboost, CPDP-FSTr)。該方法包括兩階段:在特征選擇階段,通過核主成分分析(Kernel Principal Component Analysis, KPCA)方法刪除源項(xiàng)目中冗余和無關(guān)特征,再根據(jù)篩選后的源項(xiàng)目屬性特征分布選擇與目標(biāo)項(xiàng)目屬性特征分布最接近的特征;在實(shí)例遷移階段,采用TrAdaBoost方法,從特征選擇后的源項(xiàng)目中選擇與少量有標(biāo)簽?zāi)繕?biāo)項(xiàng)目實(shí)例相似的實(shí)例,構(gòu)建軟件缺陷預(yù)測模型。
跨項(xiàng)目缺陷預(yù)測基于其他項(xiàng)目(源項(xiàng)目)中的標(biāo)記數(shù)據(jù)來預(yù)測當(dāng)前項(xiàng)目(目標(biāo)項(xiàng)目)是否存在軟件缺陷。源項(xiàng)目和目標(biāo)項(xiàng)目之間的數(shù)據(jù)差異性,會導(dǎo)致構(gòu)建模型無法取得較好的預(yù)測性能[5],因此,設(shè)計(jì)合理的縮小源項(xiàng)目和目標(biāo)項(xiàng)目間的數(shù)據(jù)差異的方式仍然是跨項(xiàng)目缺陷預(yù)測中亟待解決的問題。針對該問題,大部分研究人員將機(jī)器學(xué)習(xí)應(yīng)用于CPDP領(lǐng)域[6],其中通過特征選擇(feature selection)方法[7]和遷移學(xué)習(xí)(transfer learning)方法[8]來設(shè)計(jì)解決方案被廣泛應(yīng)用。Zimmermann等[9]從項(xiàng)目的上下文角度出發(fā),共提出了40種不同的項(xiàng)目上下文因素來計(jì)算項(xiàng)目間的相似性,以此選擇候選源項(xiàng)目,主要是通過實(shí)證研究中考慮的622對CPDP結(jié)果與其相應(yīng)項(xiàng)目間的相似性來構(gòu)建決策樹,完成候選源項(xiàng)目的選擇。He等[10]通過度量元的數(shù)據(jù)分布特征選擇與目標(biāo)項(xiàng)目相匹配的源項(xiàng)目,考慮了16種不同的分布特征,其中眾數(shù)、中位數(shù)、均值和調(diào)和均值等特征可以描述屬性取值的集中趨勢,異眾比率、四分位差、方差和標(biāo)準(zhǔn)差等可以體現(xiàn)屬性取值的離散程度,而偏態(tài)和峰度可以描述屬性取值的分布形狀。Turhan等[11]從目標(biāo)項(xiàng)目出發(fā),提出了Burak過濾法,首先計(jì)算目標(biāo)項(xiàng)目與源項(xiàng)目中實(shí)例的歐氏距離,再對歐氏距離進(jìn)行排序,選擇與目標(biāo)項(xiàng)目中每個實(shí)例最近的個源項(xiàng)目實(shí)例添加到候選訓(xùn)練集中。而Peters等[12]認(rèn)為源項(xiàng)目中有助于CPDP的數(shù)據(jù)更多,因此提出了Peters過濾法,首先從源項(xiàng)目實(shí)例中選出與其距離最近的一個目標(biāo)項(xiàng)目實(shí)例,對于選中的目標(biāo)項(xiàng)目實(shí)例,再從源數(shù)據(jù)集中選出與其距離最近的一個實(shí)例。一些研究人員[13-14]將源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù)同時進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,比如min-max標(biāo)準(zhǔn)化方法和z-score標(biāo)準(zhǔn)化方法。這些方法可以使不同項(xiàng)目的特征取值處于同一個取值區(qū)間,同時與原取值分布特征一致。黃琳等[15]通過將不同特性的核函數(shù)進(jìn)行組合,使數(shù)據(jù)在新的特征空間得到更好的表達(dá),再結(jié)合集成學(xué)習(xí),提出了基于多核集成學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測(Cross-project software defect prediction based on Multiple Kernel Ensemble Learning, CMKEL)方法,進(jìn)一步提升了軟件缺陷預(yù)測的精度。然而,CMKEL方法中代價敏感系數(shù)的引入對實(shí)驗(yàn)結(jié)果有很大的影響,且整體的預(yù)測性能不佳。
特征選擇在軟件缺陷預(yù)測領(lǐng)域有著重要的應(yīng)用,是從原始特征集合中選擇最有價值信息從而降低特征空間維度的過程,其目的在于去除原始數(shù)據(jù)中的冗余數(shù)據(jù)和無關(guān)數(shù)據(jù),生成價值較高的特征子集。
特征選擇方法主要包括過濾式、嵌入式和包裹式。過濾式按照發(fā)散性或相關(guān)性等指標(biāo)對特征進(jìn)行評分;嵌入式通過機(jī)器學(xué)習(xí)算法和模型進(jìn)行訓(xùn)練確定特征優(yōu)劣;包裹式則根據(jù)目標(biāo)函數(shù)完成特征的選擇。以上三種方法都只選擇原始特征的一個子集,但這些子集可能無法準(zhǔn)確表示原始數(shù)據(jù)本質(zhì)的特征結(jié)構(gòu)。特征轉(zhuǎn)換技術(shù)的出現(xiàn)解決了這個問題,可以在一定程度上抽取出更具代表性的特征,其中具有代表性的方法有主成分分析法(Principal Component Analysis, PCA)和線性判別法(Linear Discriminant Analysis, LDA)。劉芳等[16]提出了基于主成分分析和優(yōu)化支持向量機(jī)(Principal Component Analysis and Improved Support Vector Machine, PCA-ISVM)的軟件缺陷預(yù)測方法,利用主成分分析消除數(shù)據(jù)冗余信息,結(jié)合粒子群算法完成軟件缺陷預(yù)測,一定程度上提高了軟件缺陷預(yù)測的效率。
遷移學(xué)習(xí)已被廣泛應(yīng)用于各個行業(yè),其核心是找到源領(lǐng)域和目標(biāo)領(lǐng)域之間的相似性,實(shí)現(xiàn)知識的跨領(lǐng)域遷移。遷移學(xué)習(xí)解決了機(jī)器學(xué)習(xí)在實(shí)際場景中模型訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)處于不同特征空間且具有分布不同的問題。因此,遷移學(xué)習(xí)常用于跨領(lǐng)域之間的知識傳遞,跨項(xiàng)目軟件缺陷預(yù)測正是其中一個重要應(yīng)用。
遷移學(xué)習(xí)根據(jù)學(xué)習(xí)方法可以劃分為基于實(shí)例的遷移學(xué)習(xí)、基于特征的遷移學(xué)習(xí)和基于參數(shù)的遷移學(xué)習(xí)。根據(jù)特征空間是否一致可劃分為同構(gòu)遷移學(xué)習(xí)和異構(gòu)遷移學(xué)習(xí)。
目前研究人員主要關(guān)注基于實(shí)例的遷移學(xué)習(xí)和基于特征的遷移學(xué)習(xí)。邱少?。?7]提出了基于核均值匹配和多簇權(quán)重分析(Kernel Mean Matching and Multiple-Cluster Weights, KMM-MCW)的跨項(xiàng)目軟件缺陷預(yù)測方法,將源項(xiàng)目劃分為多個簇,通過核均值匹配(Kernel Mean Matching, KMM)算法調(diào)整簇中實(shí)例權(quán)重,繼而完成實(shí)例的遷移。倪超等[18]借助聚類分析和實(shí)例遷移方法,提出了基于特征聚類和TrAdaBoost的跨項(xiàng)目軟件缺陷預(yù)測(cross-project software defect prediction using Feature Clustering and TrAdaBoost, FeCTrA)方法,該方法可以在一定程度上縮小源項(xiàng)目和目標(biāo)項(xiàng)目間的數(shù)據(jù)差異,提升缺陷預(yù)測的性能,但在聚類分析過程中,若初始簇中心挑選不理想,則軟件缺陷預(yù)測的性能就會相應(yīng)地下降。
本文提出了基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法(CPDP-FSTr)。該方法通過特征選擇和實(shí)例遷移兩階段,利用核主成分分析法和基于距離的屬性特征分布的特征選擇(feature selection based on Distance Attribute Feature Distribution, DAFD)技術(shù),對源數(shù)據(jù)進(jìn)行篩選,并增加評估因子,提升TrAdaBoost方法對錯分的有缺陷樣本的關(guān)注度。然后將篩選后的源項(xiàng)目實(shí)例和部分有標(biāo)簽?zāi)繕?biāo)實(shí)例注入改進(jìn)后的TrAdaBoost方法,最終構(gòu)建軟件缺陷預(yù)測模型。
假設(shè)源項(xiàng)目和目標(biāo)項(xiàng)目具有相同的特征集合,基于該假設(shè)本文提出了一種基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法(CPDP-FSTr),將其與只考慮DAFD特征選擇過程的FSTr-D方法和只考慮KPCA特征選擇過程的FSTr-KP方法分別進(jìn)行預(yù)測性能的對比。
跨項(xiàng)目缺陷預(yù)測主要通過源項(xiàng)目中的有標(biāo)簽實(shí)例構(gòu)建訓(xùn)練模型,以解決目標(biāo)項(xiàng)目有標(biāo)簽實(shí)例少、不足以支撐缺陷預(yù)測的問題。源項(xiàng)目和目標(biāo)項(xiàng)目具有數(shù)據(jù)分布差異,通過改進(jìn)的TrAdaBoost方法,從實(shí)例角度在源項(xiàng)目中找到與目標(biāo)項(xiàng)目相似的實(shí)例來訓(xùn)練數(shù)據(jù)集,解決訓(xùn)練數(shù)據(jù)集不足的問題。除此之外,在實(shí)際的源項(xiàng)目數(shù)據(jù)中,存在著部分冗余數(shù)據(jù)和無用數(shù)據(jù),同時數(shù)據(jù)通常不是線性的,因此需要選擇有效的特征選擇方法,實(shí)現(xiàn)對源項(xiàng)目特征的篩選。從源項(xiàng)目角度考慮,選擇能夠反映缺陷數(shù)據(jù)內(nèi)在結(jié)構(gòu)的最優(yōu)特征,并采用KPCA方法進(jìn)行特征選擇。根據(jù)如圖1所示的實(shí)驗(yàn)結(jié)果可知,只考慮KPCA方法特征選擇過程的FSTr-KP得到的預(yù)測性能不佳,主要是由于跨項(xiàng)目缺陷預(yù)測存在數(shù)據(jù)分布差異。
圖1 特征選擇過程的實(shí)驗(yàn)結(jié)果(KPCA)Fig. 1 Experimental results of feature selection process (KPCA)
從目標(biāo)項(xiàng)目角度來說,源項(xiàng)目和目標(biāo)項(xiàng)目之間存在分布差異,因此選擇與目標(biāo)項(xiàng)目更為相似的源項(xiàng)目特征,從而輔助目標(biāo)項(xiàng)目構(gòu)建有效的缺陷預(yù)測模型。因此,提出了基于距離的屬性特征分布的特征選擇(DAFD)技術(shù)。根據(jù)如圖2所示的實(shí)驗(yàn)結(jié)果可知,只考慮DAFD特征選擇過程的FSTr-D方法在部分項(xiàng)目中性能優(yōu)于只考慮KPCA特征選擇過程的FSTr-KP方法,但整體預(yù)測性能仍欠佳,主要原因是源項(xiàng)目中存在冗余數(shù)據(jù)影響預(yù)測性能。
基于以上分析,擬考慮結(jié)合源項(xiàng)目和目標(biāo)項(xiàng)目兩個角度,采用KPCA和DAFD結(jié)合的兩過程特征選擇方法CPDP-FSTr,既避免源項(xiàng)目冗余數(shù)據(jù)對預(yù)測性能的負(fù)面影響,同時一定程度上縮小了數(shù)據(jù)間的分布差異。根據(jù)如圖3所示的實(shí)驗(yàn)結(jié)果可知,兩過程特征選擇方法提高了預(yù)測性能,且表現(xiàn)良好。
圖2 特征選擇過程的實(shí)驗(yàn)結(jié)果(DAFD)Fig. 2 Experimental results of feature selection process (DAFD)
圖3 特征選擇過程的實(shí)驗(yàn)結(jié)果(兩過程)Fig. 3 Experimental results of feature selection process (two-process)
根據(jù)以上分析及過程性實(shí)驗(yàn)可知,由于跨項(xiàng)目軟件缺陷預(yù)測存在的數(shù)據(jù)分布差異以及源項(xiàng)目中冗余數(shù)據(jù)所帶來的負(fù)面影響,單一階段特征選擇方法的預(yù)測性能不佳,而采用KPCA和DAFD兩過程結(jié)合的特征選擇方法一定程度上解決了以上問題,因此采用KPCA和DAFD兩過程結(jié)合作為特征選擇階段的特征選擇方法。
CPDP-FSTr方法的流程如圖4所示。該方法包括特征選擇和實(shí)例遷移兩個階段,具體的流程如下:
1)在特征選擇階段,包括兩個過程。首先,CPDP-FSTr通過核主成分分析法刪除源項(xiàng)目數(shù)據(jù)中的無用數(shù)據(jù)和冗余數(shù)據(jù)。其次,從篩選后的源數(shù)據(jù)屬性分布特征集合中選擇與目標(biāo)項(xiàng)目相近的特征形成候選訓(xùn)練數(shù)據(jù)集。
2)在實(shí)例遷移階段,將目標(biāo)項(xiàng)目中少量有標(biāo)簽的實(shí)例加入候選訓(xùn)練數(shù)據(jù)集內(nèi),采用經(jīng)評估因子改進(jìn)后的TrAdaBoost方法,通過不斷迭代,得到若干個基分類器,然后集成得到強(qiáng)分類器,最終得到跨項(xiàng)目缺陷預(yù)測模型。本文源項(xiàng)目特征選擇比例和目標(biāo)項(xiàng)目中有標(biāo)簽的實(shí)例比例分別為60%、20%。
源項(xiàng)目中通常會存在部分無關(guān)數(shù)據(jù)和冗余數(shù)據(jù),這些數(shù)據(jù)都會一定程度上影響缺陷預(yù)測模型的預(yù)測性能;同時,由于源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù)分布不一致,源項(xiàng)目中與目標(biāo)項(xiàng)目相關(guān)性較低的特征也會影響到缺陷預(yù)測模型的性能。因此,特征選擇階段包括兩部分:第一部分,移除源項(xiàng)目中的類標(biāo)簽,對其余特征采用基于KPCA的特征選擇技術(shù),篩選出無用特征和冗余特征;第二部分,提取源項(xiàng)目和目標(biāo)項(xiàng)目的屬性分布特征,選擇與目標(biāo)項(xiàng)目最相近的源項(xiàng)目特征。
圖4 CPDP-FSTr流程Fig. 4 Flow chart of CPDP-FSTr
2.3.1 基于核主成分分析的特征選擇技術(shù)KPCA
PCA技術(shù)是最經(jīng)典的線性特征轉(zhuǎn)換技術(shù),當(dāng)數(shù)據(jù)是線性可分且服從高斯分布時,PCA的特征選擇效果較好。但在跨項(xiàng)目軟件缺陷預(yù)測領(lǐng)域,由于缺陷數(shù)據(jù)在線性子空間中不能進(jìn)行劃分,因此PCA提取的特征代表性欠佳,導(dǎo)致預(yù)測結(jié)果不理想。KPCA技術(shù)是對PCA技術(shù)的改進(jìn)[19],可以更好地處理非線性數(shù)據(jù),選擇有代表性的特征,同時刪除數(shù)據(jù)中的無關(guān)特征和冗余特征。KPCA技術(shù)使用一個非線性映射函數(shù)將低維特征空間中的數(shù)據(jù)映射到高維特征空間中,再找到其線性子空間進(jìn)行降維,從而達(dá)到特征選擇的目的。現(xiàn)有研究表明,KPCA的性能優(yōu)于PCA。
將KPCA方法應(yīng)用于跨項(xiàng)目缺陷預(yù)測領(lǐng)域,通??紤]Linear線性核函數(shù)或徑向基高斯核函數(shù)(Radial Basis Function, RBF)。由于本文研究涉及數(shù)據(jù)集特征數(shù)較小,樣本數(shù)正常,故采用RBF徑向基高斯核函數(shù)進(jìn)行特征選擇。
協(xié)方差矩陣的特征方程可以表示為:
協(xié)方差的特征方程可以表示為:
2.3.2 基于距離的屬性特征分布的特征選擇技術(shù)DAFD
基于選擇分布特征與目標(biāo)數(shù)據(jù)最相似的候選數(shù)據(jù)的基本原理,使用特征向量的歐氏距離來確定這些最相似的候選向量。對歐氏距離進(jìn)行升序排序,選擇前r項(xiàng)作為候選訓(xùn)練數(shù)據(jù)集。
本文采用的屬性分布特征是均值(mean)、標(biāo)準(zhǔn)差(std)、偏度(skew)和峰度(kurt)這四個。均值可以體現(xiàn)數(shù)據(jù)分布集中趨勢,標(biāo)準(zhǔn)差體現(xiàn)數(shù)據(jù)的離散程度,偏度和峰度可以體現(xiàn)數(shù)據(jù)的分布形態(tài)。在選取相似的源項(xiàng)目特征之前先對源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù)的所有屬性取值進(jìn)行數(shù)據(jù)預(yù)處理,采用最大最?。╩in_max)標(biāo)準(zhǔn)化進(jìn)行數(shù)據(jù)歸一化,使所有分布特征的特征值歸一化到區(qū)間[0,1]。這樣既可以消除不同度量大小對DAFD方法的不良影響,同時也可以使屬性的取值分布接近正態(tài)分布。首先,使用歐氏距離公式計(jì)算源項(xiàng)目和目標(biāo)項(xiàng)目之間所有屬性分布特征向量的距離,來判斷兩個項(xiàng)目間的數(shù)據(jù)分布的相似性。然后對計(jì)算得出的距離進(jìn)行升序排序,選擇距離最小的前r個特征。
算法1中給出了特征選擇階段的詳細(xì)描述。
算法1 特征選擇。
6) 計(jì)算降維后的矩陣:
CPDP-FSTr方法選擇TrAdaBoost方法來進(jìn)行實(shí)例遷移。TrAdaBoost是對集成學(xué)習(xí)算法AdaBoost的改進(jìn),采用了兩套權(quán)重調(diào)整機(jī)制,對源項(xiàng)目和目標(biāo)項(xiàng)目的權(quán)重調(diào)整機(jī)制相反。源項(xiàng)目采取的權(quán)重調(diào)整機(jī)制是增加與目標(biāo)項(xiàng)目相關(guān)的樣本權(quán)重,減小與目標(biāo)項(xiàng)目無關(guān)的樣本權(quán)重,從而篩選出與目標(biāo)項(xiàng)目更相關(guān)的樣本。而目標(biāo)項(xiàng)目則是增加錯誤分類的樣本權(quán)重,減小正確分類的樣本權(quán)重,以此找到更難分類的樣本。以上權(quán)重調(diào)整機(jī)制不斷迭代,最后用加權(quán)投票的方式將每一輪迭代產(chǎn)生的基分類器加權(quán)求和形成一個強(qiáng)分類器。
然而由于數(shù)據(jù)存在類不平衡問題,當(dāng)類不平衡問題極其嚴(yán)重時,有缺陷樣本被錯分對整體的錯誤率影響較小,而預(yù)測結(jié)果則會偏向于多數(shù)類。設(shè)置評估因子EF改進(jìn)TrAdaBoost方法,使得預(yù)測結(jié)果更加關(guān)注錯分的有缺陷樣本。評估因子EF以F?measure為基礎(chǔ)。
其中:EF由T和TN計(jì)算,T表示有缺陷的實(shí)例被預(yù)測為有缺陷,TN表示不含有缺陷的實(shí)例被預(yù)測為無缺陷。本文設(shè)置,更加關(guān)注有缺陷實(shí)例被錯分的情況;那么,設(shè)置目標(biāo)實(shí)例權(quán)重調(diào)整因子為:
算法2給出了實(shí)例遷移階段的詳細(xì)描述。
算法2 實(shí)例遷移。
8) 更新實(shí)例權(quán)重:
9)迭代結(jié)束;
10)輸出假設(shè):
在本文方法的實(shí)驗(yàn)研究中,采用了公開的軟件缺陷數(shù)據(jù)集:AEEEM數(shù)據(jù)集和NASA數(shù)據(jù)集。表1~2分別給出了AEEEM數(shù)據(jù)集和NASA數(shù)據(jù)集中項(xiàng)目的統(tǒng)計(jì)信息。
表1 AEEEM數(shù)據(jù)集的統(tǒng)計(jì)信息Tab. 1 Statistical information of AEEEM dataset
表2 NASA數(shù)據(jù)集的統(tǒng)計(jì)信息Tab. 2 Statistical information of NASA dataset
軟件缺陷預(yù)測考慮的是目標(biāo)項(xiàng)目中是否存在缺陷的一個二分類問題。對于目標(biāo)項(xiàng)目的任一實(shí)例進(jìn)行缺陷預(yù)測都涉及到四種實(shí)際情況:若有缺陷的實(shí)例被預(yù)測為有缺陷,則記為TP(True Positive);若無缺陷的實(shí)例被預(yù)測為有缺陷,則記為FP(False Positive);若無缺陷的實(shí)例被預(yù)測為無缺陷,則記為TN(True Negative);若有缺陷的實(shí)例被預(yù)測為無缺陷,則記為FN(False Negative)。根據(jù)以上四種實(shí)際情況,可以定義精確度()、召回率()以及F1度量(F1-measure)。
其中,精確度指在所有被預(yù)測為有缺陷的實(shí)例中,真正有缺陷的實(shí)例比例。
召回率指在所有真正有缺陷的實(shí)例中,被正確預(yù)測為有缺陷的實(shí)例比例。
F1度量可以綜合考慮精確度和召回率兩個指標(biāo),在類不平衡問題中能夠更好地對預(yù)測性能進(jìn)行評價。故本文使用F1作為評價方法性能的評價指標(biāo)。
為了驗(yàn)證CPDP-FSTr方法的有效性和預(yù)測性能,兩過程特征選擇的有效性以及CPDP-FSTr方法的相關(guān)參數(shù)設(shè)定,本文主要關(guān)注以下四個問題。
問題1 CPDP-FSTr方法與現(xiàn)有的優(yōu)秀的跨項(xiàng)目缺陷預(yù)測方法的預(yù)測性能對比。如今,在跨項(xiàng)目缺陷預(yù)測領(lǐng)域,研究人員已經(jīng)提出了很多優(yōu)秀算法,本文考慮基于特征遷移和實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測方法FeCTrA,基于多核集成學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測(CMKEL)方法,以及未改進(jìn)TrAdaBoost的CPDP-FSTr方法CPDP-FSNTr。
問題2 CPDP-FSTr方法的特征選擇階段包括兩個特征選擇過程。不同的特征選擇過程可以選擇出不同的特征,對最終的預(yù)測性能也可能不同。本文根據(jù)源項(xiàng)目、目標(biāo)項(xiàng)目以及跨項(xiàng)目缺陷預(yù)測特點(diǎn)進(jìn)行特征選擇過程的過程性探究實(shí)驗(yàn)。研究中只考慮KPCA和DFAD的單一選擇過程和包含兩者的兩過程特征選擇的性能表現(xiàn),驗(yàn)證了CPDP-FSTr方法中兩過程特征選擇的合理性和有效性。
問題3 目標(biāo)項(xiàng)目中有類標(biāo)的實(shí)例比例對CPDP-FSTr方法預(yù)測性能的影響。由于目標(biāo)項(xiàng)目中的類標(biāo)信息需要由專業(yè)人員標(biāo)記得出,需要消耗大量的人力和物力,因此,CPDP問題需要少量的標(biāo)注實(shí)例得出較好的預(yù)測結(jié)果。本文考慮20%以下的有標(biāo)簽實(shí)例比例,分析其對CPDP-FSTr方法的影響。
問題4 在特征選擇階段,源項(xiàng)目中的特征選擇比例對CPDP-FSTr方法預(yù)測性能的影響。CPDP-FSTr方法基于屬性分布特征通過距離選出與目標(biāo)特征相似的源項(xiàng)目特征。因此,本文考慮10%~100%、步長為10%的特征選擇比例,分析其對CPDP-FSTr方法產(chǎn)生的影響。
CPDP-FSTr方法主要包括特征選擇和實(shí)例遷移兩部分。在特征選擇階段,源項(xiàng)目的特征選擇比例設(shè)置為,其中表示為源項(xiàng)目的特征數(shù)。在實(shí)例遷移階段,選擇目標(biāo)項(xiàng)目中20%的實(shí)例放入候選訓(xùn)練數(shù)據(jù)集。
在實(shí)驗(yàn)的過程中,選擇一個項(xiàng)目作為源項(xiàng)目,另一個項(xiàng)目作為目標(biāo)項(xiàng)目,進(jìn)行一對一的跨項(xiàng)目缺陷預(yù)測。所有結(jié)果采用10次跨項(xiàng)目5折交叉驗(yàn)證的平均值??珥?xiàng)目5折交叉驗(yàn)證是指:使用源項(xiàng)目中所有的有標(biāo)簽數(shù)據(jù)和目標(biāo)項(xiàng)目中的1折(即20%)的有標(biāo)簽數(shù)據(jù)作為最終的訓(xùn)練集,對目標(biāo)項(xiàng)目中未標(biāo)記的4折(即80%)數(shù)據(jù)進(jìn)行預(yù)測。
3.5.1 針對問題一的結(jié)果分析
本文選擇AEEEM和NASA數(shù)據(jù)集,對CPDP-FSTr方法的預(yù)測性能和有效性進(jìn)行實(shí)驗(yàn)研究,使用決策樹作為基分類器,特征選擇比例為60%,有標(biāo)簽的目標(biāo)項(xiàng)目實(shí)例選擇比例為20%,并將該方法與其他三種方法進(jìn)行對比。采用F1作為評價指標(biāo),結(jié)果如表3~4所示。
表3 不同算法預(yù)測性能的結(jié)果對比(AEEEM數(shù)據(jù)集)Tab. 3 Result comparison of prediction performance of different algorithms (AEEEM dataset)
表4 不同算法的預(yù)測性能結(jié)果對比(NASA數(shù)據(jù)集)Tab. 4 Result comparison of prediction performance of different algorithms (NASA dataset)
在表3~4中,第一列表示跨項(xiàng)目缺陷預(yù)測各方法的應(yīng)用場景,如:PDE→EQ表示源項(xiàng)目為PDE,目標(biāo)項(xiàng)目為EQ。其余各列表示在不同場景下不同算法的F1指標(biāo),即其預(yù)測性能。AVG表示每一種方法的整體平均預(yù)測性能,每一行的最大值進(jìn)行了加粗表示。
根據(jù)表3~4的實(shí)驗(yàn)結(jié)果可以看出,CPDP-FSTr方法的預(yù)測性能明顯優(yōu)于其他三種對比方法,其大部分場景下的預(yù)測性能都表現(xiàn)較好,可以取得更好的效果。在AEEEM數(shù)據(jù)集中,從平均預(yù)測性能來看,CPDP-FSTr與CPDP-FSNTr、FeCTrA和CMKEL相比分別提高了3.34%、5.84%和105.42%。例如PDE→ML,CPDP-FSTr方法的F1值為0.868,相較于CPDP-FSNTr(0.835)、FeCTrA(0.803)以及CMKEL(0.472),其預(yù)測性能分別提高了3.95%、3.99%和76.9%。從表3可以看出,CPDP-FSTr在目標(biāo)項(xiàng)目為EQ時,F(xiàn)1取得最大值的情況較少,其原因可能是EQ的缺陷樣本比例較高,且EQ的樣本數(shù)較少,導(dǎo)致可以放入訓(xùn)練集的有類標(biāo)的目標(biāo)項(xiàng)目數(shù)據(jù)較少。NASA數(shù)據(jù)集中目標(biāo)項(xiàng)目為CM1時,情況與EQ相似,且NASA數(shù)據(jù)集中,從平均預(yù)測性能來看,CPDP-FSTr與CPDP-FSNTr、FeCTrA和CMKEL相比分別提高了1.36%、5.25%和85.97%。
另外在整個CDPD-FSTr方法中,隨著對TrAdaBoost方法的改進(jìn),平均預(yù)測性能得到了提升。在AEEEM數(shù)據(jù)集中,其平均預(yù)測性能由0.807提升到了0.834。而在NASA數(shù)據(jù)集中,其平均預(yù)測性能由0.811提升到了0.822。
因此,在跨項(xiàng)目缺陷預(yù)測中,相較于其他三種方法,本文提出的CPDP-FSTr方法的預(yù)測性能表現(xiàn)更好。
3.5.2 針對問題2的結(jié)果分析
本階段實(shí)驗(yàn)選擇特征選擇比例為60%,有標(biāo)簽的目標(biāo)項(xiàng)目實(shí)例選擇比例為20%。同時將兩過程特征選擇的CPDP-FSTr方法與只考慮KPCA方法特征選擇過程的FSTr-KP、只考慮DAFD特征選擇過程的FSTr-D方法所得到的預(yù)測性能分別進(jìn)行對比。不同特征選擇過程的實(shí)驗(yàn)結(jié)果如表5~6所示。
表5 特征選擇過程的實(shí)驗(yàn)結(jié)果(AEEEM數(shù)據(jù)集)Tab. 5 Experimental results of feature selection process (AEEEM dataset)
表6 特征選擇過程的實(shí)驗(yàn)結(jié)果(NASA數(shù)據(jù)集)Tab. 6 Experimental results of feature selection process (NASA dataset)
在表5~6中,第一列表示跨項(xiàng)目缺陷預(yù)測中的目標(biāo)項(xiàng)目,AVG表示每一種特征選擇過程的整體平均性能,每一行的最大值進(jìn)行了加粗表示。
表5~6的實(shí)驗(yàn)結(jié)果可以驗(yàn)證2.1節(jié)采用兩過程特征選擇方法的合理性,在實(shí)驗(yàn)涉及的所有項(xiàng)目中,含兩過程特征選擇的CPDP-FSTr的平均性能均優(yōu)于單一特征選擇過程的FSTr-KP和FSTr-D方法。在AEEEM數(shù)據(jù)集中,CPDP-FSTr相較FSTr-KP和FSTr-D在平均預(yù)測性能上分別提高了12%和3.7%。在NASA數(shù)據(jù)集中,CPDP-FSTr相較FSTr-KP和FSTr-D在平均預(yù)測性能上分別提高了3.8%和2.5%。綜上,實(shí)驗(yàn)結(jié)果表明,CPDP-FDTr方法考慮到了源項(xiàng)目角度的特征選擇問題以及目標(biāo)項(xiàng)目角度的數(shù)據(jù)分布差異問題,上述兩個問題一定程度上的解決使得特征選擇的有效性得到了提升。
綜上,實(shí)驗(yàn)驗(yàn)證了CPDP-FSTr方法中兩過程特征選擇的性能優(yōu)于單一特征選擇過程,具有其合理性和有效性。
3.5.3 針對問題3的結(jié)果分析
本文設(shè)置5%、10%以及20%三種有類標(biāo)實(shí)例比例進(jìn)行實(shí)驗(yàn)研究,以此分析目標(biāo)項(xiàng)目中有類標(biāo)實(shí)例比例對于CPDP-FSTr方法性能的影響。由于標(biāo)注實(shí)例需要耗費(fèi)人力和物力,所以把比例控制在20%以下有助于減少開銷,且同時更有效地幫助模型進(jìn)行更加準(zhǔn)確的預(yù)測。此外,對于5%、10%以及20%的比例,分別采用跨項(xiàng)目的20折、10折和5折交叉驗(yàn)證。有類標(biāo)實(shí)例比例對于CPDP-FSTr方法性能的影響如圖5~6所示。
圖5 目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例對性能的影響(AEEEM數(shù)據(jù)集)Fig. 5 Influence of target project labeled instance proportion on performance (AEEEM dataset)
圖6 目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例對性能的影響(NASA數(shù)據(jù)集)Fig. 6 Influence of target project labeled instance proportion on performance (NASA dataset)
在圖5~6中,橫軸代表不同的目標(biāo)項(xiàng)目,縱軸代表對應(yīng)的F1值??梢钥闯?,在LC、ML和PDE這三個項(xiàng)目中,隨著目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例的增加,CPDP-FSTr方法的預(yù)測性能也隨之提升,主要是由于這三個項(xiàng)目中包含的樣本數(shù)較多,分別為691、1 842、1 497,隨著目標(biāo)項(xiàng)目中有標(biāo)簽實(shí)例比例的增加,可用的實(shí)例信息越多,得到的預(yù)測結(jié)果就越好。對于項(xiàng)目JDT來說,當(dāng)有類標(biāo)實(shí)例比例為10%時,F(xiàn)1值最大,當(dāng)比例增加到20%時,預(yù)測性能反而下降,其可能的原因是JDT的缺陷樣本比例較高,或數(shù)據(jù)質(zhì)量不好。對于項(xiàng)目EQ來說,當(dāng)比例從5%上升到20%時,F(xiàn)1處于不穩(wěn)定的狀態(tài),其可能的原因是EQ項(xiàng)目中的樣本太少,只有324個,隨著比例的增加,可用的信息增加得很少,因此有類標(biāo)實(shí)例比例對其性能的影響不大。
由圖6可以看出,整體而言,CPDP-FSTr的預(yù)測性能隨著目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例的增大而不斷提升。在CM1項(xiàng)目上,目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例從10%增加到20%,其性能變化幅度較小,可能是由于CM1項(xiàng)目中僅包含327個實(shí)例,比例的變化不會增加太多可用信息。在JM1、KC1、PC1和PC3上,CPDP-FSTr的預(yù)測性能均隨著有類別實(shí)例比例增加而提高,主要是由于這四個項(xiàng)目中包含的實(shí)例數(shù)較多,隨著有類標(biāo)實(shí)例比例的增加,增加的可用信息也更多,預(yù)測性能也就越來越好。
因此,在CPDP-FSTr方法中的特征選擇階段,有類標(biāo)的實(shí)例比例選定為20%比較合理。特征選擇階段采用的方法更適用于實(shí)例個數(shù)較多的數(shù)據(jù)集,預(yù)測性能更優(yōu)。
3.5.4 針對問題4的結(jié)果分析
為了研究CPDP-FSTr方法中的特征選擇階段,源項(xiàng)目中的特征選擇比例對于該方法性能的影響,本文將特征選擇比例設(shè)定為10%~100%、步長為10%。特征選擇比例對CPDP-FSTr方法性能的影響如圖7~8所示。
圖7 特征選擇比例對性能的影響(AEEEM數(shù)據(jù)集)Fig. 7 Influence of feature selection proportion on performance (AEEEM dataset)
圖8 特征選擇比例對性能的影響(NASA數(shù)據(jù)集)Fig. 8 Influence of feature selection proportion on performance (NASA dataset)
在圖7~8中,橫坐標(biāo)代表不同的特征遷移比例,縱坐標(biāo)代表對應(yīng)的F1值。由圖7可以發(fā)現(xiàn),當(dāng)特征遷移比例從10%上升到100%的過程中,EQ、LC和PDE整體處于較為穩(wěn)定的狀態(tài),隨著特征遷移比例的增加,F(xiàn)1分別在0.74、0.89和0.86上下浮動。在EQ項(xiàng)目和LC項(xiàng)目中,當(dāng)遷移的特征比例為60%時,CPDP-FSTr方法取得的預(yù)測性能最高。在JDT項(xiàng)目中,當(dāng)遷移比例為10%~60%時,預(yù)測性能較為平穩(wěn),遷移比例為70%時預(yù)測性能最差,遷移比例為80%時到達(dá)峰值,之后性能不斷下降。在ML項(xiàng)目中,當(dāng)遷移比例為60%時,取得最優(yōu)效果,隨著遷移比例繼續(xù)提高,預(yù)測性能大幅下降,到80%時開始回升。
由圖8可以看出,隨著特征遷移比例從10%上升到100%,CM1、JM1、KC1、PC1和PC3這五個項(xiàng)目均處于較為平穩(wěn)的狀態(tài)。其中,CM1、JM1在特征遷移比例為60%時,預(yù)測性能最佳;KC1、PC1和PC3這三個項(xiàng)目在特征遷移比例為60%和70%時,均取得最優(yōu)預(yù)測性能。當(dāng)特征遷移比例繼續(xù)提升時,性能均有小幅度下降。
因此,在CPDP-FSTr方法的特征選擇階段,源項(xiàng)目中的特征選擇比例設(shè)置為60%時,能取得較好的預(yù)測結(jié)果。
本文提出了一種基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測方法,一定程度上縮小了跨項(xiàng)目缺陷預(yù)測中源項(xiàng)目和目標(biāo)項(xiàng)目間的數(shù)據(jù)分布差異,且通過采用KPCA方法和基于距離的屬性特征分布,找出了與目標(biāo)項(xiàng)目最相近的源項(xiàng)目特征,同時增加了評估因子改進(jìn)TrAdaBoost技術(shù),以保證更關(guān)注錯分的有缺陷樣本,繼而進(jìn)行實(shí)例遷移,構(gòu)建跨項(xiàng)目缺陷預(yù)測模型。實(shí)驗(yàn)結(jié)果表明,該方法可以有效應(yīng)用于跨項(xiàng)目缺陷預(yù)測中,且預(yù)測性能明顯優(yōu)于基準(zhǔn)實(shí)驗(yàn),提高了軟件缺陷預(yù)測的性能。
在接下來的研究工作中,將進(jìn)一步探討:1)不同基分類器對于CPDP-FSTr方法預(yù)測性能的影響,如支持向量機(jī)、邏輯回歸、樸素貝葉斯等;2)優(yōu)化特征選擇策略,進(jìn)一步提高CPDP-FSTr方法的有效性和預(yù)測性能。本文方法對于數(shù)據(jù)量較少的數(shù)據(jù)(如EQ項(xiàng)目樣本數(shù)為324)的預(yù)測性能可進(jìn)一步提高,因此需要對特征選擇策略進(jìn)一步優(yōu)化。在下一階段研究中,可以選擇中位數(shù)、離散系數(shù)等構(gòu)建屬性分布特征向量,選擇適用于不同數(shù)據(jù)量數(shù)據(jù)集的屬性分布特征組合。同時,也可以考慮通過信息熵、基尼指數(shù)來判斷源項(xiàng)目和目標(biāo)項(xiàng)目之間的分布相似性,進(jìn)一步提高本文方法的特征選擇的有效性。
[1] 宮麗娜,姜淑娟,姜麗.軟件缺陷預(yù)測技術(shù)研究進(jìn)展[J].軟件學(xué)報(bào),2019,30(10):3090-3114.(GONG L N, JIANG S J,JIANG L. Research progress of software defect prediction [J]. Journal of Software, 2019, 30(10): 3090-3114.)
[2] 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.
[3] GONG L N, JIANG S J, BO L L, et al. A novel class-imbalance learning approach for both within-project and cross-project defect prediction [J]. IEEE Transactions on Reliability, 2020, 69(1): 40-54.
[4] 陳翔,王莉萍,顧慶,等.跨項(xiàng)目軟件缺陷預(yù)測方法研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2018,41(1):254-274.(CHEN X, WANG L P, GU Q, et al. A survey on cross-project software defect prediction methods [J]. Chinese Journal of Computers, 2018, 41(1): 254-274.)
[5] YUAN Z D, CHEN X, CUI Z Q, et al. ALTRA: cross-project software defect prediction via active learning and TrAdaBoost [J]. IEEE Access, 2020, 8:30037-30049.
[6] PRABHA C L, SHIVAKUMAR N. Software defect prediction using machine learning techniques [C]// Proceedings of the 2020 4th International Conference on Trends in Electronics and Informatics. Piscataway: IEEE, 2020:728-733.
[7] SAIFUDIN A, TRISETYARSO A, SUPARTA W, et al. Feature selection in cross-project software defect prediction [J]. Journal of Physics: Conference Series, 2019, 1569(2): Article No.022001.
[8] 吳琦.基于遷移學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測[D].長春:吉林大學(xué),2018:12-13.(WU Q. Cross-project defect prediction based on transfer learning [D]. Changchun: Jilin University,2018: 12-13.)
[9] ZIMMERMANN R, NAGAPPAN N, GALL H, et al. Cross-project defect prediction: a large scale experiment on data vs. domain vs. process [C]// Proceeding of the 2009 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. New York: ACM, 2009: 91-100.
[10] HE Z M, SHU F D, YANG Y, et al. An investigation on the feasibility of cross-project defect prediction [J]. Automated Software Engineering, 2012, 19(2): 167-199.
[11] TURHAN B. On the dataset shift problem in software engineering prediction models [J]. Empirical Software Engineering, 2012, 17(1/2): 62-74.
[12] PETERS F, MENZIES T, MARCUS A. Better cross company defect prediction [C]// Proceedings of the 2013 10th Working Conference on Mining Software Repositories. Piscataway:IEEE, 2013: 409-418.
[13] NAM J, PAM S J, KIM S. Transfer defect learning [C]// Proceedings of the 2013 35th International Conference on Software Engineering, Piscataway: IEEE, 2013: 382-391.
[14] PANICHELLA A, OLIVETO R, DE LUCIA A. Cross-project defect prediction models: L’Union fait la force [C]// Proceedings of the 2014 Software Evolution Week — IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering. Piscataway: IEEE, 2014: 164-173.
[15] 黃琳,荊曉遠(yuǎn),董西偉.基于多核集成學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019,29(6):27-31.(HUANG L, JING X Y,DONG X W, Cross-project software defect prediction based on multiple kernel ensemble learning [J]. Computer Technology and Development, 2019, 29(6): 27-31.)
[16] 劉芳,高興,周冰,等.基于PCA-ISVM的軟件缺陷預(yù)測模型[J].計(jì)算機(jī)仿真,2014,31(3):397-401.(LIU F, GAO X, ZHOU B, et al. Software defect prediction model based on PCA-ISVM [J]. Computer Simulation, 2014, 31(3): 397-401.)
[17] 邱少健.基于遷移學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測關(guān)鍵技術(shù)研究[D].廣州:華南理工大學(xué),2019:40-60.(QIU S J. Research on cross-project software defect prediction by transfer learning [D]. Guangzhou: South China University of Technology, 2019: 40-60.)
[18] 倪超,陳翔,劉望舒,等.基于特征遷移和實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測方法[J].軟件學(xué)報(bào),2019,30(5):1308-1329.(NI C, CHEN X, LIU W S, et al. Cross-project defect prediction method based on feature transfer and instance transfer [J]. Journal of Software, 2019, 30(5): 1308-1329.)
[19] SCH?LKOPF B, SMOLA A, MüLLER K R. Kernel principal component analysis [C]// Proceedings of the 1997 International Conference on Artificial Neural Networks, LNCS 1327. Berlin: Springer, 1997: 583-588.
Cross-project defect prediction method based on feature selection and TrAdaBoost
LI Li*, SHI Kexin,REN Zhenkang
(College of Information and Computer Engineering,Northeast Forestry University,Harbin Heilongjiang150040,China)
Cross-project software defect prediction can solve the problem of few training data in prediction projects. However, the source project and the target project usually have the large distribution difference, which reduces the prediction performance. In order to solve the problem,a new Cross-Project Defect Prediction method based on Feature Selection and TrAdaBoost (CPDP-FSTr) was proposed. Firstly, in the feature selection stage, Kernel Principal Component Analysis (KPCA) was used to delete redundant data in the source project. Then, according to the attribute feature distribution of the source project and the target project, the candidate source project data closest to the target project distribution were selected according to the distance. Finally, in the instance transfer stage, the TrAdaBoost method improved by the evaluation factor was used to find out the instances in the source project which were similar to the distribution of a few labeled instances in the target project, and establish a defect prediction model. Using F1 as the evaluation index, compared with the methods such as cross-project software defect prediction using Feature Clustering and TrAdaBoost (FeCTrA), Cross-project software defect prediction based on Multiple Kernel Ensemble Learning (CMKEL), the proposed CPDP-FSTr had the prediction performance improved by 5.84% and 105.42% respectively on AEEEM dataset,enhanced by 5.25% and 85.97% respectively on NASA dataset, and its two-process feature selection is better than the single feature selection process. Experimental results show that the proposed CPDP-FSTr can achieve better prediction performance when the source project feature selection proportion and the target project labeled instance proportion are 60% and 20% respectively.
cross-project defect prediction; feature selection; Kernel Principal Component Analysis (KPCA); instance transfer; TrAdaBoost
TP311.5
A
1001-9081(2022)05-1554-09
10.11772/j.issn.1001-9081.2021050867
2021?05?25;
2022?01?24;
2022?02?18。
李莉(1977—),女,河南孟州人,副教授,博士,CCF會員,主要研究方向:先進(jìn)軟件工程、區(qū)塊鏈、群智能優(yōu)化、大型分布式計(jì)算; 石可欣(1997—),女,山東聊城人,碩士研究生,主要研究方向:軟件缺陷預(yù)測; 任振康(1996—),男,山東青島人,碩士研究生,主要研究方向:軟件缺陷預(yù)測。
LI Li, born in 1977, Ph. D., associate professor. Her research interests include advanced software engineering, blockchain, swarm intelligence optimization, large-scale distributed computing.
SHI Kexin,born in 1997, M. S. candidate. Her research interests include software defect prediction.
REN Zhenkang, born in 1996, M. S. candidate. His research interests include software defect prediction.