国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

結(jié)合特征對齊與實例遷移的跨項目缺陷預(yù)測

2023-10-17 12:07:01李莉趙鑫石可欣蘇仁嘉任振康
計算機(jī)應(yīng)用研究 2023年10期

李莉 趙鑫 石可欣 蘇仁嘉 任振康

摘 要:為解決跨項目缺陷預(yù)測中源項目和目標(biāo)項目分布差異較大的問題,提出了一種基于特征對齊和實例遷移的兩階段缺陷預(yù)測方法(FAIT)。首先,在特征對齊階段,根據(jù)邊緣概率分布進(jìn)行特征的邊緣分布對齊;然后,基于源項目和目標(biāo)項目構(gòu)建條件分布映射矩陣完成條件分布對齊;最后,在實例遷移階段,通過改進(jìn)了權(quán)重調(diào)整策略的TrAdaBoost方法構(gòu)建跨項目缺陷預(yù)測模型。以F1作為評價指標(biāo),當(dāng)目標(biāo)項目有標(biāo)簽實例比例為20%時,F(xiàn)AIT性能最佳,且兩過程特征對齊優(yōu)于單一過程特征對齊。此外,F(xiàn)AIT的預(yù)測性能在AEEEM和NASA數(shù)據(jù)集上分別提高了10.69%、15.04%。FAIT在一定程度上解決了源項目與目標(biāo)項目的分布差異,能夠取得較好的缺陷預(yù)測性能。

關(guān)鍵詞:跨項目缺陷預(yù)測;特征對齊;最大均值差異;實例遷移;TrAdaBoost

中圖分類號:TP311.5 文獻(xiàn)標(biāo)志碼:A 文章編號:1001-3695(2023)10-032-3091-09

doi:10.19734/j.issn.1001-3695.2023.02.0068

Cross-project defect prediction combining feature alignment and instance migration

Li Li,Zhao Xin,Shi Kexin,Su Renjia,Ren Zhenkang

(College of Computer & Control Engineering,Northeast Forestry University,Harbin 150040,China)

Abstract:To address the problem of significant distributional differences between source and target projects in cross-project defect prediction,this paper proposed a two-stage defect prediction method based on feature alignment and instance transfer (FAIT).In the feature alignment stage,F(xiàn)AIT aligned the marginal distributions of features based on their probability distributions.Next,this method constructed a conditional distribution mapping matrix based on both source and target projects to achieve conditional distribution alignment.Finally,in the instance transfer stage,it built a cross-project defect prediction model using an improved weight adjustment strategy for TrAdaBoost.FAIT achieves the best performance when the proportion of labeled instances in the target project is 20%,with F1 as the evaluation metric.Furthermore,dual-process feature alignment outperforms single-process feature alignment,and FAITs predictive performance improves by 10.69% and 15.04% on the AEEEM and NASA datasets,respectively.To some extent,F(xiàn)AIT addresses distributional differences between source and target projects and achieves good defect prediction performance.

Key words:cross-project defect prediction(CPDP);feature alignment;maximum mean discrepancy;instance transfer;TrAdaBoost

0 引言

隨著軟件復(fù)雜度的不斷增長,軟件開發(fā)難度不斷變大,由于開發(fā)過程不規(guī)范、需求理解錯誤等問題,導(dǎo)致軟件中存在大量缺陷;而軟件缺陷若無法盡早修正,將會帶來巨大的人力物力損失[1,2]。軟件缺陷預(yù)測技術(shù)可以幫助開發(fā)人員和測試人員盡可能早地識別出項目中存在的缺陷。目前,大部分缺陷預(yù)測工作集中于項目內(nèi),即對當(dāng)前項目的歷史信息進(jìn)行挖掘分析,構(gòu)建模型,然后對新版本進(jìn)行預(yù)測[3]。但是對于新項目,沒有足夠的數(shù)據(jù)積累,無法保證缺陷預(yù)測性能。因此,跨項目軟件缺陷預(yù)測(CPDP)應(yīng)需而生,即基于其他項目訓(xùn)練模型對新項目進(jìn)行預(yù)測。然而,源項目與目標(biāo)項目之間通常因為業(yè)務(wù)和編程語言等因素不同導(dǎo)致數(shù)據(jù)分布存在較大的差異,該差異主要包括特征分布差異和實例分布差異。特征分布差異使得源項目和目標(biāo)項目分屬不同的知識空間,源項目的知識表現(xiàn)形式無法應(yīng)用于目標(biāo)項目;實例分布差異使得源項目大部分實例與目標(biāo)項目實例關(guān)聯(lián)程度較低,模型在源項目中學(xué)習(xí)到的實例信息在目標(biāo)項目中的泛化能力不足。因此,跨項目軟件缺陷預(yù)測首先需要減小源項目和目標(biāo)項目之間的特征分布差異和實例分布差異。雖然現(xiàn)有研究已提出多種數(shù)據(jù)過濾策略以解決該問題,但是此類方法無論是在減小特征分布差異還是實例分布差異方面,都只注重源項目的數(shù)據(jù)選擇而忽視了目標(biāo)項目潛在的先驗知識,導(dǎo)致跨項目缺陷預(yù)測性能提升受限。

針對上述問題,本文提出了一種結(jié)合特征對齊與實例遷移的跨項目缺陷預(yù)測方法(cross-project defect prediction based on feature alignment and instance transfer,F(xiàn)AIT)。FAIT方法包括兩個階段:在特征的分布對齊階段,通過邊緣分布對齊和條件分布對齊對特征進(jìn)行遷移,使源項目和目標(biāo)項目的特征在再生希爾伯特空間具有一致的分布;在實例遷移階段,基于TrAdaBoost[4]方法并對其進(jìn)行改進(jìn),給源項目中與目標(biāo)項目具有相似分布的實例賦予更高權(quán)重,構(gòu)建跨項目缺陷預(yù)測模型。

1 相關(guān)工作

跨項目軟件缺陷預(yù)測技術(shù)通過有類標(biāo)的其他項目(源項目)數(shù)據(jù)建立模型來盡可能地識別出被測項目中有缺陷的模塊,是一個二分類問題。由于項目間程序語言等各要素不同,源項目和目標(biāo)項目的特征分布及實例分布均可能存在較大差異。為探究跨項目缺陷預(yù)測的可行性,文獻(xiàn)[5]基于回歸方法對Jwrite項目進(jìn)行跨項目預(yù)測,實驗結(jié)果表明利用源項目對目標(biāo)項目預(yù)測的性能優(yōu)于隨機(jī)預(yù)測,但無法達(dá)到同一項目之間的預(yù)測性能。近年來,研究人員已提出多種跨項目缺陷預(yù)測方法,其大致可以分為基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法和基于遷移學(xué)習(xí)的CPDP方法兩類。

1.1 基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法

基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法旨在通過對訓(xùn)練數(shù)據(jù)進(jìn)行特征變換、特征選擇[6]以及缺陷實例過濾[7]等操作進(jìn)行數(shù)據(jù)預(yù)處理,為目標(biāo)項目數(shù)據(jù)找到合適的源項目數(shù)據(jù)。

