李莉 趙鑫 石可欣 蘇仁嘉 任振康
摘 要:為解決跨項(xiàng)目缺陷預(yù)測(cè)中源項(xiàng)目和目標(biāo)項(xiàng)目分布差異較大的問題,提出了一種基于特征對(duì)齊和實(shí)例遷移的兩階段缺陷預(yù)測(cè)方法(FAIT)。首先,在特征對(duì)齊階段,根據(jù)邊緣概率分布進(jìn)行特征的邊緣分布對(duì)齊;然后,基于源項(xiàng)目和目標(biāo)項(xiàng)目構(gòu)建條件分布映射矩陣完成條件分布對(duì)齊;最后,在實(shí)例遷移階段,通過改進(jìn)了權(quán)重調(diào)整策略的TrAdaBoost方法構(gòu)建跨項(xiàng)目缺陷預(yù)測(cè)模型。以F1作為評(píng)價(jià)指標(biāo),當(dāng)目標(biāo)項(xiàng)目有標(biāo)簽實(shí)例比例為20%時(shí),F(xiàn)AIT性能最佳,且兩過程特征對(duì)齊優(yōu)于單一過程特征對(duì)齊。此外,F(xiàn)AIT的預(yù)測(cè)性能在AEEEM和NASA數(shù)據(jù)集上分別提高了10.69%、15.04%。FAIT在一定程度上解決了源項(xiàng)目與目標(biāo)項(xiàng)目的分布差異,能夠取得較好的缺陷預(yù)測(cè)性能。
關(guān)鍵詞:跨項(xiàng)目缺陷預(yù)測(cè);特征對(duì)齊;最大均值差異;實(shí)例遷移;TrAdaBoost
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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ù)雜度的不斷增長(zhǎng),軟件開發(fā)難度不斷變大,由于開發(fā)過程不規(guī)范、需求理解錯(cuò)誤等問題,導(dǎo)致軟件中存在大量缺陷;而軟件缺陷若無(wú)法盡早修正,將會(huì)帶來巨大的人力物力損失[1,2]。軟件缺陷預(yù)測(cè)技術(shù)可以幫助開發(fā)人員和測(cè)試人員盡可能早地識(shí)別出項(xiàng)目中存在的缺陷。目前,大部分缺陷預(yù)測(cè)工作集中于項(xiàng)目?jī)?nèi),即對(duì)當(dāng)前項(xiàng)目的歷史信息進(jìn)行挖掘分析,構(gòu)建模型,然后對(duì)新版本進(jìn)行預(yù)測(cè)[3]。但是對(duì)于新項(xiàng)目,沒有足夠的數(shù)據(jù)積累,無(wú)法保證缺陷預(yù)測(cè)性能。因此,跨項(xiàng)目軟件缺陷預(yù)測(cè)(CPDP)應(yīng)需而生,即基于其他項(xiàng)目訓(xùn)練模型對(duì)新項(xiàng)目進(jìn)行預(yù)測(cè)。然而,源項(xiàng)目與目標(biāo)項(xiàng)目之間通常因?yàn)闃I(yè)務(wù)和編程語(yǔ)言等因素不同導(dǎo)致數(shù)據(jù)分布存在較大的差異,該差異主要包括特征分布差異和實(shí)例分布差異。特征分布差異使得源項(xiàng)目和目標(biāo)項(xiàng)目分屬不同的知識(shí)空間,源項(xiàng)目的知識(shí)表現(xiàn)形式無(wú)法應(yīng)用于目標(biāo)項(xiàng)目;實(shí)例分布差異使得源項(xiàng)目大部分實(shí)例與目標(biāo)項(xiàng)目實(shí)例關(guān)聯(lián)程度較低,模型在源項(xiàng)目中學(xué)習(xí)到的實(shí)例信息在目標(biāo)項(xiàng)目中的泛化能力不足。因此,跨項(xiàng)目軟件缺陷預(yù)測(cè)首先需要減小源項(xiàng)目和目標(biāo)項(xiàng)目之間的特征分布差異和實(shí)例分布差異。雖然現(xiàn)有研究已提出多種數(shù)據(jù)過濾策略以解決該問題,但是此類方法無(wú)論是在減小特征分布差異還是實(shí)例分布差異方面,都只注重源項(xiàng)目的數(shù)據(jù)選擇而忽視了目標(biāo)項(xiàng)目潛在的先驗(yàn)知識(shí),導(dǎo)致跨項(xiàng)目缺陷預(yù)測(cè)性能提升受限。
針對(duì)上述問題,本文提出了一種結(jié)合特征對(duì)齊與實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測(cè)方法(cross-project defect prediction based on feature alignment and instance transfer,F(xiàn)AIT)。FAIT方法包括兩個(gè)階段:在特征的分布對(duì)齊階段,通過邊緣分布對(duì)齊和條件分布對(duì)齊對(duì)特征進(jìn)行遷移,使源項(xiàng)目和目標(biāo)項(xiàng)目的特征在再生希爾伯特空間具有一致的分布;在實(shí)例遷移階段,基于TrAdaBoost[4]方法并對(duì)其進(jìn)行改進(jìn),給源項(xiàng)目中與目標(biāo)項(xiàng)目具有相似分布的實(shí)例賦予更高權(quán)重,構(gòu)建跨項(xiàng)目缺陷預(yù)測(cè)模型。
1 相關(guān)工作
跨項(xiàng)目軟件缺陷預(yù)測(cè)技術(shù)通過有類標(biāo)的其他項(xiàng)目(源項(xiàng)目)數(shù)據(jù)建立模型來盡可能地識(shí)別出被測(cè)項(xiàng)目中有缺陷的模塊,是一個(gè)二分類問題。由于項(xiàng)目間程序語(yǔ)言等各要素不同,源項(xiàng)目和目標(biāo)項(xiàng)目的特征分布及實(shí)例分布均可能存在較大差異。為探究跨項(xiàng)目缺陷預(yù)測(cè)的可行性,文獻(xiàn)[5]基于回歸方法對(duì)Jwrite項(xiàng)目進(jìn)行跨項(xiàng)目預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明利用源項(xiàng)目對(duì)目標(biāo)項(xiàng)目預(yù)測(cè)的性能優(yōu)于隨機(jī)預(yù)測(cè),但無(wú)法達(dá)到同一項(xiàng)目之間的預(yù)測(cè)性能。近年來,研究人員已提出多種跨項(xiàng)目缺陷預(yù)測(cè)方法,其大致可以分為基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法和基于遷移學(xué)習(xí)的CPDP方法兩類。
1.1 基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法
基于訓(xùn)練數(shù)據(jù)清洗的CPDP方法旨在通過對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行特征變換、特征選擇[6]以及缺陷實(shí)例過濾[7]等操作進(jìn)行數(shù)據(jù)預(yù)處理,為目標(biāo)項(xiàng)目數(shù)據(jù)找到合適的源項(xiàng)目數(shù)據(jù)。
特征變換是根據(jù)特征之間的關(guān)系將原始特征集通過某種變換映射到一個(gè)新的特征空間內(nèi),在降低特征維度[8]的同時(shí)避免模型在源項(xiàng)目上過擬合。文獻(xiàn)[9]認(rèn)為不同源的數(shù)據(jù)會(huì)導(dǎo)致訓(xùn)練集結(jié)構(gòu)復(fù)雜,不利于跨項(xiàng)目缺陷預(yù)測(cè)模型的訓(xùn)練,提出利用主成分分析(principal component analysis,PCA)對(duì)數(shù)據(jù)訓(xùn)練集進(jìn)行特征變換以克服該問題。文獻(xiàn)[10]基于PCA方法提出了核主成分分析(kernel principal component analysis,KPCA),通過對(duì)不同特性的核函數(shù)充分提取原特征的非線性關(guān)系,取得了較優(yōu)的缺陷預(yù)測(cè)效果。文獻(xiàn)[11]則進(jìn)一步將具有不同表達(dá)能力的核函數(shù)進(jìn)行組合,使變換后的數(shù)據(jù)保留更多主要成分,然后與集成學(xué)習(xí)結(jié)合提出了基于多核集成學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測(cè)(cross-project software defect prediction based on multiple kernel ensemble learning,CMKEL)方法,但該方法需要對(duì)所有特征進(jìn)行多次核映射,當(dāng)特征數(shù)量較多時(shí)計(jì)算代價(jià)較大。文獻(xiàn)[12]在特征提取過程中實(shí)現(xiàn)了特征降維,不會(huì)出現(xiàn)文獻(xiàn)[10]的維度災(zāi)難問題,它從統(tǒng)計(jì)學(xué)的角度分析了每個(gè)特征的16種描述性統(tǒng)計(jì),將原始特征轉(zhuǎn)換成16維的新特征。其中,采用方差、異種比率等描述特征取值的離散性;采用峰度和偏態(tài)等描述特征的形狀;采用均值、中位數(shù)、眾數(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)而對(duì)特征進(jìn)行過濾。雖然MIC是一種優(yōu)秀的數(shù)據(jù)關(guān)聯(lián)性衡量指標(biāo),但單一指標(biāo)無(wú)法保證篩選結(jié)果的準(zhǔn)確性。文獻(xiàn)[14]考慮四種關(guān)聯(lián)性衡量指標(biāo),基于Boruta算法、交替條件期望(alternating conditional expectation,ACE)、回歸子集和簡(jiǎn)單關(guān)聯(lián)分析四種指標(biāo)進(jìn)行特征非線性分析。由于使用多種衡量指標(biāo)需要考慮特征選擇結(jié)果的交集,所以在特征選擇過程中會(huì)拋棄更多特征,導(dǎo)致更多信息丟失。文獻(xiàn)[15]提出在多指標(biāo)中選取top-k統(tǒng)計(jì)方法驗(yàn)證預(yù)分類的可接受性能,然后通過刪除冗余指標(biāo)來最小化top-k指標(biāo)子集,并使用單因素方差分析檢驗(yàn)測(cè)試了此類最小指標(biāo)子集的穩(wěn)定性。此方法是一種權(quán)衡方法,可在保證篩選結(jié)果準(zhǔn)確性的同時(shí)避免信息丟失過多。
無(wú)論是特征變換還是特征選擇,均是在項(xiàng)目?jī)?nèi)部對(duì)特征進(jìn)行處理,源項(xiàng)目與目標(biāo)項(xiàng)目特征處理并無(wú)關(guān)聯(lián),這就導(dǎo)致了在源項(xiàng)目?jī)?nèi)得到的特征集與目標(biāo)項(xiàng)目?jī)?nèi)得到的特征集之間仍然存在著分布差異。本文考慮到該問題,在特征處理過程中關(guān)聯(lián)源項(xiàng)目特征與目標(biāo)項(xiàng)目特征,利用特征遷移技術(shù)對(duì)源項(xiàng)目和目標(biāo)項(xiàng)目的特征進(jìn)行對(duì)齊。
實(shí)例過濾是通過算法對(duì)源項(xiàng)目實(shí)例進(jìn)行篩選,篩選出與目標(biāo)項(xiàng)目分布相似最高的實(shí)例加入到訓(xùn)練集中。從目標(biāo)項(xiàng)目角度出發(fā),文獻(xiàn)[16]使用Burak過濾法,對(duì)于每個(gè)目標(biāo)項(xiàng)目的實(shí)例獲取10個(gè)與其歐氏距離最小的源項(xiàng)目實(shí)例加入到實(shí)例集中。從源項(xiàng)目角度出發(fā),文獻(xiàn)[17]提出Peters過濾法,首先基于源項(xiàng)目選擇距離最近的目標(biāo)項(xiàng)目實(shí)例,然后再基于該目標(biāo)項(xiàng)目實(shí)例選擇與其距離最近的源項(xiàng)目實(shí)例,該雙向選擇策略使得從源項(xiàng)目中選擇的實(shí)例不存在冗余。從全局和局部角度出發(fā),文獻(xiàn)[18]分析了全局實(shí)例選擇和局部實(shí)例選擇對(duì)跨項(xiàng)目缺陷預(yù)測(cè)模型性能的影響,在局部實(shí)例選擇中使用不同的聚類方法對(duì)源項(xiàng)目實(shí)例進(jìn)行聚類,實(shí)驗(yàn)表明聚類后的源項(xiàng)目可使模型具有更好的預(yù)測(cè)性能。
上述研究均對(duì)源項(xiàng)目實(shí)例進(jìn)行篩選,這意味著需要丟棄源項(xiàng)目中的部分實(shí)例,同樣會(huì)導(dǎo)致部分信息丟失。本文考慮到該問題,在實(shí)例處理階段,利用TrAdaBoost的加權(quán)方式為源項(xiàng)目實(shí)例設(shè)置權(quán)重并進(jìn)行動(dòng)態(tài)調(diào)整,在不損失或少損失源項(xiàng)目信息的前提下,提高與目標(biāo)項(xiàng)目分布相似較高的實(shí)例的權(quán)重。
1.2 基于遷移學(xué)習(xí)的CPDP方法
基于遷移學(xué)習(xí)的CPDP方法旨在設(shè)計(jì)具有強(qiáng)大學(xué)習(xí)能力和泛化能力的算法構(gòu)建分類器。根據(jù)遷移對(duì)象的不同可以分為特征遷移和實(shí)例遷移兩類遷移方法。
特征遷移通過算法對(duì)特征進(jìn)行映射,使得源項(xiàng)目和目標(biāo)項(xiàng)目在同一空間內(nèi)具有相似的特征分布??珥?xiàng)目缺陷預(yù)測(cè)中常用的是遷移成分分析(transfer component analysis,TCA),文獻(xiàn)[19]利用TCA解決源項(xiàng)目和目標(biāo)項(xiàng)目之間的分布差異問題,該方法通過訓(xùn)練得到一個(gè)特征變換矩陣,利用該矩陣同時(shí)對(duì)源項(xiàng)目特征和目標(biāo)項(xiàng)目特征進(jìn)行變換,為本文的邊緣分布對(duì)齊提供了參考。文獻(xiàn)[20]針對(duì)軟件缺陷預(yù)測(cè)對(duì)TCA進(jìn)行了擴(kuò)展提出TCA+方法,通過添加定制的歸一化規(guī)則來最小化源項(xiàng)目和目標(biāo)項(xiàng)目之間的特征分布差異。文獻(xiàn)[21]在TCA中引入流形學(xué)習(xí),提出局部保留聯(lián)合分布適配方法。缺陷預(yù)測(cè)可以借鑒聯(lián)合分布適配思想,在邊緣分布對(duì)齊后繼續(xù)進(jìn)行條件分布對(duì)齊。條件分布對(duì)齊的前提是目標(biāo)項(xiàng)目具有類標(biāo),然而目標(biāo)項(xiàng)目不存在類標(biāo)。文獻(xiàn)[22]在特征遷移過程中通過為目標(biāo)項(xiàng)目生成偽類標(biāo)的方式解決該矛盾,對(duì)目標(biāo)項(xiàng)目中的實(shí)例與源項(xiàng)目中的實(shí)例按照距離進(jìn)行匹配,將源項(xiàng)目實(shí)例的類標(biāo)賦予目標(biāo)項(xiàng)目實(shí)例。
實(shí)例遷移是根據(jù)目標(biāo)項(xiàng)目中部分有類標(biāo)實(shí)例,調(diào)整源項(xiàng)目中實(shí)例的權(quán)重,使得源項(xiàng)目與目標(biāo)項(xiàng)目相適配的遷移方法。文獻(xiàn)[23]介紹了基于代價(jià)敏感思想的權(quán)重更新策略:對(duì)于分布相似的源項(xiàng)目實(shí)例和目標(biāo)項(xiàng)目實(shí)例,如果誤分則增加權(quán)重,否則降低權(quán)重;對(duì)于分布差異較大的實(shí)例,如果誤分則稍降低權(quán)重,否則降低更多的權(quán)重。文獻(xiàn)[24]認(rèn)為源項(xiàng)目中與目標(biāo)項(xiàng)目相似的實(shí)例應(yīng)該被分配更高的權(quán)重;文獻(xiàn)[25]提出FeCTrA(cross-project software defect prediction using feature clustering and TrAdaBoost)方法,在特征遷移階段借助TrAdaBoost從源項(xiàng)目中選擇訓(xùn)練實(shí)例。TrAdaBoost是AdaBoost方法在跨項(xiàng)目缺陷預(yù)測(cè)中的應(yīng)用,其權(quán)重更新策略為:如果誤分源項(xiàng)目實(shí)例,認(rèn)為該實(shí)例與目標(biāo)項(xiàng)目沖突,降低該實(shí)例權(quán)重;如果誤分目標(biāo)項(xiàng)目實(shí)例,認(rèn)為該實(shí)例很難被分類,提高其權(quán)重。該方法在一定程度上提高了跨項(xiàng)目缺陷預(yù)測(cè)性能,取得了比較好的結(jié)果。
2 FAIT方法
2.1 研究動(dòng)機(jī)
軟件缺陷預(yù)測(cè)利用歷史版本庫(kù)構(gòu)建模型,對(duì)新模塊進(jìn)行缺陷預(yù)測(cè),然而新項(xiàng)目(目標(biāo)項(xiàng)目)并沒有歷史版本信息,無(wú)法獲取訓(xùn)練實(shí)例。因此,需要基于遺留項(xiàng)目(源項(xiàng)目),利用遷移學(xué)習(xí)技術(shù)進(jìn)行跨項(xiàng)目缺陷預(yù)測(cè)。遺留的源項(xiàng)目可提供充足的有類標(biāo)訓(xùn)練實(shí)例,但是基于源項(xiàng)目構(gòu)建的模型無(wú)法保證在目標(biāo)項(xiàng)目上具有良好的、穩(wěn)定的缺陷預(yù)測(cè)性能,其原因如下:
a)從特征分布角度考慮,源項(xiàng)目和目標(biāo)項(xiàng)目之間存在著較為嚴(yán)重的分布差異,該差異會(huì)導(dǎo)致模型與目標(biāo)項(xiàng)目的特征分布無(wú)法適配。為更加直觀地探究源項(xiàng)目和目標(biāo)項(xiàng)目之間的分布差異,本文以AEEEM數(shù)據(jù)集中的PDE(源項(xiàng)目)、ML(目標(biāo)項(xiàng)目)和NASA數(shù)據(jù)集中的PC3(源項(xiàng)目)、CM1(目標(biāo)項(xiàng)目)為例,對(duì)源項(xiàng)目和目標(biāo)項(xiàng)目的特征分布進(jìn)行了可視化,并計(jì)算了源項(xiàng)目和目標(biāo)項(xiàng)目之間的最大均值差異(maximum mean discrepancy,MMD)衡量分布之間的距離,如圖1所示。AEEEM數(shù)據(jù)集的源項(xiàng)目呈聚集分布,目標(biāo)項(xiàng)目呈條形分布,源項(xiàng)目和目標(biāo)項(xiàng)目之間的MMD達(dá)到了7.035 7。NASA數(shù)據(jù)集的源項(xiàng)目和目標(biāo)項(xiàng)目呈現(xiàn)不同的聚集分布狀態(tài),但二者交集并不多,源項(xiàng)目和目標(biāo)項(xiàng)目之間的MMD也較大。無(wú)論是定性的可視化結(jié)果還是定量的最大均值分布差異,均可以得出相同的結(jié)論,即源項(xiàng)目和目標(biāo)項(xiàng)目之間存在較大的分布差異。因此,在進(jìn)行跨項(xiàng)目缺陷預(yù)測(cè)前需要通過特征遷移對(duì)齊源項(xiàng)目和目標(biāo)項(xiàng)目的特征分布。
b)從實(shí)例分布角度考慮,由于源項(xiàng)目與目標(biāo)項(xiàng)目業(yè)務(wù)和程序語(yǔ)言等因素的不同,源項(xiàng)目中存在著冗余實(shí)例和無(wú)用實(shí)例,尤其是當(dāng)源項(xiàng)目實(shí)例數(shù)目遠(yuǎn)大于目標(biāo)項(xiàng)目時(shí),無(wú)用實(shí)例會(huì)嚴(yán)重影響模型在目標(biāo)項(xiàng)目上的分類性能。所以,需要對(duì)源項(xiàng)目中的實(shí)例進(jìn)行選擇。
特征分布差異和實(shí)例分布差異是導(dǎo)致跨項(xiàng)目缺陷預(yù)測(cè)性能不良的兩類不同因素,本文分別從特征分布對(duì)齊和實(shí)例遷移兩個(gè)方面進(jìn)行研究。
2.2 方法流程
FAIT方法的流程如圖2所示,該方法包括特征對(duì)齊和實(shí)例遷移兩個(gè)階段。
a)特征對(duì)齊階段。該階段包括兩個(gè)過程:(a)根據(jù)源項(xiàng)目和目標(biāo)項(xiàng)目的數(shù)據(jù)集構(gòu)建邊緣分布映射矩陣,通過該矩陣可得到邊緣分布對(duì)齊后的源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù);(b)生成目標(biāo)項(xiàng)目偽類標(biāo),利用帶類標(biāo)的源項(xiàng)目和具有偽類標(biāo)的目標(biāo)項(xiàng)目構(gòu)建條件分布映射矩陣,得到最終對(duì)齊的源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù)。
b)實(shí)例遷移階段。從目標(biāo)項(xiàng)目中選取少量帶有類標(biāo)數(shù)據(jù)加入訓(xùn)練集內(nèi),利用改進(jìn)了誤分權(quán)重調(diào)整策略的TrAdaBoost方法,經(jīng)過迭代訓(xùn)練獲得若干弱分類器。根據(jù)改進(jìn)后的評(píng)估指標(biāo)對(duì)弱分類器進(jìn)行加權(quán)集成得到最終的強(qiáng)分類器。本文目標(biāo)項(xiàng)目中有類標(biāo)的實(shí)例選擇比例為20%。
2.3 特征對(duì)齊階段
源項(xiàng)目和目標(biāo)項(xiàng)目通常存在著數(shù)據(jù)分布差異,該差異可分為邊緣分布差異和條件分布差異兩類。邊緣分布差異是導(dǎo)致模型與目標(biāo)項(xiàng)目特征無(wú)法適配的主要原因。特征對(duì)齊的最終目標(biāo)是使得源項(xiàng)目上的條件概率與目標(biāo)項(xiàng)目上的條件概率相同,即P(yS|XS)=P(yT|XT),其中XS和XT分別表示源項(xiàng)目數(shù)據(jù)和目標(biāo)項(xiàng)目數(shù)據(jù),yS和yT分別表示源項(xiàng)目數(shù)據(jù)和目標(biāo)項(xiàng)目數(shù)據(jù)對(duì)應(yīng)的標(biāo)簽。因此,本文特征對(duì)齊包括兩個(gè)步驟:a)通過邊緣分布對(duì)齊,使得源項(xiàng)目和目標(biāo)項(xiàng)目特征具有類似的邊緣概率分布;b)在步驟a)的基礎(chǔ)上,通過條件分布對(duì)齊使得源項(xiàng)目和目標(biāo)項(xiàng)目具有類似的條件概率分布。
2.3.1 邊緣分布對(duì)齊
邊緣分布對(duì)齊是在特征遷移過程中使得源項(xiàng)目和目標(biāo)項(xiàng)目特征的邊緣分布趨于一致的特征對(duì)齊方法。當(dāng)源項(xiàng)目和目標(biāo)項(xiàng)目處于不同的分布時(shí),即P(XS)≠P(XT),將兩個(gè)分布內(nèi)的數(shù)據(jù)同時(shí)映射到同一個(gè)高維再生希爾伯特空間。在此空間內(nèi),最小化源項(xiàng)目和目標(biāo)項(xiàng)目數(shù)據(jù)邊緣分布距離的同時(shí),最大限度保留其各自的內(nèi)部屬性。邊緣MMD可衡量分布之間的距離,其計(jì)算公式如式(1)所示。
算法1首先使用輸入的源項(xiàng)目數(shù)據(jù)集和目標(biāo)項(xiàng)目數(shù)據(jù)集縱向拼接,構(gòu)造矩陣X,其時(shí)間復(fù)雜度為O(N2);然后基于X和格拉姆矩陣計(jì)算公式可得到核矩陣,核矩陣能夠?qū)映射到高維再生希爾伯特空間,時(shí)間復(fù)雜度同樣為O(N2);借助于核技巧,將式(1)改寫后需要計(jì)算矩陣L,通過對(duì)式(1)展開可得L的計(jì)算公式(式(3));其次,通過構(gòu)造中心矩陣H1計(jì)算中間矩陣M,構(gòu)造中心矩陣涉及矩陣相減操作,其時(shí)間復(fù)雜度為O(N2);計(jì)算中間矩陣M涉及矩陣乘法操作,時(shí)間復(fù)雜度可控制在O(N2)~O(N3);對(duì)中間矩陣進(jìn)行特征分解能夠得到用來進(jìn)行特征對(duì)齊的矩陣W,特征分解的時(shí)間復(fù)雜度為O(N3);最后,利用特征對(duì)齊矩陣W與X相乘可得到對(duì)齊后的結(jié)果,拆分返回即可。由上述分析可知,算法1的時(shí)間復(fù)雜度為O(N3)。
2.3.2 條件分布對(duì)齊
條件分布對(duì)齊的目標(biāo)是尋找一個(gè)變換A使得經(jīng)過變換后的源項(xiàng)目數(shù)據(jù)和目標(biāo)項(xiàng)目數(shù)據(jù)具有類似的條件概率分布,即P(yS|ATXS)≈P(yT|ATXT)。但是對(duì)于目標(biāo)項(xiàng)目來說,并不存在yT,無(wú)法求得目標(biāo)項(xiàng)目的條件概率分布。此處可利用源項(xiàng)目數(shù)據(jù)訓(xùn)練一個(gè)簡(jiǎn)單分類器Ψ,通過Ψ可獲得目標(biāo)項(xiàng)目上的偽標(biāo)簽T。同樣在再生希爾伯特空間內(nèi)最小化源項(xiàng)目和目標(biāo)項(xiàng)目之間的條件分布距離,條件MMD的計(jì)算公式為
從Z中獲取DS和DT返回。
算法2同樣根據(jù)輸入構(gòu)造矩陣,并初始化Mc=0,Mc是由式(5)化簡(jiǎn)而來;然后開始迭代計(jì)算矩陣A,矩陣A是由求解式(6)得到的特征向量組成,是最終用來進(jìn)行條件分布對(duì)齊的變換矩陣,分解特征向量時(shí)間復(fù)雜度為O(N3);在迭代過程中通過源域訓(xùn)練分類器,在目標(biāo)域上獲取偽標(biāo)簽,并基于偽標(biāo)簽更新具有類標(biāo)信息的條件分布MMD矩陣Mc,利用Mc可優(yōu)化矩陣A;迭代結(jié)束后利用變換矩陣A與Q相乘可得到對(duì)齊后的結(jié)果,拆分返回即可。算法2使用決策樹作為分類器,訓(xùn)練分類器的時(shí)間復(fù)雜度可看做是O(N)。更新矩陣Mc的時(shí)間復(fù)雜度是O(N2),迭代次數(shù)T2是常數(shù)可忽略,最終獲取對(duì)齊結(jié)果的時(shí)間復(fù)雜度是O(N2)。由上述分析可知,算法2的時(shí)間復(fù)雜度為O(N3)。
2.4 實(shí)例遷移階段
本文采用改進(jìn)的TrAdaBoost方法進(jìn)行實(shí)例遷移。TrAdaBoost改進(jìn)了項(xiàng)目?jī)?nèi)集成算法AdaBoost,采用錯(cuò)誤率作為權(quán)重衡量指標(biāo),對(duì)源項(xiàng)目和目標(biāo)項(xiàng)目采用兩種相反的誤分實(shí)例權(quán)重調(diào)整策略。然而,軟件缺陷預(yù)測(cè)數(shù)據(jù)集存在類不平衡問題,錯(cuò)誤率并不適合作為存在著類不平衡問題的數(shù)據(jù)集;此外,雖然TrAdaBoost的誤分實(shí)例的權(quán)重更新策略提供了一個(gè)新的思路,但是其更新策略仍可進(jìn)一步優(yōu)化。基于此,本文從權(quán)重衡量指標(biāo)和權(quán)重更新策略兩個(gè)方面對(duì)TrAdaBoost進(jìn)行改進(jìn),提出了RTrAdaBoost(refined TrAdaBoost)方法。RTrAdaBoost是FAIT實(shí)例遷移階段用到的方法,屬于FAIT方法的一部分。為更好地說明本文對(duì)TrAdaBoost方法的改進(jìn)效果,下文涉及實(shí)例遷移的內(nèi)容將采用RTrAdaBoost進(jìn)行描述。
對(duì)于源項(xiàng)目來說,誤分有缺陷實(shí)例,小幅度降低其權(quán)重;誤分無(wú)缺陷實(shí)例,大幅度降低其權(quán)重。對(duì)于目標(biāo)項(xiàng)目來說,誤分無(wú)缺陷實(shí)例小幅度提升其權(quán)重;對(duì)于K近鄰中異類實(shí)例數(shù)量等于K的實(shí)例,誤分后不調(diào)整其權(quán)重;對(duì)于K近鄰中異類實(shí)例數(shù)量小于K的實(shí)例,誤分后大幅度提升其權(quán)重。所有實(shí)例的權(quán)重調(diào)整幅度是由其K近鄰中異類實(shí)例數(shù)量自適應(yīng)決定。對(duì)于源項(xiàng)目來說,誤分的實(shí)例與目標(biāo)項(xiàng)目沖突,仍然降低其權(quán)重,但是無(wú)缺陷實(shí)例屬于類不平衡中的多數(shù)類,對(duì)模型負(fù)面影響更大,因此需要大幅度降低其權(quán)重;而有缺陷實(shí)例提供的信息更有助于模型識(shí)別缺陷,在降低沖突的同時(shí)仍希望保留缺陷信息,因此小幅度降低其權(quán)重。對(duì)于目標(biāo)項(xiàng)目來說,K近鄰中異類實(shí)例數(shù)量等于K的有缺陷實(shí)例完全分布于無(wú)缺陷實(shí)例中,是最易被誤分的樣本,如果不斷提升其權(quán)重,會(huì)使得分類邊界侵入到無(wú)缺陷實(shí)例一側(cè),證明1給出了該命題的數(shù)學(xué)證明。如果降低其權(quán)重,會(huì)導(dǎo)致其越來越容易被誤分,而調(diào)整權(quán)重的目的是使得誤分實(shí)例被分類正確,因此對(duì)該類實(shí)例權(quán)重不做調(diào)整;對(duì)于K近鄰中異類實(shí)例數(shù)量小于K的有缺陷實(shí)例,由于其很難被分類,而且其提供的信息更有助于模型識(shí)別缺陷,所以大幅度提升其權(quán)重使得模型能夠更準(zhǔn)確地識(shí)別缺陷。對(duì)于無(wú)缺陷的實(shí)例被誤分,仍需提高其權(quán)重,只是相對(duì)于有缺陷的實(shí)例提升幅度較低,目的是使得模型著重學(xué)習(xí)有缺陷實(shí)例的信息。
其中:EFt表示第t次迭代的弱分類器ht上的評(píng)估因子。
算法3 實(shí)例遷移
輸入:特征遷移后的源項(xiàng)目數(shù)據(jù)Euclid Math OneDApS,有少量類標(biāo)的目標(biāo)項(xiàng)目實(shí)例Euclid Math OneDApLT和無(wú)類標(biāo)的目標(biāo)項(xiàng)目實(shí)例Euclid Math OneDApT。
輸出:Euclid Math OneDApT的預(yù)測(cè)結(jié)果。
分別獲取Euclid Math OneDApS、Euclid Math OneDApLT和Euclid Math OneDApT實(shí)例數(shù)量n、m′和m;
初始化有類標(biāo)實(shí)例的權(quán)重w1=(w11,w12,…,w1n+m′),其中:
算法3首先統(tǒng)計(jì)了源項(xiàng)目、有少量類標(biāo)的目標(biāo)項(xiàng)目和無(wú)類標(biāo)項(xiàng)目的實(shí)例數(shù)量,并基于實(shí)例數(shù)量計(jì)算了有類標(biāo)實(shí)例權(quán)重以及權(quán)重更新參數(shù)β,上述每一步操作的時(shí)間復(fù)雜度均為O(1);然后迭代更新優(yōu)化實(shí)例權(quán)重,在迭代中,首先計(jì)算第t次迭代的樣本權(quán)重,然后訓(xùn)練一個(gè)弱分類器,通過改進(jìn)的評(píng)估因子,根據(jù)式(12)調(diào)整實(shí)例權(quán)重,訓(xùn)練弱分類器的時(shí)間復(fù)雜度是O(N)。式(12)為權(quán)重調(diào)整的幅度添加了限制系數(shù)η,以此來實(shí)現(xiàn)不同實(shí)例權(quán)重調(diào)整幅度不同的更新策略,η的計(jì)算需要統(tǒng)計(jì)實(shí)例周圍異類樣本的數(shù)量,可通過KD樹來實(shí)現(xiàn),其時(shí)間復(fù)雜度為O(N log2 N)。迭代次數(shù)T3是常數(shù)可忽略,因此算法3的時(shí)間復(fù)雜度是O(N log2 N)。
3 實(shí)驗(yàn)結(jié)果分析
3.1 數(shù)據(jù)集
本文實(shí)驗(yàn)采用公開的軟件缺陷預(yù)測(cè)數(shù)據(jù)集AEEEM和NASA。AEEEM每個(gè)項(xiàng)目均含有61個(gè)特征,其中包括線性衰減熵和權(quán)值衰退兩類特征,并已被證明能夠使得缺陷預(yù)測(cè)擁有更高性能。NASA作為缺陷預(yù)測(cè)中的經(jīng)典數(shù)據(jù)集被廣泛使用,具有普遍性和可信性。NASA和AEEEM數(shù)據(jù)集僅擁有一個(gè)共同的特征,因此可用來對(duì)比驗(yàn)證不同特征空間下缺陷預(yù)測(cè)模型的預(yù)測(cè)性能。此外,實(shí)驗(yàn)選取的項(xiàng)目在樣本數(shù)和缺陷樣本比例方面均同時(shí)滿足較少、適中及較多的要求,以此探究源項(xiàng)目和目標(biāo)項(xiàng)目樣本數(shù)量缺陷樣本比例對(duì)跨項(xiàng)目缺陷預(yù)測(cè)性能的影響。表1、2分別給出了AEEEM和NASA數(shù)據(jù)集中項(xiàng)目的詳細(xì)信息。
3.2 評(píng)價(jià)指標(biāo)
軟件缺陷預(yù)測(cè)的工作是評(píng)估目標(biāo)項(xiàng)目中的實(shí)例是否存在缺陷,最終的分類結(jié)果共有四種情況:有缺陷實(shí)例被正確分類,記為TP;有缺陷實(shí)例被錯(cuò)誤分類,記為FP;無(wú)缺陷實(shí)例被正確分類,記為TN;無(wú)缺陷實(shí)例被錯(cuò)誤分類,記為FN。根據(jù)上述四種情況,可得出其他度量指標(biāo):
a)精確度是指真正有缺陷的實(shí)例在所有被預(yù)測(cè)為有缺陷的實(shí)例中的占比,其計(jì)算公式為
b)召回率是指被正確預(yù)測(cè)為有缺陷的實(shí)例在所有真正有缺陷的實(shí)例中的占比,其計(jì)算公式為
c)F1度量是對(duì)精確度和召回率兩個(gè)指標(biāo)的綜合衡量,被認(rèn)為是一個(gè)在類不平衡問題中能夠更好地對(duì)模型預(yù)測(cè)性能進(jìn)行評(píng)價(jià)的指標(biāo)。本文使用F1度量作為評(píng)價(jià)模型性能的評(píng)價(jià)指標(biāo),其計(jì)算公式為
3.3 實(shí)驗(yàn)設(shè)計(jì)
為了驗(yàn)證FAIT方法的有效性和預(yù)測(cè)性能、兩過程特征對(duì)齊的合理性、RTrAdaBoost方法的必要性和先進(jìn)性以及FAIT方法的參數(shù)設(shè)置,本文實(shí)驗(yàn)主要分析驗(yàn)證以下四個(gè)問題。
實(shí)驗(yàn)1 FAIT方法與目前優(yōu)秀的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法的預(yù)測(cè)性能對(duì)比。目前在跨項(xiàng)目軟件缺陷預(yù)測(cè)方向已存在多種優(yōu)秀方法,本實(shí)驗(yàn)考慮與基于特征遷移和實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測(cè)方法(FeCTrA)[25]、基于特征選擇和TrAdaBoost的跨項(xiàng)目缺陷預(yù)測(cè)方法(FSTr)[10]、基于兩階段特征增強(qiáng)的跨項(xiàng)目缺陷預(yù)測(cè)(TFIA)[26]以及未改進(jìn)TrAdaBoost的FSNTr四種基線方法進(jìn)行對(duì)比。其中,F(xiàn)eCTrA同樣從特征分布和實(shí)例分布兩個(gè)方面縮小源項(xiàng)目和目標(biāo)項(xiàng)目間的分布差異,并與TCA+、Burak過濾法、Peters過濾法等經(jīng)典跨項(xiàng)目缺陷預(yù)測(cè)方法進(jìn)行了對(duì)比且有非常明顯的性能提升;FSTr改進(jìn)了TrAdaBoost實(shí)例選擇的評(píng)估因子,本文則是在該評(píng)估因子基礎(chǔ)上對(duì)TrAdaBoost權(quán)重更新策略進(jìn)行的改進(jìn);FSNTr同時(shí)使用了基于訓(xùn)練數(shù)據(jù)清洗和基于遷移學(xué)習(xí)的CPDP方法,采用單一核主成分分析對(duì)缺陷數(shù)據(jù)進(jìn)行預(yù)處理,然后在處理后的數(shù)據(jù)中進(jìn)行特征選擇,最后利用未改進(jìn)的TrAdaBoost進(jìn)行缺陷預(yù)測(cè),取得了較優(yōu)的預(yù)測(cè)性能。FAIT在特征對(duì)齊階段貪心地選擇最佳特征并在分類階段強(qiáng)化高度相關(guān)特征的重要性,創(chuàng)新性地將特征遷移與特征選擇相結(jié)合。
實(shí)驗(yàn)2 FAIT方法的特征對(duì)齊包括兩個(gè)過程,不同的對(duì)齊過程可以對(duì)齊不同的分布,對(duì)最終的預(yù)測(cè)性能影響也可能不同。本實(shí)驗(yàn)根據(jù)樣本分布狀態(tài)進(jìn)行逐步對(duì)齊的過程性探究實(shí)驗(yàn),包括只執(zhí)行邊緣分布對(duì)齊的單一過程和在前一過程基礎(chǔ)上進(jìn)行條件分布的兩過程實(shí)驗(yàn),驗(yàn)證了FAIT方法中兩過程對(duì)齊的合理性和有效性。
實(shí)驗(yàn)3 FAIT方法在經(jīng)過特征對(duì)齊后又進(jìn)行了實(shí)例遷移,當(dāng)源項(xiàng)目和目標(biāo)項(xiàng)目特征分布對(duì)齊后不進(jìn)行實(shí)例遷移可否獲得較好分類性能和穩(wěn)定性。若有必要進(jìn)行實(shí)例遷移,那么RTrAdaBoost與TrAdaBoost相比是否具有先進(jìn)性。因此,本實(shí)驗(yàn)考慮在實(shí)例遷移階段對(duì)比三種情景下(不進(jìn)行遷移、應(yīng)用TrAdaBoost進(jìn)行遷移和應(yīng)用RTrAdaBoost進(jìn)行遷移)模型的預(yù)測(cè)性能以驗(yàn)證FAIT方法的合理性。
實(shí)驗(yàn)4 在實(shí)例遷移階段,探究源項(xiàng)目中有類標(biāo)實(shí)例占比對(duì)FAIT方法預(yù)測(cè)性能的影響。由于目標(biāo)項(xiàng)目缺少類標(biāo)信息,而人工標(biāo)注需要耗費(fèi)大量人力和物力,所以跨項(xiàng)目軟件缺陷預(yù)測(cè)工作期望以少量的有類標(biāo)實(shí)例獲得較好的預(yù)測(cè)性能。根據(jù)實(shí)際開發(fā)情況,20%的標(biāo)注工作量是可接受的。因此,本文考慮目標(biāo)項(xiàng)目中20%、10%、5%的有類標(biāo)實(shí)例比例分析其對(duì)FAIT方法性能的影響。
3.4 參數(shù)設(shè)置
本文選取目標(biāo)項(xiàng)目中20%有類標(biāo)實(shí)例加入到源項(xiàng)目中作為訓(xùn)練集,在實(shí)驗(yàn)過程中,每個(gè)項(xiàng)目互相作為源項(xiàng)目和目標(biāo)項(xiàng)目進(jìn)行一對(duì)一的跨項(xiàng)目軟件缺陷預(yù)測(cè)。除實(shí)驗(yàn)4外,所有結(jié)果均采用10次跨項(xiàng)目5折交叉驗(yàn)證結(jié)果的平均值,即利用目標(biāo)項(xiàng)目中20%有類標(biāo)的實(shí)例作為訓(xùn)練集訓(xùn)練模型,然后對(duì)目標(biāo)項(xiàng)目中其余80%無(wú)類標(biāo)實(shí)例進(jìn)行預(yù)測(cè)。
實(shí)驗(yàn)4中,對(duì)于20%的目標(biāo)項(xiàng)目有類標(biāo)實(shí)例,采取10次跨項(xiàng)目5折交叉驗(yàn)證;對(duì)于10%的目標(biāo)項(xiàng)目有類標(biāo)實(shí)例,采取10次跨項(xiàng)目10折交叉驗(yàn)證;對(duì)于5%的目標(biāo)項(xiàng)目有類標(biāo)實(shí)例,采取10次跨項(xiàng)目20折交叉驗(yàn)證。
3.5 實(shí)驗(yàn)結(jié)果分析
3.5.1 實(shí)驗(yàn)1的結(jié)果及分析
本實(shí)驗(yàn)選擇AEEEM和NASA數(shù)據(jù)集,對(duì)FAIT方法的有效性和預(yù)測(cè)性能進(jìn)行驗(yàn)證,利用決策樹作為弱分類器,目標(biāo)項(xiàng)目中有類標(biāo)實(shí)例選擇比例為20%,同時(shí)將FAIT方法與其他四種方法進(jìn)行對(duì)比。采用F1度量作為評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表3、4所示。
在表3、4中,第一列表示源項(xiàng)目對(duì)目標(biāo)項(xiàng)目的跨項(xiàng)目預(yù)測(cè),代表不同的場(chǎng)景,如PDE→EQ表示源項(xiàng)目是PDE,目標(biāo)項(xiàng)目是EQ;其他列表示在不同算法在不同源項(xiàng)目和目標(biāo)項(xiàng)目下預(yù)測(cè)的F1值。AVG表示每種方法在該數(shù)據(jù)集上的平均性能,每行的最大值進(jìn)行了加粗表示。
從表3、4的實(shí)驗(yàn)結(jié)果可以看出,F(xiàn)AIT方法的預(yù)測(cè)性能明顯優(yōu)于其余四種對(duì)比方法,在大部分場(chǎng)景下的表現(xiàn)均較好,能夠取得更好的預(yù)測(cè)性能。在AEEEM數(shù)據(jù)集中,對(duì)于AVG,F(xiàn)AIT與FSTr、FSNTr、FeCTrA和TFIA相比分別提高了7.11%、10.76%、13.34%和11.53%,F(xiàn)AIT方法在20個(gè)場(chǎng)景下取得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)值的場(chǎng)景是EQ作為目標(biāo)項(xiàng)目,而該類場(chǎng)景下TFIA均取得最優(yōu)值。結(jié)合FSTr、FSNTr、FeCTrA三種方法在EQ項(xiàng)目上的表現(xiàn)來看,可能是因?yàn)镋Q的數(shù)據(jù)分布非常適合TFIA方法。此外,還可以發(fā)現(xiàn)當(dāng)目標(biāo)項(xiàng)目為EQ時(shí),五種方法在EQ上的表現(xiàn)均不如其他項(xiàng)目,可能原因是EQ樣本數(shù)較少(324個(gè))且缺陷樣本比例較高(39.81%)。在NASA數(shù)據(jù)集上,F(xiàn)AIT方法全部取得了最優(yōu)預(yù)測(cè)性能,即使是在與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%。對(duì)于平均性能,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方法在兩過程特征對(duì)齊后同樣不加改進(jìn)地使用TrAdaBoost方法的實(shí)驗(yàn)效果時(shí)發(fā)現(xiàn),F(xiàn)AIT缺陷預(yù)測(cè)性能同樣優(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,同時(shí)可以證明FAIT方法的兩過程特征對(duì)齊優(yōu)于FSNTr方法的兩過程特征選擇和FeCTrA方法基于聚類的特征遷移。
根據(jù)第2章中的論述可知,F(xiàn)AIT方法最壞的時(shí)間復(fù)雜度為O(N3)。基線方法中,F(xiàn)STr、FSNTr需要進(jìn)行矩陣分解,F(xiàn)eCTrA在特征遷移階段采用的是基于特征相關(guān)度的聚類算法,時(shí)間復(fù)雜度均為O(N3),而TFIA方法最壞的時(shí)間復(fù)雜度可達(dá)到O(N5),還有可能存在無(wú)解狀態(tài)。因此,F(xiàn)AIT方法在時(shí)間復(fù)雜度方面并不高于其他方法。
本實(shí)驗(yàn)可以證明,本文FAIT方法擁有更好的缺陷預(yù)測(cè)性能。
3.5.2 實(shí)驗(yàn)2的結(jié)果及分析
本實(shí)驗(yàn)通過只執(zhí)行邊緣分布對(duì)齊的單一過程對(duì)齊和執(zhí)行在前一過程基礎(chǔ)上進(jìn)行條件分布的兩過程對(duì)齊,探究FAIT方法中兩過程對(duì)齊的合理性以及第二次對(duì)齊的必要性。為更直觀地展示邊緣分布對(duì)齊和條件分布對(duì)齊對(duì)樣本分布的影響結(jié)果,以AEEEM數(shù)據(jù)集中PDE→ML和NASA數(shù)據(jù)集中PC3→CM1為例給出可視化圖和MMD距離,如圖3、4所示。
從可視化結(jié)果定性來看,PDE→ML的源項(xiàng)目呈聚集分布,目標(biāo)項(xiàng)目呈條形分布。經(jīng)過邊緣分布對(duì)齊后,二者均趨于散射分布,此時(shí)源項(xiàng)目和目標(biāo)項(xiàng)目分布較為接近。繼續(xù)經(jīng)過條件分布對(duì)齊后,二者均趨于V形分布,可明顯看出二者分布更加的相似。PC3→CM1的源項(xiàng)目和目標(biāo)項(xiàng)目呈現(xiàn)不同的聚集分布狀態(tài),但二者交集并不多。經(jīng)過邊緣分布對(duì)齊后,二者均趨于紡錘形分布,此時(shí)源項(xiàng)目和目標(biāo)項(xiàng)目分布較為接近。繼續(xù)經(jīng)過條件分布對(duì)齊后,二者均趨于掃帚形分布,同樣可明顯看出二者分布更加地相似。
從MMD結(jié)果定量來看,PDE和ML原分布之間的MMD距離已經(jīng)達(dá)到了7.035 7,經(jīng)過邊緣分布對(duì)齊后分布差異減小了95.50%,繼續(xù)經(jīng)過條件分布對(duì)齊后,分布差異又縮小了一個(gè)量級(jí)。PC3和CM1原分布之間的MMD距離是2.693 4,經(jīng)過邊緣分布對(duì)齊分布差異減為原來的一半,而繼續(xù)經(jīng)過條件分布對(duì)齊后,分布差異可以縮小2個(gè)量級(jí)。
為探究特征對(duì)齊過程對(duì)FAIT方法預(yù)測(cè)性能的影響,圖5、6給出了單一過程對(duì)齊和兩過程對(duì)齊F1度量的實(shí)驗(yàn)結(jié)果對(duì)比。
在圖5、6中,橫坐標(biāo)代表不同的源項(xiàng)目對(duì)目標(biāo)項(xiàng)目的預(yù)測(cè),即不同的場(chǎng)景,縱坐標(biāo)表示單一過程對(duì)齊和兩過程對(duì)齊取得的F1度量值。從圖5、6的實(shí)驗(yàn)結(jié)果中可以看出,兩過程對(duì)齊的預(yù)測(cè)性能明顯優(yōu)于單一過程對(duì)齊,在絕大部分場(chǎng)景下的表現(xiàn)均較好,能夠取得更好的預(yù)測(cè)性能,這與可視化的結(jié)果分析相符。在AEEEM數(shù)據(jù)集中,對(duì)于AVG,兩過程對(duì)齊的F1度量(0.893)比單一過程對(duì)齊的F1度量(0.889)提高了0.45%。兩過程對(duì)齊在20個(gè)場(chǎng)景下取得19次最大值。例如ML→EQ,兩過程對(duì)齊的F1度量為0.746,相比于單一過程(0.761),F(xiàn)1度量提高了2.01%。在NASA數(shù)據(jù)集中,對(duì)于平均性能AVG,兩過程對(duì)齊的F1度量(0.932)比單一過程對(duì)齊的F1度量(0.928)提高了0.43%。兩過程對(duì)齊在20個(gè)場(chǎng)景下取得18次最大值。例如PC3→PC1,兩過程對(duì)齊的F1度量為0.940,相比于單一過程(0.926),F(xiàn)1度量提高了1.51%。
兩過程特征對(duì)齊的結(jié)果是優(yōu)于單一過程的,可認(rèn)為FAIT方法中設(shè)置兩過程對(duì)齊具有合理性和有效性。
3.5.3 實(shí)驗(yàn)3的結(jié)果及分析
FAIT方法的過程包括特征對(duì)齊和實(shí)例遷移兩階段,特征對(duì)齊已經(jīng)將源項(xiàng)目和目標(biāo)項(xiàng)目的分布距離縮短。為了探究特征對(duì)齊后再進(jìn)行實(shí)例遷移的必要性,以及RTrAdaBoost相對(duì)于TrAdaBoost的先進(jìn)性,本文考慮AdaBoost(Ada)、TrAdaBoost(TrAda)和RTrAdaBoost(RTrAda)進(jìn)行三組對(duì)比實(shí)驗(yàn)。使用F1度量作為評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如圖7、8所示。
在圖7、8中,橫坐標(biāo)分別代表三種不同實(shí)例遷移方法,縱坐標(biāo)代表其對(duì)應(yīng)的F1度量值。由圖7、8可以發(fā)現(xiàn),經(jīng)過實(shí)例遷移后,缺陷預(yù)測(cè)性能得到提升。例如,在AEEEM數(shù)據(jù)集中,經(jīng)過實(shí)例遷移后AVG(0.889)比不進(jìn)行實(shí)例遷移(0.831)提高了5.8%。此外,PDE做源項(xiàng)目時(shí),實(shí)例遷移前后的缺陷預(yù)測(cè)性能大幅度提升,可能的原因是PDE中存在大量無(wú)用實(shí)例,因此為避免在跨項(xiàng)目軟件缺陷預(yù)測(cè)過程中出現(xiàn)該類情況,應(yīng)該進(jìn)行實(shí)例遷移。在NASA數(shù)據(jù)集中,經(jīng)過實(shí)例遷移后AVG(0.930)比不進(jìn)行實(shí)例遷移(0.921)提高了0.98%。因此,在進(jìn)行特征對(duì)齊后進(jìn)行實(shí)例遷移是有必要的。
由圖7、8還可以發(fā)現(xiàn),在對(duì)TrAdaBoost改進(jìn)后,缺陷預(yù)測(cè)性能進(jìn)一步得到提升。在AEEEM數(shù)據(jù)集中RTrAdaBoost與TrAdaBoost和AdaBoost相比AVG分別提高了0.50%和7.52%,并在20個(gè)場(chǎng)景下取得18次最大值。例如ML→EQ,RTrAdaBoost方法的F1度量為0.761,相比于TrAdaBoost(0.744)和AdaBoost(0.754),F(xiàn)1度量分別提高了2.28%和0.93%。在TrAdaBoost的F1度量值下降時(shí),仍可提高該場(chǎng)景的缺陷預(yù)測(cè)性能。在NASA數(shù)據(jù)集中RTrAdaBoost與TrAdaBoost和AdaBoost相比AVG分別提高了0.26%和1.26%,并在20個(gè)場(chǎng)景下取得16次最大值。例如KC1→CM1,RTrAdaBoost方法的F1度量為0.946,相比于TrAdaBoost(0.932)和AdaBoost(0.932),F(xiàn)1度量分別提高了1.50%和1.50%,在TrAdaBoost無(wú)法提升F1時(shí)仍可提升缺陷預(yù)測(cè)性能。此外,RTrAdaBoost比TrAdaBoost缺陷預(yù)測(cè)性能更加穩(wěn)定,RTrAdaBoost在AEEEM和NASA數(shù)據(jù)集上F1度量的方差分別為0.005 166和0.000 402,而TrAdaBoost在兩個(gè)數(shù)據(jù)集上F1度量的方差分別為0.005 393和0.000 419。
RTrAdaBoost比TrAdaBoost方法穩(wěn)定性更高,缺陷預(yù)測(cè)性能更優(yōu),可以認(rèn)為RTrAdaBoost具有先進(jìn)性。
3.5.4 實(shí)驗(yàn)4的結(jié)果及分析
本實(shí)驗(yàn)考慮5%、10%和20%三種有類標(biāo)實(shí)例比例加入到源項(xiàng)目中,以此探究目標(biāo)項(xiàng)目中不同比例的有類標(biāo)實(shí)例對(duì)FAIT方法預(yù)測(cè)性能的影響。因?yàn)槿斯?biāo)注實(shí)例費(fèi)時(shí)費(fèi)力,根據(jù)行業(yè)實(shí)際情況,本文考慮將該比例控制在20%以下,在減少開銷的同時(shí)提升模型的缺陷預(yù)測(cè)性能。對(duì)于5%、10%以及20%的比例,可通過跨項(xiàng)目的20折、10折以及5折交叉驗(yàn)證完成。目標(biāo)項(xiàng)目中有類標(biāo)實(shí)例比例對(duì)FAIT方法缺陷預(yù)測(cè)性能的影響結(jié)果如圖9、10所示。
在圖9、10中,橫坐標(biāo)代表跨項(xiàng)目缺陷預(yù)測(cè)中的目標(biāo)項(xiàng)目,縱坐標(biāo)代表利用其他項(xiàng)目對(duì)該目標(biāo)項(xiàng)目進(jìn)行預(yù)測(cè)取得的平均F1度量值。從圖9可以看出,當(dāng)目標(biāo)項(xiàng)目有類標(biāo)實(shí)例比例從5%增加至10%時(shí),F(xiàn)1處于較穩(wěn)定的狀態(tài)。但比例增加到20%時(shí),與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ù)測(cè)性能隨著有類標(biāo)實(shí)例比例的增加而不斷提升。當(dāng)比例從5%增加到20%時(shí),在CM1、JM1、KC1、PC1和PC3中F1分別提高了0.91%、1.43%、0.60%、0.97%和0.89%。對(duì)于JM1項(xiàng)目,雖然FAIT方法在該項(xiàng)目上的預(yù)測(cè)性能最低,但是當(dāng)有類標(biāo)實(shí)例比例增加時(shí),該項(xiàng)目上的F1增長(zhǎng)幅度卻最大(分別為0.62%和0.81%)。主要是因?yàn)樵擁?xiàng)目樣本數(shù)(7 720)過多,源項(xiàng)目中的樣本無(wú)法完全適配該項(xiàng)目;但JM1缺陷樣本數(shù)(1 612)充足,隨著比例的增加,目標(biāo)項(xiàng)目缺陷信息也更多,在該項(xiàng)目上的缺陷預(yù)測(cè)性能也隨之提升。因此,在FAIT方法中,有類標(biāo)實(shí)例的比例選定為20%比較合理。
4 結(jié)束語(yǔ)
本文提出了一種結(jié)合特征對(duì)齊與實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測(cè)方法,在特征對(duì)齊中采用兩過程特征對(duì)齊縮小源項(xiàng)目和目標(biāo)項(xiàng)目間的邊緣分布距離和條件分布距離,同時(shí)在實(shí)例遷移中對(duì)TrAdaBoost的誤分類權(quán)重調(diào)整策略進(jìn)行改進(jìn),以保證從源項(xiàng)目中選取較優(yōu)的訓(xùn)練實(shí)例,繼而實(shí)現(xiàn)實(shí)例遷移,構(gòu)建跨項(xiàng)目缺陷預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果表明,該方法在跨項(xiàng)目軟件缺陷預(yù)測(cè)中表現(xiàn)優(yōu)異,缺陷預(yù)測(cè)性能明顯優(yōu)于現(xiàn)有優(yōu)秀方法,在一定程度上提高了跨項(xiàng)目軟件缺陷預(yù)測(cè)性能。
在接下來的工作中,將進(jìn)一步探討:a)分類器的集成策略對(duì)FAIT方法預(yù)測(cè)性能的影響,如對(duì)弱分類器分段集成;b)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,進(jìn)一步提高FAIT方法的有效性和魯棒性。本文方法對(duì)于實(shí)例數(shù)量較多的目標(biāo)項(xiàng)目(如JM1項(xiàng)目數(shù)為7 720)的預(yù)測(cè)性能可進(jìn)一步提高,因此需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。下一階段中,可以對(duì)實(shí)例過多的項(xiàng)目進(jìn)行欠采樣,采樣的準(zhǔn)則應(yīng)該是不損失或少損失項(xiàng)目的特征分布信息;也可以對(duì)項(xiàng)目實(shí)例進(jìn)行劃分,對(duì)實(shí)例較多的項(xiàng)目進(jìn)行多次跨項(xiàng)目缺陷預(yù)測(cè)。
參考文獻(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ù)測(cè)模型[J].計(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ù)測(cè)研究進(jìn)展[J].計(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的跨項(xiàng)目缺陷預(yù)測(cè)方法[J].計(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í)的跨項(xiàng)目軟件缺陷預(yù)測(cè) [J].計(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ù)測(cè)方法 [J].小型微型計(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)督集成跨項(xiàng)目軟件缺陷預(yù)測(cè)方法[J].軟件學(xué)報(bào),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]倪超,陳翔,劉望舒,等.基于特征遷移和實(shí)例遷移的跨項(xiàng)目缺陷預(yù)測(cè)方法[J].軟件學(xué)報(bào),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基金項(xiàng)目:黑龍江省教育科學(xué)規(guī)劃課題(GJB1421251)
作者簡(jiǎn)介:李莉(1977-),女(通信作者),河南孟州人,教授,碩導(dǎo),博士,CCF會(huì)員,主要研究方向?yàn)橄冗M(jìn)軟件工程、區(qū)塊鏈、群智能優(yōu)化、大型分布式計(jì)算等(lli@nefu.edu.cn);趙鑫(1998-),男,黑龍江海倫人,碩士研究生,主要研究方向?yàn)檐浖毕蓊A(yù)測(cè)等;石可欣(1997-),女,山東聊城人,碩士,主要研究方向?yàn)檐浖毕蓊A(yù)測(cè);蘇仁嘉(1998-),男,黑龍江大慶人,碩士研究生,主要研究方向?yàn)檐浖毕蓊A(yù)測(cè)等;任振康(1996-),男,山東青島人,碩士,主要研究方向?yàn)檐浖毕蓊A(yù)測(cè)等.