程 銘,毋國慶,袁夢霆
(1.武漢大學(xué)計算機(jī)學(xué)院,湖北武漢430072; 2.武漢大學(xué)軟件工程國家重點實驗室,湖北武漢430072)
?
基于遷移學(xué)習(xí)的軟件缺陷預(yù)測
程銘1,2,毋國慶1,2,袁夢霆1,2
(1.武漢大學(xué)計算機(jī)學(xué)院,湖北武漢430072; 2.武漢大學(xué)軟件工程國家重點實驗室,湖北武漢430072)
摘要:傳統(tǒng)軟件缺陷預(yù)測方法在解決跨項目缺陷預(yù)測過程中適應(yīng)能力不足,主要是因為源項目和目標(biāo)項目之間存在不同的特征分布.為了解決這個問題,提出一種新的加權(quán)貝葉斯遷移學(xué)習(xí)算法,算法首先收集訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的特征信息,然后計算特征差異,將不同項目數(shù)據(jù)之間差異轉(zhuǎn)化為訓(xùn)練數(shù)據(jù)權(quán)重,最后基于這些權(quán)重數(shù)據(jù)建立預(yù)測模型.在8個開源項目數(shù)據(jù)集上進(jìn)行實驗比較,實驗結(jié)果表明與其他方法相比本文方法顯著提高跨項目缺陷預(yù)測性能.
關(guān)鍵詞:軟件缺陷預(yù)測;遷移學(xué)習(xí);機(jī)器學(xué)習(xí);樸素貝葉斯
隨著軟件系統(tǒng)規(guī)模不斷擴(kuò)大,為了提高軟件質(zhì)量,高效的軟件缺陷預(yù)測技術(shù)越來越受人們的關(guān)注[1~4].軟件缺陷預(yù)測能夠在系統(tǒng)開發(fā)初期,及時準(zhǔn)確地預(yù)測軟件模塊是否包含缺陷,合理分配測試資源,針對性的對缺陷模塊進(jìn)行分析提高產(chǎn)品質(zhì)量[1].目前,關(guān)于軟件缺陷預(yù)測研究主要集中于兩個方面:一是提出新的預(yù)測模型; Jing[2]提出一種基于字典學(xué)習(xí)的軟件缺陷預(yù)測方法,能夠高效地預(yù)測項目內(nèi)缺陷分布.Wang[3]結(jié)合斯皮爾曼秩相關(guān)系數(shù),提出一種基于C4.5缺陷預(yù)測方法.二是不同方法組合提高預(yù)測性能.Jiang[4]提出將支持向量機(jī)(Support Vector Machine,SVM)和蟻群算法相結(jié)合,使用蟻群算法優(yōu)化求解SVM參數(shù)提高缺陷預(yù)測準(zhǔn)確性和適用性.
但上述研究均基于項目內(nèi)缺陷預(yù)測,即利用相同項目的歷史數(shù)據(jù)構(gòu)建預(yù)測模型.在實踐中,跨項目缺陷預(yù)測是必要的.新項目缺少建立預(yù)測模型所必須的歷史數(shù)據(jù),因此使用其他項目數(shù)據(jù)建立預(yù)測模型,預(yù)測新項目缺陷分布已經(jīng)成為發(fā)展趨勢[5~10].Zimmermann[5]使用12個項目構(gòu)建了622個跨項目組合,評估跨項目缺陷預(yù)測模型的性能,發(fā)現(xiàn)當(dāng)前預(yù)測模型并不能提供令人滿意的預(yù)測效果,其主要原因是不同項目間存在不同的數(shù)據(jù)分布.而大部分機(jī)器學(xué)習(xí)分類器的設(shè)計是假設(shè)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)具有相同特征空間或數(shù)據(jù)分布[6],并不支持跨項目缺陷預(yù)測.為了解決這個問題,Turhan[7]提出利用K近鄰過濾器,選擇不同項目中相似實例作為訓(xùn)練樣本,丟棄差異較大的數(shù)據(jù)構(gòu)建預(yù)測模型.在一定程度上提高了預(yù)測性能,但是丟棄數(shù)據(jù)可能包含有用的訓(xùn)練信息.Canfora[8]提出基于遺傳算法的多目標(biāo)邏輯回歸預(yù)測模型,充分考慮成本效益之間的權(quán)衡進(jìn)行跨項目缺陷預(yù)測.
近年來基于遷移學(xué)習(xí)的跨項目缺陷預(yù)測方法被提出,Nam[9]利用遷移成分分析技術(shù)挖掘不同項目數(shù)據(jù)的共有特征空間,遷移有用信息消減數(shù)據(jù)差異,選擇最優(yōu)規(guī)范化策略進(jìn)行跨項目缺陷預(yù)測.Ma[10]提出遷移貝葉斯模型(Transfer Naive Bayes,TNB)使用加權(quán)訓(xùn)練數(shù)據(jù)構(gòu)造貝葉斯分類器,雖然該方法有效地提高了缺陷預(yù)測性能,但TNB算法在計算權(quán)值時只考慮目標(biāo)數(shù)據(jù)每個屬性的最大值和最小值,并不能完全反映目標(biāo)數(shù)據(jù)集所有特征.
為了進(jìn)一步提高跨項目缺陷預(yù)測性能,本文充分考慮所有訓(xùn)練樣本特征信息不丟棄任何樣本,提出一種加權(quán)貝葉斯遷移學(xué)習(xí)算法(Weighted Naive Bayes,WNB).將訓(xùn)練數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集之間的特征差異轉(zhuǎn)換為訓(xùn)練實例權(quán)重;在加權(quán)訓(xùn)練數(shù)據(jù)上建立預(yù)測模型預(yù)測缺陷分布.實驗結(jié)果表明,WNB算法簡單適用、魯棒性強(qiáng)顯著提高跨項目缺陷預(yù)測性能優(yōu)于其他比較算法.
在基于遷移的軟件缺陷預(yù)測中,每個特征為軟件模塊度量特征,所有度量值向量構(gòu)成對應(yīng)軟件的特征空間.假設(shè)軟件特征空間為χ,軟件模塊數(shù)據(jù)集為X = { x1,…,xn}∈χ,其中xi為相應(yīng)軟件的第i個模塊的度量值向量.通常情況下,不同的軟件項目數(shù)據(jù)集,在相同度量特征的前提下,特征空間的特征值范圍是不同的(即特征分布不同).因此,本文提出一種加權(quán)貝葉斯遷移學(xué)習(xí)算法能夠最大限度的利用跨項目數(shù)據(jù)的特征信息,提高預(yù)測性能.
2.1樸素貝葉斯缺陷預(yù)測模型
假設(shè)訓(xùn)練樣本集為L = {(x1,y1),…,(xn,yn)},其中xi表示第i個樣本,yi為樣本xi的類別屬性,n為訓(xùn)練樣本個數(shù).在軟件缺陷預(yù)測問題中yi∈('true','false'):缺陷模塊被標(biāo)記為('true'),無缺陷模塊標(biāo)記為('false').假定T = { t1,…,tm}為測試數(shù)據(jù)集,m為測試數(shù)據(jù)集樣本個數(shù).樸素貝葉斯分類器可以使用下列公式對測試實例t進(jìn)行分類:
其中t = { a1,…,aj,…ak},aj為測試實例第j個屬性,k為屬性個數(shù).P(y)、P(aj|y)和P(y|t)分別表示先驗概率、條件概率和后驗概率.樸素貝葉斯分類器(Naive Bayes,NB)是一個經(jīng)典的貝葉斯分類算法.該算法假定屬性值對給定類的影響?yīng)毩⒂谄渌麑傩灾?本文所提WNB算法也是基于這個假設(shè).在軟件缺陷預(yù)測中,每個軟件模塊使用軟件度量提取特征,度量屬性之間相互獨立并不存在依賴關(guān)系,因此我們認(rèn)為各個屬性同樣重要具有相同權(quán)重.
2.2加權(quán)貝葉斯模型(Weighted Naive Bayes,WNB)
為了遷移測試數(shù)據(jù)信息,首先收集測試集數(shù)據(jù),將每個訓(xùn)練實例與其進(jìn)行比較,計算每個訓(xùn)練實例與測試集的相似度;然后基于數(shù)據(jù)引力方法將相似度轉(zhuǎn)化為該訓(xùn)練實例權(quán)重,最后基于加權(quán)訓(xùn)練數(shù)據(jù)建立預(yù)測模型.
2.2.1相似度計算
在WNB方法中,每個實例表示為xi= { ai1,ai2,…aik},aij為xi的第j個屬性,k為屬性個數(shù).為了獲取訓(xùn)練實例和測試集之間的相似度,首先計算測試集和訓(xùn)練集在對應(yīng)屬性上的特征差異.定義屬性特征向量(Attribute Characteristic Vector,ACV),其由5個元素組成,分別為數(shù)據(jù)集中該屬性的最小值、最大值、平均值、中位值以及標(biāo)準(zhǔn)差,記作: ACVj= { att-minj,att-maxj,att-meanj,att-medianj,att-stdj},其中j = 1,…,k,ACVj為第j個屬性的屬性特征向量.計算測試集和訓(xùn)練集屬性特征向量集合,即: ACVSet-Test = { ACV1,…,ACVk},ACVSet-Train = { ACV1,…,ACVk} .在本文,屬性特征之間的差異,根據(jù)它們之間的距離度量,距離越大屬性差異越大.歐式距離是較常用的距離計算形式,由于軟件缺陷數(shù)據(jù)類型為數(shù)值型,歐式距離適用于分析數(shù)值型數(shù)據(jù)之間的特征差異.因此本文利用歐式距離計算測試集與訓(xùn)練集在對應(yīng)屬性上的特征差異,構(gòu)造屬性差異向量Dif = { d1,…,dk},其中dj為第j個屬性的差異.
設(shè)訓(xùn)練實例xi= { ai1,…,aik},計算其每個屬性與測試數(shù)據(jù)對應(yīng)屬性的差異,計算公式如下:
其中,differenceij為訓(xùn)練實例xi第j個屬性與測試集中對應(yīng)屬性差異,m為測試樣本個數(shù),表示第m個測試樣
如果differenceij≤dj,則s(aij)= 1,否則s(aij)= 0.在此給一個例子,設(shè)3個訓(xùn)練實例: x1= { 2,6,3,'false'},x2= { 7,8,2,'false'},x3= { 3,5,6,'true'} .3個測試實例: t1= { 5,2,4},t2= { 2,6,3},t3= { 1,3,2} .通過上述公式,計算訓(xùn)練集和測試集屬性特征向量集合ACVSet-Train = { { 2,7,4,3,2.6},{ 5,8,6.3,6,1.5},{ 2,6,3.7,3,2} }、ACVSet-Test = { { 1,5,3,3,2},{ 2,6,3.7,3,2},{ 2,4,3,3,1} },二者之間的屬性差異向量為Dif = { 2.5,5.4,2.4} .然后,根據(jù)式(2)、(3)計算每個訓(xùn)練實例的相似度simi.因為訓(xùn)練樣本x1的3個屬性所對應(yīng)屬性差異difference1j分別為{ 1.9,2.9,0.8},1.9<2.5,2.9<5.4,0.8<2.4,所以sim1= 3.同理sim2= 2,sim3=2.
2.2.2訓(xùn)練數(shù)據(jù)權(quán)重
為了遷移測試數(shù)據(jù)集信息本文引入數(shù)據(jù)引力概念,數(shù)據(jù)引力是指在數(shù)據(jù)分析中模擬萬有引力,目前有許多研究將數(shù)據(jù)引力方法應(yīng)用到機(jī)器學(xué)習(xí)領(lǐng)域[11,12].本文通過模擬引力定律,計算訓(xùn)練數(shù)據(jù)權(quán)重.
萬有引力定律:自然界中任何兩個物體都是相互吸引的,引力大小與兩個物體質(zhì)量乘積成正比,它們之間距離平方成反比,即本的第j個屬性.每個屬性在測試樣本中貢獻(xiàn)相同,通過比較differenceij和Dif對應(yīng)分量dj的值計算訓(xùn)練實例xi與測試集的相似度,計算相似屬性個數(shù)為: G 是引力常數(shù),m1和m2為研究對象的質(zhì)量,r是兩者之間距離.
在訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)上模擬一個“力”,假設(shè)樣本數(shù)據(jù)中每個屬性的質(zhì)量為M,那么測試樣本質(zhì)量之和為mkM,每個訓(xùn)練樣本質(zhì)量為simiM(所有相似屬性質(zhì)量之和).因此訓(xùn)練實例xi的權(quán)重與mksimiM2成正比,與(k - simi+1)2成反比(分別對應(yīng)萬有引力中兩個物體質(zhì)量的乘積和距離的平方).因此,訓(xùn)練數(shù)據(jù)權(quán)重公式為:
根據(jù)上述公式,實例xi與測試集相似度越高,賦予權(quán)重wi越大.根據(jù)數(shù)據(jù)加權(quán)計算先驗概率,先驗概率計算公式主要反映測試數(shù)據(jù)類分布.如果訓(xùn)練實例與測試數(shù)據(jù)集相似,則這個訓(xùn)練實例應(yīng)具有更多權(quán)重,那么該訓(xùn)練實例所在類也應(yīng)具有更多權(quán)重,因為這個類可以認(rèn)為更多存在于測試數(shù)據(jù)集中.根據(jù)文獻(xiàn)[13],先驗概率加權(quán)計算公式為:其中,wi為訓(xùn)練樣本xi權(quán)重,yi為其所屬類屬性值,n為訓(xùn)練實例個數(shù),ny為類別個數(shù).θ(yi,y)是一個指示函數(shù),如果yi= y則為1,否則為0.相同類訓(xùn)練數(shù)據(jù)越多,該類的先驗概率越大.對于測試實例x,第j個屬性aj的條件概率為:
其中,aij為第i個訓(xùn)練實例中第j個屬性值,nj為第j個屬性不同值數(shù)量.
由于軟件缺陷數(shù)據(jù)的屬性均為數(shù)字型,需要對其進(jìn)行離散化處理.結(jié)合以上公式,測試數(shù)據(jù)可以根據(jù)預(yù)測模型進(jìn)行分類.對于上面的例子,假設(shè)對測試數(shù)據(jù)t2= { 2,6,3}進(jìn)行分類,根據(jù)式(4),得w1=3,w2=0.5,w3=0.5.
根據(jù)式(5)計算P(y),其中ny=2,n =3,所以:
根據(jù)式(6)計算P(aj|y),依據(jù)上例有,n1=3,n2= 3,n3=3,所以:
P(a1=2|'false')=,同理
P(a2=6|'false')=
P(a1=2|'true')=
P(a3= 3 |'true')=,因此對于測試數(shù)據(jù)t2,根據(jù)式
(1)得: P('false'|t2)=0.969,P('true'|t2)=0.031.
因為0.969>0.031,t2被預(yù)測為'false'.
2.2.3WNB 算法分析
算法1給出了WNB分類器偽代碼.假設(shè)訓(xùn)練數(shù)據(jù)個數(shù)為n,測試數(shù)據(jù)個數(shù)為m,k為屬性數(shù)量.WNB分類器主要包括3個部分:相似度計算,權(quán)值計算以及構(gòu)造WNB分類器.理論上,計算訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的屬性特征向量需要運行時間分別為O(kn)和O(km),訓(xùn)練實例和測試數(shù)據(jù)的相似度計算需要運行時間為O(kmn),權(quán)重賦值需要運行時間為O(kn).最后WNB分類器構(gòu)建的運行時間為O(kn).因此WNB分類器理論運行時間為O(kmn).它與NN過濾器方法的理論運行時間相當(dāng),高于TNB方法運行時間.
由于實際的訓(xùn)練集與測試集之間存在的分布差異,因此WNB分類器具有很大的優(yōu)勢.文獻(xiàn)[7],通過計算它們之間的距離,利用最近鄰k個訓(xùn)練實例來訓(xùn)練預(yù)測模型,距離較大實例被丟棄.文獻(xiàn)[9],挖掘訓(xùn)練集和測試集之間的共有特征空間,將二者映射到該空間消減二者的差異.但本文認(rèn)為任何丟棄訓(xùn)練數(shù)據(jù)以及消減差異都可能包含有用信息.因此我們?yōu)樗杏?xùn)練樣本賦予不同權(quán)重,在此基礎(chǔ)上構(gòu)建預(yù)測模型.基于這個策略預(yù)測模型可以最大限度地利用跨項目數(shù)據(jù)信息,從而避免損失訓(xùn)練數(shù)據(jù)的問題.實驗結(jié)果表明WNB方法性能更優(yōu).
3.1數(shù)據(jù)集
本文在兩個數(shù)據(jù)集AEEEM[14]和ReLink[15]上構(gòu)造了26組跨項目缺陷預(yù)測任務(wù).自動的缺陷信息提取技術(shù)會產(chǎn)生標(biāo)記偏差,因此本文采用手工方式進(jìn)行缺陷信息提取[16],如表1和表2所示.其中AEEEM包含61個度量屬性,ReLink包含26個度量屬性,表3表4分別列出部分度量信息描述.
表1 AEEEM數(shù)據(jù)集
表2 ReLink數(shù)據(jù)集
表3 AEEEM數(shù)據(jù)集部分度量信息描述
表4 ReLink數(shù)據(jù)集部分度量信息描述
3.2實驗結(jié)果分析
本文采用查全率、查準(zhǔn)率和F1值來評估模型的預(yù)測能力.這些度量基于表5所示的混淆矩陣.
表5 預(yù)測結(jié)果
查全率(recall),正確預(yù)測缺陷模塊數(shù)與真實有缺陷模塊數(shù)比值,計算公式如下:
查準(zhǔn)率(precision),正確預(yù)測缺陷模塊數(shù)與預(yù)測缺陷模塊數(shù)比值,計算公式如下:
F1為查全率和查準(zhǔn)率的調(diào)和平均數(shù),值越高性能
(1)跨項目缺陷預(yù)測實驗結(jié)果比較分析
構(gòu)造了26組跨項目缺陷預(yù)測任務(wù),AEEEM數(shù)據(jù)集中包含20組跨項目組合: EQ->PDE、JDT->EQ、ML->JDT等.數(shù)據(jù)集ReLink中包含6組跨項目組合.由于數(shù)據(jù)集AEEEM和ReLink之間存在不同的度量屬性,因此不能交叉組合.將WNB和樸素貝葉斯分類器NB,NN(相似訓(xùn)練數(shù)據(jù)選擇K = 10)[7]、TCA[9]以及TNB[10]等方法進(jìn)行比較.
表6~7分別為本文方法與其他方法在26組跨項目組合上的預(yù)測結(jié)果對比.基于NB建立的模型預(yù)測結(jié)果較差,這是由于該方法并沒有考慮不同項目之間數(shù)據(jù)差異;基于NN和TCA建立模型的預(yù)測性能明顯優(yōu)于基于NB方法,但由于它們在構(gòu)建過程中丟棄了部分差異較大的訓(xùn)練樣本而這些訓(xùn)練中可能包含有用的信息,因此這兩種方法預(yù)測性能并不十分理想;基于TNB建立模型預(yù)測性能結(jié)果較好,但是該模型只考慮了目標(biāo)樣本屬性的極大極小值,并不能完全反映目標(biāo)數(shù)據(jù)集所有特征,只有在屬性特征差異較小時才能取得較好的預(yù)測效果;基于WNB建立的預(yù)測模型不丟棄任何訓(xùn)練樣本,并充分考慮目標(biāo)樣本的所有屬性值,使得預(yù)測性能優(yōu)于其他比較模型.在表6和表7中也展示了項目內(nèi)部缺陷預(yù)測性能(Test->Test,十折交叉驗證).通常情況下,項目內(nèi)部缺陷預(yù)測的性能優(yōu)于跨項目缺陷預(yù)測.但是WNB的預(yù)測結(jié)果較接近甚至高于項目內(nèi)部缺陷預(yù)測性能.此外使用Wilcoxon符號秩檢測方法對實驗結(jié)果F1值進(jìn)行統(tǒng)計分析,顯著性水平設(shè)置為5%,即P值小于0.05時認(rèn)為兩種比較方法的性能差異具有統(tǒng)計學(xué)意義,結(jié)果表明所有數(shù)據(jù)集中P值均小于0.05,因此WNB與其他比較方法在統(tǒng)計學(xué)意義上存在顯著差異.越好,計算公式如下:
表6 ReLink數(shù)據(jù)集跨項目缺陷預(yù)測F1結(jié)果對比
表7 AEEEM數(shù)據(jù)集跨項目缺陷預(yù)測F1結(jié)果對比
(2)基于不同訓(xùn)練數(shù)據(jù)規(guī)模實驗
探討訓(xùn)練數(shù)據(jù)規(guī)模對預(yù)測模型的影響,在數(shù)據(jù)集ReLink和AEEEM中構(gòu)造8組實驗數(shù)據(jù),選擇單個項目作為測試數(shù)據(jù)合并其他項目數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)構(gòu)造跨項目組合.數(shù)據(jù)集ReLink可以構(gòu)造3組實驗數(shù)據(jù)對: Apache + ZXing->Safe、Apache + Safe->Zxing、Safe + Zxing->Apache.同理,AEEEM數(shù)據(jù)集可構(gòu)造5組實驗數(shù)據(jù)對.訓(xùn)練規(guī)模依次從10%到100%,觀察預(yù)測模型的性能.
圖1~8分別展示了各種方法在不同數(shù)據(jù)規(guī)模上的F1值.從圖中可以看出,相對于其他方法,WNB始終有較好的F1性能.雖然TNB的F1值較接近WNB方法,但它并不是一個合理的模型,因為其只考慮屬性的最大值和最小值來捕獲不同項目數(shù)據(jù)之間的相似權(quán)重,很可能會丟失有用信息.當(dāng)訓(xùn)練樣本規(guī)模增加時,WNB可以使用更多的數(shù)據(jù)信息.因此訓(xùn)練數(shù)據(jù)量的不同顯著影響預(yù)測模型的性能,當(dāng)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)相似時,隨著訓(xùn)練數(shù)據(jù)量的增加預(yù)測模型性能提高;當(dāng)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)之間存在較大差異,隨著訓(xùn)練樣本數(shù)量逐漸增大,預(yù)測模型性能下降.
本文針對跨項目缺陷預(yù)測問題提出了一種新的基于加權(quán)貝葉斯模型的遷移學(xué)習(xí)算法WNB.該算法能夠最大限度的利用跨項目數(shù)據(jù)信息,避免現(xiàn)有預(yù)測模型丟棄大量訓(xùn)練數(shù)據(jù)的問題.在8個開源項目數(shù)據(jù)集上進(jìn)行實驗,實驗結(jié)果表明WNB算法顯著提高了跨項目缺陷預(yù)測性能.在后續(xù)工作中,我們將收集更多的開源項目來驗證WNB的通用性,同時進(jìn)一步考慮如何獲取目標(biāo)數(shù)據(jù)更多的信息提高預(yù)測性能.
參考文獻(xiàn)
[1]Pizzi N J.A fuzzy classifier approach to estimating software quality[J].Information Sciences,2013,241: 1 -11.
[2]Jing X Y,Ying S,et al.Dictionary learning based software defect prediction[A].Proceedings of the 36th International Conference on Software Engineering[C].Hyderabad: ACM,2014.414 -423.
[3]Wang J,Shen B J,Chen Y T.Compressed C4.5 models for software defect prediction[A].Proceedings of the 12th International Conference on Quality Software[C].Xi'an: IEEE,2012.13 -16.
[4]姜慧研,宗茂,劉相瑩.基于ACO-SVM的軟件缺陷預(yù)測模型的研究[J].計算機(jī)學(xué)報,2011,34(6): 1148 -1154.Jiang Hui-yan,Zong Mao,Liu Xiang-ying.Research of software defect prediction model based on ACO-SVM[J].Chinese Journal of Computers,2011,34(6): 1148 - 1154.(in Chinese)
[5]Zimmermann T,Nagappan N,et al.Cross-project defect prediction[A].Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on Foundations of Software Engineering[C].Amsterdam: ACM,2009.91 -100.
[6]Pan S J,Yang Q.A survey on transfer learning[J].IEEE Transactions on Knowledge and Data Engineering,2010,22(10): 1345 -1359.
[7]Turhan B,Menzies T,et al.On the relative value of crosscompany and within-company data for defect prediction[J].Empirical Software Engineering,2009,14(5):540 -578.
[8]Canfora G,Lucia A D,et al.Multi-objective cross-project defect prediction[A].Proceedings of the 6th IEEE International Conference on Software Testing,Verification and Validation[C].Luxembourg: IEEE,2013.252 -261.
[9]Nam J,Pan S J,et al.Transfer defect learning[A].Proceedings of the 35th International Conference on Software Engineering[C].San Francisco: ACM /IEEE,2013.382 -391.
[10]Ma Y,Luo G C,et al.Transfer learning for crosscompany software defect prediction[J].Information and Software Technology,2012,54(3): 248 -256.
[11]Peng L Z,Yang B,et al.Data gravitation based classification[J].Information Sciences,2009,179(6): 809 -819.
[12]Wang C,Chen Y Q.Improving nearest neighbor classification with simulated gravitational collapse[A].Proceedings of the First International Conference on Natural Computation[C].Changsha: Springer-Verlag,2005.845 -854.
[13]Frank E,Hall M,et al.Locally weighted naive Bayes [A].Proceedings of the 9th International Conference on Uncertainty in Artificial Intelligence[C].San Francisco: Morgan Kaufmann,2003.249 -256.
[14]D’Ambros M,Lanza M,et al.An extensive comparison of bug prediction approaches[A].Proceedings of the 7th IEEE Working Conference on Mining Software Repositories[C].Cape Town: IEEE,2010.31 -41.
[15]Wu R X,Zhang H Y,et al.Relink: recovering links between bugs and changes[A].Proceedings of the 19th ACM SIGSOFT Symposium and the Thirteenth European Conference on Foundations of Software Engineering[C].Szeged: ACM,2011.15 -25.
[16]Bird C,Bachmann A,et al.Fair and balanced?: bias in bug-fix datasets[A].Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on Foundations of Software Engineering[C].Amsterdam: ACM,2009.121 -130.
程銘男,1985年生于河南鄭州,武漢大學(xué)計算機(jī)學(xué)院博士研究生,研究方向:軟件工程、缺陷預(yù)測、機(jī)器學(xué)習(xí).
E-mail: chengming@ whu.edu.cn
毋國慶男,1954年生,教授,博士生導(dǎo)師,研究方向:軟件工程、軟件演化.
E-mail: wgq@ whu.edu.cn
Transfer Learning for Software Defect Prediction
CHENG Ming1,2,WU Guo-qing1,2,YUAN Meng-ting1,2
(1.School of Computer,Wuhan University,Wuhan,Hubei 430072,China; 2.State Key Lab of Software Engineering,Wuhan University,Wuhan,Hubei 430072,China)
Abstract:The traditional software defect prediction methods have weak adaptive ability for cross-project defect prediction,largely because of feature distribution differences between the source and target projects.In order to resolve this problem,we propose a novel weighted naive Bayes transfer learning algorithm.Firstly,the feature information of the test data and training data are collected; next,our solution computes feature differences,and transfers cross-project data differences into the weights of the training data; finally,on these weighted data,the defect prediction model is built.Our experiments are conducted on eight open-source projects,and experimental results demonstrate that our method significantly improves crossproject defect prediction performance,compared to other methods.
Key words:software defect prediction; transfer learning; machine learning; naive Bayes
作者簡介
基金項目:國家自然科學(xué)基金(No.91118003,No.61003071);深圳戰(zhàn)略性新興產(chǎn)業(yè)發(fā)展專項資金(No.JCYJ20120616135936123)
收稿日期:2014-06-06;修回日期: 2015-05-14;責(zé)任編輯:李勇鋒
DOI:電子學(xué)報URL:http: / /www.ejournal.org.cn10.3969/j.issn.0372-2112.2016.01.017
中圖分類號:TP311
文獻(xiàn)標(biāo)識碼:A
文章編號:0372-2112(2016)01-0115-08