特征變換是根據(jù)特征之間的關(guān)系將原始特征集通過某種變換映射到一個新的特征空間內(nèi),在降低特征維度[8]的同時避免模型在源項目上過擬合。文獻(xiàn)[9]認(rèn)為不同源的數(shù)據(jù)會導(dǎo)致訓(xùn)練集結(jié)構(gòu)復(fù)雜,不利于跨項目缺陷預(yù)測模型的訓(xùn)練,提出利用主成分分析(principal component analysis,PCA)對數(shù)據(jù)訓(xùn)練集進(jìn)行特征變換以克服該問題。文獻(xiàn)[10]基于PCA方法提出了核主成分分析(kernel principal component analysis,KPCA),通過對不同特性的核函數(shù)充分提取原特征的非線性關(guān)系,取得了較優(yōu)的缺陷預(yù)測效果。文獻(xiàn)[11]則進(jìn)一步將具有不同表達(dá)能力的核函數(shù)進(jìn)行組合,使變換后的數(shù)據(jù)保留更多主要成分,然后與集成學(xué)習(xí)結(jié)合提出了基于多核集成學(xué)習(xí)的跨項目軟件缺陷預(yù)測(cross-project software defect prediction based on multiple kernel ensemble learning,CMKEL)方法,但該方法需要對所有特征進(jìn)行多次核映射,當(dāng)特征數(shù)量較多時計算代價較大。文獻(xiàn)[12]在特征提取過程中實現(xiàn)了特征降維,不會出現(xiàn)文獻(xiàn)[10]的維度災(zāi)難問題,它從統(tǒng)計學(xué)的角度分析了每個特征的16種描述性統(tǒng)計,將原始特征轉(zhuǎn)換成16維的新特征。其中,采用方差、異種比率等描述特征取值的離散性;采用峰度和偏態(tài)等描述特征的形狀;采用均值、中位數(shù)、眾數(shù)等描述特征的集中趨勢。

特征選擇是從原特征中選取部分與類標(biāo)關(guān)聯(lián)性較大的優(yōu)質(zhì)特征組成新的特征集。文獻(xiàn)[13]利用最大信息系數(shù)(maximal information coefficient,MIC)衡量特征與類標(biāo)之間的關(guān)聯(lián)程度,進(jìn)而對特征進(jìn)行過濾。雖然MIC是一種優(yōu)秀的數(shù)據(jù)關(guān)聯(lián)性衡量指標(biāo),但單一指標(biāo)無法保證篩選結(jié)果的準(zhǔn)確性。文獻(xiàn)[14]考慮四種關(guān)聯(lián)性衡量指標(biāo),基于Boruta算法、交替條件期望(alternating conditional expectation,ACE)、回歸子集和簡單關(guān)聯(lián)分析四種指標(biāo)進(jìn)行特征非線性分析。由于使用多種衡量指標(biāo)需要考慮特征選擇結(jié)果的交集,所以在特征選擇過程中會拋棄更多特征,導(dǎo)致更多信息丟失。文獻(xiàn)[15]提出在多指標(biāo)中選取top-k統(tǒng)計方法驗證預(yù)分類的可接受性能,然后通過刪除冗余指標(biāo)來最小化top-k指標(biāo)子集,并使用單因素方差分析檢驗測試了此類最小指標(biāo)子集的穩(wěn)定性。此方法是一種權(quán)衡方法,可在保證篩選結(jié)果準(zhǔn)確性的同時避免信息丟失過多。

無論是特征變換還是特征選擇,均是在項目內(nèi)部對特征進(jìn)行處理,源項目與目標(biāo)項目特征處理并無關(guān)聯(lián),這就導(dǎo)致了在源項目內(nèi)得到的特征集與目標(biāo)項目內(nèi)得到的特征集之間仍然存在著分布差異。本文考慮到該問題,在特征處理過程中關(guān)聯(lián)源項目特征與目標(biāo)項目特征,利用特征遷移技術(shù)對源項目和目標(biāo)項目的特征進(jìn)行對齊。

實例過濾是通過算法對源項目實例進(jìn)行篩選,篩選出與目標(biāo)項目分布相似最高的實例加入到訓(xùn)練集中。從目標(biāo)項目角度出發(fā),文獻(xiàn)[16]使用Burak過濾法,對于每個目標(biāo)項目的實例獲取10個與其歐氏距離最小的源項目實例加入到實例集中。從源項目角度出發(fā),文獻(xiàn)[17]提出Peters過濾法,首先基于源項目選擇距離最近的目標(biāo)項目實例,然后再基于該目標(biāo)項目實例選擇與其距離最近的源項目實例,該雙向選擇策略使得從源項目中選擇的實例不存在冗余。從全局和局部角度出發(fā),文獻(xiàn)[18]分析了全局實例選擇和局部實例選擇對跨項目缺陷預(yù)測模型性能的影響,在局部實例選擇中使用不同的聚類方法對源項目實例進(jìn)行聚類,實驗表明聚類后的源項目可使模型具有更好的預(yù)測性能。

上述研究均對源項目實例進(jìn)行篩選,這意味著需要丟棄源項目中的部分實例,同樣會導(dǎo)致部分信息丟失。本文考慮到該問題,在實例處理階段,利用TrAdaBoost的加權(quán)方式為源項目實例設(shè)置權(quán)重并進(jìn)行動態(tài)調(diào)整,在不損失或少損失源項目信息的前提下,提高與目標(biāo)項目分布相似較高的實例的權(quán)重。

1.2 基于遷移學(xué)習(xí)的CPDP方法

基于遷移學(xué)習(xí)的CPDP方法旨在設(shè)計具有強(qiáng)大學(xué)習(xí)能力和泛化能力的算法構(gòu)建分類器。根據(jù)遷移對象的不同可以分為特征遷移和實例遷移兩類遷移方法。

特征遷移通過算法對特征進(jìn)行映射,使得源項目和目標(biāo)項目在同一空間內(nèi)具有相似的特征分布??珥椖咳毕蓊A(yù)測中常用的是遷移成分分析(transfer component analysis,TCA),文獻(xiàn)[19]利用TCA解決源項目和目標(biāo)項目之間的分布差異問題,該方法通過訓(xùn)練得到一個特征變換矩陣,利用該矩陣同時對源項目特征和目標(biāo)項目特征進(jìn)行變換,為本文的邊緣分布對齊提供了參考。文獻(xiàn)[20]針對軟件缺陷預(yù)測對TCA進(jìn)行了擴(kuò)展提出TCA+方法,通過添加定制的歸一化規(guī)則來最小化源項目和目標(biāo)項目之間的特征分布差異。文獻(xiàn)[21]在TCA中引入流形學(xué)習(xí),提出局部保留聯(lián)合分布適配方法。缺陷預(yù)測可以借鑒聯(lián)合分布適配思想,在邊緣分布對齊后繼續(xù)進(jìn)行條件分布對齊。條件分布對齊的前提是目標(biāo)項目具有類標(biāo),然而目標(biāo)項目不存在類標(biāo)。文獻(xiàn)[22]在特征遷移過程中通過為目標(biāo)項目生成偽類標(biāo)的方式解決該矛盾,對目標(biāo)項目中的實例與源項目中的實例按照距離進(jìn)行匹配,將源項目實例的類標(biāo)賦予目標(biāo)項目實例。

