999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

結合特征對齊與實例遷移的跨項目缺陷預測

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

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

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

關鍵詞:跨項目缺陷預測;特征對齊;最大均值差異;實例遷移;TrAdaBoost

中圖分類號:TP311.5 文獻標志碼: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,FAIT 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,FAIT 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 引言

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

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

1 相關工作

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

1.1 基于訓練數據清洗的CPDP方法

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

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

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

無論是特征變換還是特征選擇,均是在項目內部對特征進行處理,源項目與目標項目特征處理并無關聯,這就導致了在源項目內得到的特征集與目標項目內得到的特征集之間仍然存在著分布差異。本文考慮到該問題,在特征處理過程中關聯源項目特征與目標項目特征,利用特征遷移技術對源項目和目標項目的特征進行對齊。

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

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

1.2 基于遷移學習的CPDP方法

基于遷移學習的CPDP方法旨在設計具有強大學習能力和泛化能力的算法構建分類器。根據遷移對象的不同可以分為特征遷移和實例遷移兩類遷移方法。

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

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

2 FAIT方法

2.1 研究動機

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

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

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

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

2.2 方法流程

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

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

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

2.3 特征對齊階段

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

2.3.1 邊緣分布對齊

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

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

2.3.2 條件分布對齊

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

從Z中獲取DS和DT返回。

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

2.4 實例遷移階段

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

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

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

算法3 實例遷移

輸入:特征遷移后的源項目數據Euclid Math OneDApS,有少量類標的目標項目實例Euclid Math OneDApLT和無類標的目標項目實例Euclid Math OneDApT。

輸出:Euclid Math OneDApT的預測結果。

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

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

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

3 實驗結果分析

3.1 數據集

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

3.2 評價指標

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

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

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

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

3.3 實驗設計

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

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

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

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

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

3.4 參數設置

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

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

3.5 實驗結果分析

3.5.1 實驗1的結果及分析

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

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

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

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

根據第2章中的論述可知,FAIT方法最壞的時間復雜度為O(N3)。基線方法中,FSTr、FSNTr需要進行矩陣分解,FeCTrA在特征遷移階段采用的是基于特征相關度的聚類算法,時間復雜度均為O(N3),而TFIA方法最壞的時間復雜度可達到O(N5),還有可能存在無解狀態。因此,FAIT方法在時間復雜度方面并不高于其他方法。

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

3.5.2 實驗2的結果及分析

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

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

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

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

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

兩過程特征對齊的結果是優于單一過程的,可認為FAIT方法中設置兩過程對齊具有合理性和有效性。

3.5.3 實驗3的結果及分析

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

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

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

RTrAdaBoost比TrAdaBoost方法穩定性更高,缺陷預測性能更優,可以認為RTrAdaBoost具有先進性。

3.5.4 實驗4的結果及分析

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

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

4 結束語

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

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

參考文獻:

[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]李冉,周麗娟,王華.面向類不平衡數據集的軟件缺陷預測模型[J].計算機應用研究,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]楊豐玉,黃雅璇,周世健,等.結合多元度量指標軟件缺陷預測研究進展[J].計算機工程與應用,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的跨項目缺陷預測方法[J].計算機應用,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]黃琳,荊曉遠,董西偉.基于多核集成學習的跨項目軟件缺陷預測 [J].計算機技術與發展,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]黃燕,徐賢,虞慧群,等.一種特征轉移和域自適應的異質缺陷預測方法 [J].小型微型計算機系統,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]何吉元,孟昭鵬,陳翔,等.一種半監督集成跨項目軟件缺陷預測方法[J].軟件學報,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]倪超,陳翔,劉望舒,等.基于特征遷移和實例遷移的跨項目缺陷預測方法[J].軟件學報,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基金項目:黑龍江省教育科學規劃課題(GJB1421251)

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

主站蜘蛛池模板: 欧美日韩免费观看| 久久国产精品无码hdav| 91在线视频福利| 欧美精品亚洲精品日韩专区va| 蜜桃视频一区二区| 亚洲成在线观看| 中国成人在线视频| 国产精品亚洲专区一区| 亚洲天堂视频在线观看| 日韩欧美网址| 青青青国产视频手机| 中国国产高清免费AV片| 国产在线第二页| 98超碰在线观看| 国产精品一区二区国产主播| 免费女人18毛片a级毛片视频| 无码国产伊人| 国产无码精品在线| 伊人精品视频免费在线| 午夜视频免费试看| 日韩无码视频网站| 91极品美女高潮叫床在线观看| 日本尹人综合香蕉在线观看| 亚洲高清中文字幕在线看不卡| 午夜精品区| 国产乱子伦视频三区| 粉嫩国产白浆在线观看| 国产丝袜啪啪| 婷婷六月色| 国产精选小视频在线观看| 中文字幕亚洲专区第19页| 人妻少妇乱子伦精品无码专区毛片| 亚洲色图欧美激情| 1024你懂的国产精品| 久久久精品久久久久三级| 国产一级毛片在线| 亚洲国产中文欧美在线人成大黄瓜 | 婷婷午夜天| 伊人天堂网| 国产草草影院18成年视频| 九色视频线上播放| 午夜精品久久久久久久99热下载| 在线观看亚洲国产| 久久亚洲天堂| 超碰aⅴ人人做人人爽欧美| 97久久超碰极品视觉盛宴| 亚洲精品成人7777在线观看| 国产精品网拍在线| 亚洲无码精品在线播放| 亚洲无码久久久久| 久久精品国产91久久综合麻豆自制| 亚洲欧美成人在线视频| 97视频免费在线观看| 9久久伊人精品综合| 午夜一级做a爰片久久毛片| 亚洲人精品亚洲人成在线| 在线精品亚洲一区二区古装| 日韩不卡免费视频| 国产精品大白天新婚身材| 夜夜操天天摸| 国产精品无码AⅤ在线观看播放| 丁香五月激情图片| 狼友av永久网站免费观看| 看国产一级毛片| 亚洲娇小与黑人巨大交| 99热这里只有精品久久免费| 人与鲁专区| 国产精品尤物铁牛tv| 亚洲愉拍一区二区精品| 99成人在线观看| 暴力调教一区二区三区| 天天综合网色中文字幕| 亚洲精品第五页| 亚洲无码视频图片| 小说区 亚洲 自拍 另类| 成人综合在线观看| 国产免费一级精品视频| 亚洲中文无码h在线观看| 午夜日本永久乱码免费播放片| 久久青青草原亚洲av无码| 激情无码字幕综合| 久久永久免费人妻精品|