實例遷移是根據(jù)目標(biāo)項目中部分有類標(biāo)實例,調(diào)整源項目中實例的權(quán)重,使得源項目與目標(biāo)項目相適配的遷移方法。文獻(xiàn)[23]介紹了基于代價敏感思想的權(quán)重更新策略:對于分布相似的源項目實例和目標(biāo)項目實例,如果誤分則增加權(quán)重,否則降低權(quán)重;對于分布差異較大的實例,如果誤分則稍降低權(quán)重,否則降低更多的權(quán)重。文獻(xiàn)[24]認(rèn)為源項目中與目標(biāo)項目相似的實例應(yīng)該被分配更高的權(quán)重;文獻(xiàn)[25]提出FeCTrA(cross-project software defect prediction using feature clustering and TrAdaBoost)方法,在特征遷移階段借助TrAdaBoost從源項目中選擇訓(xùn)練實例。TrAdaBoost是AdaBoost方法在跨項目缺陷預(yù)測中的應(yīng)用,其權(quán)重更新策略為:如果誤分源項目實例,認(rèn)為該實例與目標(biāo)項目沖突,降低該實例權(quán)重;如果誤分目標(biāo)項目實例,認(rèn)為該實例很難被分類,提高其權(quán)重。該方法在一定程度上提高了跨項目缺陷預(yù)測性能,取得了比較好的結(jié)果。

2 FAIT方法

2.1 研究動機(jī)

軟件缺陷預(yù)測利用歷史版本庫構(gòu)建模型,對新模塊進(jìn)行缺陷預(yù)測,然而新項目(目標(biāo)項目)并沒有歷史版本信息,無法獲取訓(xùn)練實例。因此,需要基于遺留項目(源項目),利用遷移學(xué)習(xí)技術(shù)進(jìn)行跨項目缺陷預(yù)測。遺留的源項目可提供充足的有類標(biāo)訓(xùn)練實例,但是基于源項目構(gòu)建的模型無法保證在目標(biāo)項目上具有良好的、穩(wěn)定的缺陷預(yù)測性能,其原因如下:

a)從特征分布角度考慮,源項目和目標(biāo)項目之間存在著較為嚴(yán)重的分布差異,該差異會導(dǎo)致模型與目標(biāo)項目的特征分布無法適配。為更加直觀地探究源項目和目標(biāo)項目之間的分布差異,本文以AEEEM數(shù)據(jù)集中的PDE(源項目)、ML(目標(biāo)項目)和NASA數(shù)據(jù)集中的PC3(源項目)、CM1(目標(biāo)項目)為例,對源項目和目標(biāo)項目的特征分布進(jìn)行了可視化,并計算了源項目和目標(biāo)項目之間的最大均值差異(maximum mean discrepancy,MMD)衡量分布之間的距離,如圖1所示。AEEEM數(shù)據(jù)集的源項目呈聚集分布,目標(biāo)項目呈條形分布,源項目和目標(biāo)項目之間的MMD達(dá)到了7.035 7。NASA數(shù)據(jù)集的源項目和目標(biāo)項目呈現(xiàn)不同的聚集分布狀態(tài),但二者交集并不多,源項目和目標(biāo)項目之間的MMD也較大。無論是定性的可視化結(jié)果還是定量的最大均值分布差異,均可以得出相同的結(jié)論,即源項目和目標(biāo)項目之間存在較大的分布差異。因此,在進(jìn)行跨項目缺陷預(yù)測前需要通過特征遷移對齊源項目和目標(biāo)項目的特征分布。

b)從實例分布角度考慮,由于源項目與目標(biāo)項目業(yè)務(wù)和程序語言等因素的不同,源項目中存在著冗余實例和無用實例,尤其是當(dāng)源項目實例數(shù)目遠(yuǎn)大于目標(biāo)項目時,無用實例會嚴(yán)重影響模型在目標(biāo)項目上的分類性能。所以,需要對源項目中的實例進(jìn)行選擇。

特征分布差異和實例分布差異是導(dǎo)致跨項目缺陷預(yù)測性能不良的兩類不同因素,本文分別從特征分布對齊和實例遷移兩個方面進(jìn)行研究。

2.2 方法流程

FAIT方法的流程如圖2所示,該方法包括特征對齊和實例遷移兩個階段。

a)特征對齊階段。該階段包括兩個過程:(a)根據(jù)源項目和目標(biāo)項目的數(shù)據(jù)集構(gòu)建邊緣分布映射矩陣,通過該矩陣可得到邊緣分布對齊后的源項目和目標(biāo)項目數(shù)據(jù);(b)生成目標(biāo)項目偽類標(biāo),利用帶類標(biāo)的源項目和具有偽類標(biāo)的目標(biāo)項目構(gòu)建條件分布映射矩陣,得到最終對齊的源項目和目標(biāo)項目數(shù)據(jù)。

b)實例遷移階段。從目標(biāo)項目中選取少量帶有類標(biāo)數(shù)據(jù)加入訓(xùn)練集內(nèi),利用改進(jìn)了誤分權(quán)重調(diào)整策略的TrAdaBoost方法,經(jīng)過迭代訓(xùn)練獲得若干弱分類器。根據(jù)改進(jìn)后的評估指標(biāo)對弱分類器進(jìn)行加權(quán)集成得到最終的強(qiáng)分類器。本文目標(biāo)項目中有類標(biāo)的實例選擇比例為20%。

2.3 特征對齊階段

源項目和目標(biāo)項目通常存在著數(shù)據(jù)分布差異,該差異可分為邊緣分布差異和條件分布差異兩類。邊緣分布差異是導(dǎo)致模型與目標(biāo)項目特征無法適配的主要原因。特征對齊的最終目標(biāo)是使得源項目上的條件概率與目標(biāo)項目上的條件概率相同,即P(yS|XS)=P(yT|XT),其中XS和XT分別表示源項目數(shù)據(jù)和目標(biāo)項目數(shù)據(jù),yS和yT分別表示源項目數(shù)據(jù)和目標(biāo)項目數(shù)據(jù)對應(yīng)的標(biāo)簽。因此,本文特征對齊包括兩個步驟:a)通過邊緣分布對齊,使得源項目和目標(biāo)項目特征具有類似的邊緣概率分布;b)在步驟a)的基礎(chǔ)上,通過條件分布對齊使得源項目和目標(biāo)項目具有類似的條件概率分布。

2.3.1 邊緣分布對齊

邊緣分布對齊是在特征遷移過程中使得源項目和目標(biāo)項目特征的邊緣分布趨于一致的特征對齊方法。當(dāng)源項目和目標(biāo)項目處于不同的分布時,即P(XS)≠P(XT),將兩個分布內(nèi)的數(shù)據(jù)同時映射到同一個高維再生希爾伯特空間。在此空間內(nèi),最小化源項目和目標(biāo)項目數(shù)據(jù)邊緣分布距離的同時,最大限度保留其各自的內(nèi)部屬性。邊緣MMD可衡量分布之間的距離,其計算公式如式(1)所示。

算法1首先使用輸入的源項目數(shù)據(jù)集和目標(biāo)項目數(shù)據(jù)集縱向拼接,構(gòu)造矩陣X,其時間復(fù)雜度為O(N2);然后基于X和格拉姆矩陣計算公式可得到核矩陣,核矩陣能夠?qū)映射到高維再生希爾伯特空間,時間復(fù)雜度同樣為O(N2);借助于核技巧,將式(1)改寫后需要計算矩陣L,通過對式(1)展開可得L的計算公式(式(3));其次,通過構(gòu)造中心矩陣H1計算中間矩陣M,構(gòu)造中心矩陣涉及矩陣相減操作,其時間復(fù)雜度為O(N2);計算中間矩陣M涉及矩陣乘法操作,時間復(fù)雜度可控制在O(N2)~O(N3);對中間矩陣進(jìn)行特征分解能夠得到用來進(jìn)行特征對齊的矩陣W,特征分解的時間復(fù)雜度為O(N3);最后,利用特征對齊矩陣W與X相乘可得到對齊后的結(jié)果,拆分返回即可。由上述分析可知,算法1的時間復(fù)雜度為O(N3)。

2.3.2 條件分布對齊

條件分布對齊的目標(biāo)是尋找一個變換A使得經(jīng)過變換后的源項目數(shù)據(jù)和目標(biāo)項目數(shù)據(jù)具有類似的條件概率分布,即P(yS|ATXS)≈P(yT|ATXT)。但是對于目標(biāo)項目來說,并不存在yT,無法求得目標(biāo)項目的條件概率分布。此處可利用源項目數(shù)據(jù)訓(xùn)練一個簡單分類器Ψ,通過Ψ可獲得目標(biāo)項目上的偽標(biāo)簽T。同樣在再生希爾伯特空間內(nèi)最小化源項目和目標(biāo)項目之間的條件分布距離,條件MMD的計算公式為

從Z中獲取DS和DT返回。

算法2同樣根據(jù)輸入構(gòu)造矩陣,并初始化Mc=0,Mc是由式(5)化簡而來;然后開始迭代計算矩陣A,矩陣A是由求解式(6)得到的特征向量組成,是最終用來進(jìn)行條件分布對齊的變換矩陣,分解特征向量時間復(fù)雜度為O(N3);在迭代過程中通過源域訓(xùn)練分類器,在目標(biāo)域上獲取偽標(biāo)簽,并基于偽標(biāo)簽更新具有類標(biāo)信息的條件分布MMD矩陣Mc,利用Mc可優(yōu)化矩陣A;迭代結(jié)束后利用變換矩陣A與Q相乘可得到對齊后的結(jié)果,拆分返回即可。算法2使用決策樹作為分類器,訓(xùn)練分類器的時間復(fù)雜度可看做是O(N)。更新矩陣Mc的時間復(fù)雜度是O(N2),迭代次數(shù)T2是常數(shù)可忽略,最終獲取對齊結(jié)果的時間復(fù)雜度是O(N2)。由上述分析可知,算法2的時間復(fù)雜度為O(N3)。

2.4 實例遷移階段

本文采用改進(jìn)的TrAdaBoost方法進(jìn)行實例遷移。TrAdaBoost改進(jìn)了項目內(nèi)集成算法AdaBoost,采用錯誤率作為權(quán)重衡量指標(biāo),對源項目和目標(biāo)項目采用兩種相反的誤分實例權(quán)重調(diào)整策略。然而,軟件缺陷預(yù)測數(shù)據(jù)集存在類不平衡問題,錯誤率并不適合作為存在著類不平衡問題的數(shù)據(jù)集;此外,雖然TrAdaBoost的誤分實例的權(quán)重更新策略提供了一個新的思路,但是其更新策略仍可進(jìn)一步優(yōu)化?;诖?,本文從權(quán)重衡量指標(biāo)和權(quán)重更新策略兩個方面對TrAdaBoost進(jìn)行改進(jìn),提出了RTrAdaBoost(refined TrAdaBoost)方法。RTrAdaBoost是FAIT實例遷移階段用到的方法,屬于FAIT方法的一部分。為更好地說明本文對TrAdaBoost方法的改進(jìn)效果,下文涉及實例遷移的內(nèi)容將采用RTrAdaBoost進(jìn)行描述。

對于源項目來說,誤分有缺陷實例,小幅度降低其權(quán)重;誤分無缺陷實例,大幅度降低其權(quán)重。對于目標(biāo)項目來說,誤分無缺陷實例小幅度提升其權(quán)重;對于K近鄰中異類實例數(shù)量等于K的實例,誤分后不調(diào)整其權(quán)重;對于K近鄰中異類實例數(shù)量小于K的實例,誤分后大幅度提升其權(quán)重。所有實例的權(quán)重調(diào)整幅度是由其K近鄰中異類實例數(shù)量自適應(yīng)決定。對于源項目來說,誤分的實例與目標(biāo)項目沖突,仍然降低其權(quán)重,但是無缺陷實例屬于類不平衡中的多數(shù)類,對模型負(fù)面影響更大,因此需要大幅度降低其權(quán)重;而有缺陷實例提供的信息更有助于模型識別缺陷,在降低沖突的同時仍希望保留缺陷信息,因此小幅度降低其權(quán)重。對于目標(biāo)項目來說,K近鄰中異類實例數(shù)量等于K的有缺陷實例完全分布于無缺陷實例中,是最易被誤分的樣本,如果不斷提升其權(quán)重,會使得分類邊界侵入到無缺陷實例一側(cè),證明1給出了該命題的數(shù)學(xué)證明。如果降低其權(quán)重,會導(dǎo)致其越來越容易被誤分,而調(diào)整權(quán)重的目的是使得誤分實例被分類正確,因此對該類實例權(quán)重不做調(diào)整;對于K近鄰中異類實例數(shù)量小于K的有缺陷實例,由于其很難被分類,而且其提供的信息更有助于模型識別缺陷,所以大幅度提升其權(quán)重使得模型能夠更準(zhǔn)確地識別缺陷。對于無缺陷的實例被誤分,仍需提高其權(quán)重,只是相對于有缺陷的實例提升幅度較低,目的是使得模型著重學(xué)習(xí)有缺陷實例的信息。

其中:EFt表示第t次迭代的弱分類器ht上的評估因子。

算法3 實例遷移

輸入:特征遷移后的源項目數(shù)據(jù)Euclid Math OneDApS,有少量類標(biāo)的目標(biāo)項目實例Euclid Math OneDApLT和無類標(biāo)的目標(biāo)項目實例Euclid Math OneDApT。

輸出:Euclid Math OneDApT的預(yù)測結(jié)果。

分別獲取Euclid Math OneDApS、Euclid Math OneDApLT和Euclid Math OneDApT實例數(shù)量n、m′和m;

初始化有類標(biāo)實例的權(quán)重w1=(w11,w12,…,w1n+m′),其中:

算法3首先統(tǒng)計了源項目、有少量類標(biāo)的目標(biāo)項目和無類標(biāo)項目的實例數(shù)量,并基于實例數(shù)量計算了有類標(biāo)實例權(quán)重以及權(quán)重更新參數(shù)β,上述每一步操作的時間復(fù)雜度均為O(1);然后迭代更新優(yōu)化實例權(quán)重,在迭代中,首先計算第t次迭代的樣本權(quán)重,然后訓(xùn)練一個弱分類器,通過改進(jìn)的評估因子,根據(jù)式(12)調(diào)整實例權(quán)重,訓(xùn)練弱分類器的時間復(fù)雜度是O(N)。式(12)為權(quán)重調(diào)整的幅度添加了限制系數(shù)η,以此來實現(xiàn)不同實例權(quán)重調(diào)整幅度不同的更新策略,η的計算需要統(tǒng)計實例周圍異類樣本的數(shù)量,可通過KD樹來實現(xiàn),其時間復(fù)雜度為O(N log2 N)。迭代次數(shù)T3是常數(shù)可忽略,因此算法3的時間復(fù)雜度是O(N log2 N)。

3 實驗結(jié)果分析

3.1 數(shù)據(jù)集

本文實驗采用公開的軟件缺陷預(yù)測數(shù)據(jù)集AEEEM和NASA。AEEEM每個項目均含有61個特征,其中包括線性衰減熵和權(quán)值衰退兩類特征,并已被證明能夠使得缺陷預(yù)測擁有更高性能。NASA作為缺陷預(yù)測中的經(jīng)典數(shù)據(jù)集被廣泛使用,具有普遍性和可信性。NASA和AEEEM數(shù)據(jù)集僅擁有一個共同的特征,因此可用來對比驗證不同特征空間下缺陷預(yù)測模型的預(yù)測性能。此外,實驗選取的項目在樣本數(shù)和缺陷樣本比例方面均同時滿足較少、適中及較多的要求,以此探究源項目和目標(biāo)項目樣本數(shù)量缺陷樣本比例對跨項目缺陷預(yù)測性能的影響。表1、2分別給出了AEEEM和NASA數(shù)據(jù)集中項目的詳細(xì)信息。

3.2 評價指標(biāo)

軟件缺陷預(yù)測的工作是評估目標(biāo)項目中的實例是否存在缺陷,最終的分類結(jié)果共有四種情況:有缺陷實例被正確分類,記為TP;有缺陷實例被錯誤分類,記為FP;無缺陷實例被正確分類,記為TN;無缺陷實例被錯誤分類,記為FN。根據(jù)上述四種情況,可得出其他度量指標(biāo):

a)精確度是指真正有缺陷的實例在所有被預(yù)測為有缺陷的實例中的占比,其計算公式為

b)召回率是指被正確預(yù)測為有缺陷的實例在所有真正有缺陷的實例中的占比,其計算公式為

c)F1度量是對精確度和召回率兩個指標(biāo)的綜合衡量,被認(rèn)為是一個在類不平衡問題中能夠更好地對模型預(yù)測性能進(jìn)行評價的指標(biāo)。本文使用F1度量作為評價模型性能的評價指標(biāo),其計算公式為

3.3 實驗設(shè)計

為了驗證FAIT方法的有效性和預(yù)測性能、兩過程特征對齊的合理性、RTrAdaBoost方法的必要性和先進(jìn)性以及FAIT方法的參數(shù)設(shè)置,本文實驗主要分析驗證以下四個問題。

實驗1 FAIT方法與目前優(yōu)秀的跨項目軟件缺陷預(yù)測方法的預(yù)測性能對比。目前在跨項目軟件缺陷預(yù)測方向已存在多種優(yōu)秀方法,本實驗考慮與基于特征遷移和實例遷移的跨項目缺陷預(yù)測方法(FeCTrA)[25]、基于特征選擇和TrAdaBoost的跨項目缺陷預(yù)測方法(FSTr)[10]、基于兩階段特征增強(qiáng)的跨項目缺陷預(yù)測(TFIA)[26]以及未改進(jìn)TrAdaBoost的FSNTr四種基線方法進(jìn)行對比。其中,F(xiàn)eCTrA同樣從特征分布和實例分布兩個方面縮小源項目和目標(biāo)項目間的分布差異,并與TCA+、Burak過濾法、Peters過濾法等經(jīng)典跨項目缺陷預(yù)測方法進(jìn)行了對比且有非常明顯的性能提升;FSTr改進(jìn)了TrAdaBoost實例選擇的評估因子,本文則是在該評估因子基礎(chǔ)上對TrAdaBoost權(quán)重更新策略進(jìn)行的改進(jìn);FSNTr同時使用了基于訓(xùn)練數(shù)據(jù)清洗和基于遷移學(xué)習(xí)的CPDP方法,采用單一核主成分分析對缺陷數(shù)據(jù)進(jìn)行預(yù)處理,然后在處理后的數(shù)據(jù)中進(jìn)行特征選擇,最后利用未改進(jìn)的TrAdaBoost進(jìn)行缺陷預(yù)測,取得了較優(yōu)的預(yù)測性能。FAIT在特征對齊階段貪心地選擇最佳特征并在分類階段強(qiáng)化高度相關(guān)特征的重要性,創(chuàng)新性地將特征遷移與特征選擇相結(jié)合。

實驗2 FAIT方法的特征對齊包括兩個過程,不同的對齊過程可以對齊不同的分布,對最終的預(yù)測性能影響也可能不同。本實驗根據(jù)樣本分布狀態(tài)進(jìn)行逐步對齊的過程性探究實驗,包括只執(zhí)行邊緣分布對齊的單一過程和在前一過程基礎(chǔ)上進(jìn)行條件分布的兩過程實驗,驗證了FAIT方法中兩過程對齊的合理性和有效性。

實驗3 FAIT方法在經(jīng)過特征對齊后又進(jìn)行了實例遷移,當(dāng)源項目和目標(biāo)項目特征分布對齊后不進(jìn)行實例遷移可否獲得較好分類性能和穩(wěn)定性。若有必要進(jìn)行實例遷移,那么RTrAdaBoost與TrAdaBoost相比是否具有先進(jìn)性。因此,本實驗考慮在實例遷移階段對比三種情景下(不進(jìn)行遷移、應(yīng)用TrAdaBoost進(jìn)行遷移和應(yīng)用RTrAdaBoost進(jìn)行遷移)模型的預(yù)測性能以驗證FAIT方法的合理性。

實驗4 在實例遷移階段,探究源項目中有類標(biāo)實例占比對FAIT方法預(yù)測性能的影響。由于目標(biāo)項目缺少類標(biāo)信息,而人工標(biāo)注需要耗費大量人力和物力,所以跨項目軟件缺陷預(yù)測工作期望以少量的有類標(biāo)實例獲得較好的預(yù)測性能。根據(jù)實際開發(fā)情況,20%的標(biāo)注工作量是可接受的。因此,本文考慮目標(biāo)項目中20%、10%、5%的有類標(biāo)實例比例分析其對FAIT方法性能的影響。

3.4 參數(shù)設(shè)置

本文選取目標(biāo)項目中20%有類標(biāo)實例加入到源項目中作為訓(xùn)練集,在實驗過程中,每個項目互相作為源項目和目標(biāo)項目進(jìn)行一對一的跨項目軟件缺陷預(yù)測。除實驗4外,所有結(jié)果均采用10次跨項目5折交叉驗證結(jié)果的平均值,即利用目標(biāo)項目中20%有類標(biāo)的實例作為訓(xùn)練集訓(xùn)練模型,然后對目標(biāo)項目中其余80%無類標(biāo)實例進(jìn)行預(yù)測。

實驗4中,對于20%的目標(biāo)項目有類標(biāo)實例,采取10次跨項目5折交叉驗證;對于10%的目標(biāo)項目有類標(biāo)實例,采取10次跨項目10折交叉驗證;對于5%的目標(biāo)項目有類標(biāo)實例,采取10次跨項目20折交叉驗證。

3.5 實驗結(jié)果分析

3.5.1 實驗1的結(jié)果及分析

本實驗選擇AEEEM和NASA數(shù)據(jù)集,對FAIT方法的有效性和預(yù)測性能進(jìn)行驗證,利用決策樹作為弱分類器,目標(biāo)項目中有類標(biāo)實例選擇比例為20%,同時將FAIT方法與其他四種方法進(jìn)行對比。采用F1度量作為評價指標(biāo),實驗結(jié)果如表3、4所示。

在表3、4中,第一列表示源項目對目標(biāo)項目的跨項目預(yù)測,代表不同的場景,如PDE→EQ表示源項目是PDE,目標(biāo)項目是EQ;其他列表示在不同算法在不同源項目和目標(biāo)項目下預(yù)測的F1值。AVG表示每種方法在該數(shù)據(jù)集上的平均性能,每行的最大值進(jìn)行了加粗表示。

從表3、4的實驗結(jié)果可以看出,F(xiàn)AIT方法的預(yù)測性能明顯優(yōu)于其余四種對比方法,在大部分場景下的表現(xiàn)均較好,能夠取得更好的預(yù)測性能。在AEEEM數(shù)據(jù)集中,對于AVG,F(xiàn)AIT與FSTr、FSNTr、FeCTrA和TFIA相比分別提高了7.11%、10.76%、13.34%和11.53%,F(xiàn)AIT方法在20個場景下取得16次最優(yōu)值。例如PDE→ML,F(xiàn)AIT方法的F1度量為0.934,相比于FSTr(0.868)、FSNTr(0.835)、FeCTrA(0.803)和TFIA(0.754),F(xiàn)1度量分別提高了7.60%、11.86%、16.31%和15.27%。FAIT未取得最優(yōu)值的場景是EQ作為目標(biāo)項目,而該類場景下TFIA均取得最優(yōu)值。結(jié)合FSTr、FSNTr、FeCTrA三種方法在EQ項目上的表現(xiàn)來看,可能是因為EQ的數(shù)據(jù)分布非常適合TFIA方法。此外,還可以發(fā)現(xiàn)當(dāng)目標(biāo)項目為EQ時,五種方法在EQ上的表現(xiàn)均不如其他項目,可能原因是EQ樣本數(shù)較少(324個)且缺陷樣本比例較高(39.81%)。在NASA數(shù)據(jù)集上,F(xiàn)AIT方法全部取得了最優(yōu)預(yù)測性能,即使是在與EQ類似的CM1數(shù)據(jù)集上仍有較大的性能提升。例如KC1→CM1,F(xiàn)AIT方法的F1度量為0.946,相比于FSTr(0.815)、FSNTr(0.805)、FeCTrA(0.807)和TFIA(0.851),F(xiàn)1度量分別提高了16.07%、17.52%、17.22%和10.04%。對于平均性能,F(xiàn)AIT與FSTr、FSNTr、FeCTrA和TFIA相比分別提高了12.89%、14.75%、19.43%和13.09%。

在基線方法中,F(xiàn)SNTr和FeCTrA均不加改進(jìn)地使用了TrAdaBoost方法。在探究FAIT方法在兩過程特征對齊后同樣不加改進(jìn)地使用TrAdaBoost方法的實驗效果時發(fā)現(xiàn),F(xiàn)AIT缺陷預(yù)測性能同樣優(yōu)于FSNTr與FeCTrA。在AEEEM數(shù)據(jù)集中,F(xiàn)AIT取得的F1度量均值為0.889,與FSNTr和FeCTrA相比分別提升了10.16%和13.83%;在NASA數(shù)據(jù)集中,F(xiàn)AIT取得的F1度量均值為0.930,與FSNTr和FeCTrA相比分別提升了14.39%和19.07%。因此,不僅可以認(rèn)為FAIT方法優(yōu)于FSNTr和FeCTrA,同時可以證明FAIT方法的兩過程特征對齊優(yōu)于FSNTr方法的兩過程特征選擇和FeCTrA方法基于聚類的特征遷移。

根據(jù)第2章中的論述可知,F(xiàn)AIT方法最壞的時間復(fù)雜度為O(N3)?;€方法中,F(xiàn)STr、FSNTr需要進(jìn)行矩陣分解,F(xiàn)eCTrA在特征遷移階段采用的是基于特征相關(guān)度的聚類算法,時間復(fù)雜度均為O(N3),而TFIA方法最壞的時間復(fù)雜度可達(dá)到O(N5),還有可能存在無解狀態(tài)。因此,F(xiàn)AIT方法在時間復(fù)雜度方面并不高于其他方法。

本實驗可以證明,本文FAIT方法擁有更好的缺陷預(yù)測性能。

3.5.2 實驗2的結(jié)果及分析

本實驗通過只執(zhí)行邊緣分布對齊的單一過程對齊和執(zhí)行在前一過程基礎(chǔ)上進(jìn)行條件分布的兩過程對齊,探究FAIT方法中兩過程對齊的合理性以及第二次對齊的必要性。為更直觀地展示邊緣分布對齊和條件分布對齊對樣本分布的影響結(jié)果,以AEEEM數(shù)據(jù)集中PDE→ML和NASA數(shù)據(jù)集中PC3→CM1為例給出可視化圖和MMD距離,如圖3、4所示。

從可視化結(jié)果定性來看,PDE→ML的源項目呈聚集分布,目標(biāo)項目呈條形分布。經(jīng)過邊緣分布對齊后,二者均趨于散射分布,此時源項目和目標(biāo)項目分布較為接近。繼續(xù)經(jīng)過條件分布對齊后,二者均趨于V形分布,可明顯看出二者分布更加的相似。PC3→CM1的源項目和目標(biāo)項目呈現(xiàn)不同的聚集分布狀態(tài),但二者交集并不多。經(jīng)過邊緣分布對齊后,二者均趨于紡錘形分布,此時源項目和目標(biāo)項目分布較為接近。繼續(xù)經(jīng)過條件分布對齊后,二者均趨于掃帚形分布,同樣可明顯看出二者分布更加地相似。

從MMD結(jié)果定量來看,PDE和ML原分布之間的MMD距離已經(jīng)達(dá)到了7.035 7,經(jīng)過邊緣分布對齊后分布差異減小了95.50%,繼續(xù)經(jīng)過條件分布對齊后,分布差異又縮小了一個量級。PC3和CM1原分布之間的MMD距離是2.693 4,經(jīng)過邊緣分布對齊分布差異減為原來的一半,而繼續(xù)經(jīng)過條件分布對齊后,分布差異可以縮小2個量級。

為探究特征對齊過程對FAIT方法預(yù)測性能的影響,圖5、6給出了單一過程對齊和兩過程對齊F1度量的實驗結(jié)果對比。

在圖5、6中,橫坐標(biāo)代表不同的源項目對目標(biāo)項目的預(yù)測,即不同的場景,縱坐標(biāo)表示單一過程對齊和兩過程對齊取得的F1度量值。從圖5、6的實驗結(jié)果中可以看出,兩過程對齊的預(yù)測性能明顯優(yōu)于單一過程對齊,在絕大部分場景下的表現(xiàn)均較好,能夠取得更好的預(yù)測性能,這與可視化的結(jié)果分析相符。在AEEEM數(shù)據(jù)集中,對于AVG,兩過程對齊的F1度量(0.893)比單一過程對齊的F1度量(0.889)提高了0.45%。兩過程對齊在20個場景下取得19次最大值。例如ML→EQ,兩過程對齊的F1度量為0.746,相比于單一過程(0.761),F(xiàn)1度量提高了2.01%。在NASA數(shù)據(jù)集中,對于平均性能AVG,兩過程對齊的F1度量(0.932)比單一過程對齊的F1度量(0.928)提高了0.43%。兩過程對齊在20個場景下取得18次最大值。例如PC3→PC1,兩過程對齊的F1度量為0.940,相比于單一過程(0.926),F(xiàn)1度量提高了1.51%。

兩過程特征對齊的結(jié)果是優(yōu)于單一過程的,可認(rèn)為FAIT方法中設(shè)置兩過程對齊具有合理性和有效性。

3.5.3 實驗3的結(jié)果及分析

FAIT方法的過程包括特征對齊和實例遷移兩階段,特征對齊已經(jīng)將源項目和目標(biāo)項目的分布距離縮短。為了探究特征對齊后再進(jìn)行實例遷移的必要性,以及RTrAdaBoost相對于TrAdaBoost的先進(jìn)性,本文考慮AdaBoost(Ada)、TrAdaBoost(TrAda)和RTrAdaBoost(RTrAda)進(jìn)行三組對比實驗。使用F1度量作為評價指標(biāo),實驗結(jié)果如圖7、8所示。

在圖7、8中,橫坐標(biāo)分別代表三種不同實例遷移方法,縱坐標(biāo)代表其對應(yīng)的F1度量值。由圖7、8可以發(fā)現(xiàn),經(jīng)過實例遷移后,缺陷預(yù)測性能得到提升。例如,在AEEEM數(shù)據(jù)集中,經(jīng)過實例遷移后AVG(0.889)比不進(jìn)行實例遷移(0.831)提高了5.8%。此外,PDE做源項目時,實例遷移前后的缺陷預(yù)測性能大幅度提升,可能的原因是PDE中存在大量無用實例,因此為避免在跨項目軟件缺陷預(yù)測過程中出現(xiàn)該類情況,應(yīng)該進(jìn)行實例遷移。在NASA數(shù)據(jù)集中,經(jīng)過實例遷移后AVG(0.930)比不進(jìn)行實例遷移(0.921)提高了0.98%。因此,在進(jìn)行特征對齊后進(jìn)行實例遷移是有必要的。

由圖7、8還可以發(fā)現(xiàn),在對TrAdaBoost改進(jìn)后,缺陷預(yù)測性能進(jìn)一步得到提升。在AEEEM數(shù)據(jù)集中RTrAdaBoost與TrAdaBoost和AdaBoost相比AVG分別提高了0.50%和7.52%,并在20個場景下取得18次最大值。例如ML→EQ,RTrAdaBoost方法的F1度量為0.761,相比于TrAdaBoost(0.744)和AdaBoost(0.754),F(xiàn)1度量分別提高了2.28%和0.93%。在TrAdaBoost的F1度量值下降時,仍可提高該場景的缺陷預(yù)測性能。在NASA數(shù)據(jù)集中RTrAdaBoost與TrAdaBoost和AdaBoost相比AVG分別提高了0.26%和1.26%,并在20個場景下取得16次最大值。例如KC1→CM1,RTrAdaBoost方法的F1度量為0.946,相比于TrAdaBoost(0.932)和AdaBoost(0.932),F(xiàn)1度量分別提高了1.50%和1.50%,在TrAdaBoost無法提升F1時仍可提升缺陷預(yù)測性能。此外,RTrAdaBoost比TrAdaBoost缺陷預(yù)測性能更加穩(wěn)定,RTrAdaBoost在AEEEM和NASA數(shù)據(jù)集上F1度量的方差分別為0.005 166和0.000 402,而TrAdaBoost在兩個數(shù)據(jù)集上F1度量的方差分別為0.005 393和0.000 419。

RTrAdaBoost比TrAdaBoost方法穩(wěn)定性更高,缺陷預(yù)測性能更優(yōu),可以認(rèn)為RTrAdaBoost具有先進(jìn)性。

3.5.4 實驗4的結(jié)果及分析

本實驗考慮5%、10%和20%三種有類標(biāo)實例比例加入到源項目中,以此探究目標(biāo)項目中不同比例的有類標(biāo)實例對FAIT方法預(yù)測性能的影響。因為人工標(biāo)注實例費時費力,根據(jù)行業(yè)實際情況,本文考慮將該比例控制在20%以下,在減少開銷的同時提升模型的缺陷預(yù)測性能。對于5%、10%以及20%的比例,可通過跨項目的20折、10折以及5折交叉驗證完成。目標(biāo)項目中有類標(biāo)實例比例對FAIT方法缺陷預(yù)測性能的影響結(jié)果如圖9、10所示。

在圖9、10中,橫坐標(biāo)代表跨項目缺陷預(yù)測中的目標(biāo)項目,縱坐標(biāo)代表利用其他項目對該目標(biāo)項目進(jìn)行預(yù)測取得的平均F1度量值。從圖9可以看出,當(dāng)目標(biāo)項目有類標(biāo)實例比例從5%增加至10%時,F(xiàn)1處于較穩(wěn)定的狀態(tài)。但比例增加到20%時,與10%的比例相比,在EQ、JDT、LC、ML和PED中F1分別提高了1.06%、1.80%、1.62%、1.33%和1.36%,F(xiàn)1有非常明顯的提高。從圖10可以看出,F(xiàn)AIT的缺陷預(yù)測性能隨著有類標(biāo)實例比例的增加而不斷提升。當(dāng)比例從5%增加到20%時,在CM1、JM1、KC1、PC1和PC3中F1分別提高了0.91%、1.43%、0.60%、0.97%和0.89%。對于JM1項目,雖然FAIT方法在該項目上的預(yù)測性能最低,但是當(dāng)有類標(biāo)實例比例增加時,該項目上的F1增長幅度卻最大(分別為0.62%和0.81%)。主要是因為該項目樣本數(shù)(7 720)過多,源項目中的樣本無法完全適配該項目;但JM1缺陷樣本數(shù)(1 612)充足,隨著比例的增加,目標(biāo)項目缺陷信息也更多,在該項目上的缺陷預(yù)測性能也隨之提升。因此,在FAIT方法中,有類標(biāo)實例的比例選定為20%比較合理。

4 結(jié)束語

本文提出了一種結(jié)合特征對齊與實例遷移的跨項目缺陷預(yù)測方法,在特征對齊中采用兩過程特征對齊縮小源項目和目標(biāo)項目間的邊緣分布距離和條件分布距離,同時在實例遷移中對TrAdaBoost的誤分類權(quán)重調(diào)整策略進(jìn)行改進(jìn),以保證從源項目中選取較優(yōu)的訓(xùn)練實例,繼而實現(xiàn)實例遷移,構(gòu)建跨項目缺陷預(yù)測模型。實驗結(jié)果表明,該方法在跨項目軟件缺陷預(yù)測中表現(xiàn)優(yōu)異,缺陷預(yù)測性能明顯優(yōu)于現(xiàn)有優(yōu)秀方法,在一定程度上提高了跨項目軟件缺陷預(yù)測性能。

在接下來的工作中,將進(jìn)一步探討:a)分類器的集成策略對FAIT方法預(yù)測性能的影響,如對弱分類器分段集成;b)對數(shù)據(jù)進(jìn)行預(yù)處理,進(jìn)一步提高FAIT方法的有效性和魯棒性。本文方法對于實例數(shù)量較多的目標(biāo)項目(如JM1項目數(shù)為7 720)的預(yù)測性能可進(jìn)一步提高,因此需要對數(shù)據(jù)進(jìn)行預(yù)處理。下一階段中,可以對實例過多的項目進(jìn)行欠采樣,采樣的準(zhǔn)則應(yīng)該是不損失或少損失項目的特征分布信息;也可以對項目實例進(jìn)行劃分,對實例較多的項目進(jìn)行多次跨項目缺陷預(yù)測。

參考文獻(xiàn):

[1]Aftab S,Ahmad M,Khan M,et al.Machine learning empowered software defect prediction system[J].Intelligent Automation and Soft Computing,2021,31(2):1287-1300.

[2]李冉,周麗娟,王華.面向類不平衡數(shù)據(jù)集的軟件缺陷預(yù)測模型[J].計算機(jī)應(yīng)用研究,2018,35(9):2806-2810.(Li Ran,Zhou Lijuan,Wang Hua.Software defect prediction model based on class imbalanced datasets[J].Application Research of Computers,2018,35(9):2806-2810.)

[3]楊豐玉,黃雅璇,周世健,等.結(jié)合多元度量指標(biāo)軟件缺陷預(yù)測研究進(jìn)展[J].計算機(jī)工程與應(yīng)用,2021,57(5):10-24.(Yang Fengyu,Huang Yaxuan,Zhou Shijian,et al.Survey of software defect prediction combined with multi-metrics[J].Computer Engineering and Applications,2021,57(5):10-24.)

[4]Dai Wenyuan,Yang Qiang,Xue Guirong,et al.Boosting for transfer learning[C]//Proc of the 24th International Conference on Machine Learning.New York:ACM Press,2007:193-200.

[5]Briand L C,Melo W L,Wust J.Assessing the applicability of fault-proneness models across object-oriented software projects [J].IEEE Trans on Software Engineering,2002,28(7):706-720.

[6]Pal S,Sillitti A.Cross-project defect prediction:a literature review [J].IEEE Access,2022,10:118697-118717.

[7]Zou Quanyi,Lu Lu,Yang Zhangyu,et al.Joint feature representation learning and progressive distribution matching for cross-project defect prediction[J].Information and Software Technology,2021,137(9):106588.

[8]Saifudin A,Yulianti Y.Dimensional reduction on cross project defect prediction [J].Journal of Physics:Conference Series,2020,1477:32011.

[9]Goel L,Sharma M,Khatri S K,et al.Defect prediction of cross projects using PCA and ensemble learning approach[C]//Proc of the 3rd International Conference on Micro-Electronics and Telecommunication Engineering.Singapore:Springer,2020:307-315.

[10]李莉,石可欣,任振康.基于特征選擇和TrAdaBoost的跨項目缺陷預(yù)測方法[J].計算機(jī)應(yīng)用,2022,42(5):1554-1562.(Li Li,Shi Kexin,Ren Zhenkang.Cross-project defect prediction method based on feature selection and TrAdaBoost [J].Journal of Computer Applications,2022,42(5):1554-1562.)

[11]黃琳,荊曉遠(yuǎn),董西偉.基于多核集成學(xué)習(xí)的跨項目軟件缺陷預(yù)測 [J].計算機(jī)技術(shù)與發(fā)展,2019,29(6):27-31.(Huang Lin,Jing Xiaoyuan,Dong Xiwei.Cross-project software defect prediction based on multiple kernel ensemble learning[J].Computer Technology and Development,2019,29(6):27-31.)

[12]He Zhimin,Shu Fengdi,Yang Ye,et al.An investigation on the feasibility of cross-project defect prediction[J].Automated Software Engineering,2012,19(2):167-199.

[13]Lei Tianwei,Xue Jinfeng,Han Weijie.Cross-project software defect prediction based on feature selection and transfer learning[C]//Proc of the 3rd International Conference on Machine Learning for Cyber Security.Cham:Springer,2020:363-371.

[14]Shakhovska N,Yakovyna V.Feature selection and software defect prediction by different ensemble classifiers [C]//Proc of the 32nd International Conference on Database and Expert Systems Applications.Cham:Springer,2021:307-313.

[15]He Peng,Li Bing,Liu Xiao,et al.An empirical study on software defect prediction with a simplified metric set[J].Information and Software Technology,2015,59(3):170-190.

[16]Yuan Zhidan,Chen Xiang,Cui Zhanqi,et al.ALTRA:cross-project software defect prediction via active learning and TrAdaBoost[J].IEEE Access,2020,8:30037-30049.

[17]Peters F,Menzies T,Marcus A.Better cross company defect prediction[C]//Proc of the 10th Working Conference on Mining Software Repositories.Piscataway,NJ:IEEE Press,2013:409-418.

[18]Herbold S,Trautsch A,Grabowski J.Global vs.local models for cross-project defect prediction:a replication study [J].Empirical Software Engineering,2017,22(8):1866-1902.

[19]黃燕,徐賢,虞慧群,等.一種特征轉(zhuǎn)移和域自適應(yīng)的異質(zhì)缺陷預(yù)測方法 [J].小型微型計算機(jī)系統(tǒng),2022,43(1):186-192.(Huang Yan,Xu Xian,Yu Huiqun,et al.Feature transfer and domain adaptation approach for heterogeneous defect prediction[J].Journal of Chinese Computer Systems,2022,43(1):186-192.)

[20]Nam J,Pan S J,Kim S.Transfer defect learning [C]//Proc of the 35th International Conference on Software Engineering.Piscataway,NJ:IEEE Press,2013:382-391.

[21]Li Jingjing,Jing Mengmeng,Lu Ke,et al.Locality preserving joint transfer for domain adaptation[J].IEEE Trans on Image Proces-sing,2019,28(12):6103-6115.

[22]Pan Yingwei,Yao Ting,Li Yehao,et al.Transferrable prototypical networks for unsupervised domain adaptation[C]//Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2019:2234-2242.

[23]Du Xiaozhi,Yue Hehe,Dong Honglei.Software defect prediction method based on hybrid sampling[C]//Proc of International Confe-rence on Frontiers of Electronics,Information and Computation Technologies.New York:ACM Press,2022:article.No.93.

[24]何吉元,孟昭鵬,陳翔,等.一種半監(jiān)督集成跨項目軟件缺陷預(yù)測方法[J].軟件學(xué)報,2017,28(6):1455-1473.(He Jiyuan,Meng Zhaopeng,Chen Xiang,et al.Semi-supervised ensemble learning approach for cross-project defect prediction[J].Journal of Software,2017,28(6):1455-1473.)

[25]倪超,陳翔,劉望舒,等.基于特征遷移和實例遷移的跨項目缺陷預(yù)測方法[J].軟件學(xué)報,2019,30(5):1308-1329.(Ni Chao,Chen Xiang,Liu Wangshu,et al.Cross-project defect prediction method based on feature transfer and instance transfer[J].Journal of Software,2019,30(5):1308-1329.)

[26]Xing Ying,Lin Wanting,Lin Xueyan,et al.Cross-project defect prediction based on two-phase feature importance amplification[J].Computational Intelligence and Neuroscience,2022,2022:2320447.

收稿日期:2023-02-10;修回日期:2023-04-19基金項目:黑龍江省教育科學(xué)規(guī)劃課題(GJB1421251)

作者簡介:李莉(1977-),女(通信作者),河南孟州人,教授,碩導(dǎo),博士,CCF會員,主要研究方向為先進(jìn)軟件工程、區(qū)塊鏈、群智能優(yōu)化、大型分布式計算等(lli@nefu.edu.cn);趙鑫(1998-),男,黑龍江海倫人,碩士研究生,主要研究方向為軟件缺陷預(yù)測等;石可欣(1997-),女,山東聊城人,碩士,主要研究方向為軟件缺陷預(yù)測;蘇仁嘉(1998-),男,黑龍江大慶人,碩士研究生,主要研究方向為軟件缺陷預(yù)測等;任振康(1996-),男,山東青島人,碩士,主要研究方向為軟件缺陷預(yù)測等.

广南县| 青浦区| 利津县| 灯塔市| 正宁县| 万宁市| 乌拉特后旗| 子长县| 文成县| 靖西县| 萨嘎县| 玛沁县| 铁力市| 寿光市| 惠东县| 永城市| 濉溪县| 巴林右旗| 九江市| 凌海市| 洛川县| 垦利县| 房山区| 黄骅市| 大姚县| 五河县| 锦州市| 永州市| 正镶白旗| 雷山县| 池州市| 昭觉县| 牙克石市| 随州市| 大荔县| 镶黄旗| 鹰潭市| 嵊州市| 嘉义县| 通渭县| 盐亭县|