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

基于差分演化算法的跨項(xiàng)目缺陷預(yù)測(cè)方法

2022-07-21 04:11:24范貴生陳玎樂楊星光虞慧群
關(guān)鍵詞:方法模型

范貴生,陳玎樂,楊星光,虞慧群

(1.華東理工大學(xué) 計(jì)算機(jī)科學(xué)與工程系,上海 200237; 2.上海計(jì)算機(jī)軟件技術(shù)開發(fā)中心 上海市計(jì)算機(jī)軟件評(píng)測(cè)重點(diǎn)實(shí)驗(yàn)室,上海 201112)

0 引 言

軟件缺陷預(yù)測(cè)(software defect prediction,SDP)是保證軟件質(zhì)量和提高測(cè)試效率的一種有效方法[1-3]。然而,新啟動(dòng)的軟件項(xiàng)目通常沒有足夠的缺陷數(shù)據(jù)集來構(gòu)建缺陷預(yù)測(cè)模型,為此研究人員提出了跨項(xiàng)目缺陷預(yù)測(cè)(cross-project defect prediction,CPDP)[4-6]。該方法使用源項(xiàng)目(即其它項(xiàng)目)的缺陷數(shù)據(jù)集構(gòu)建模型,對(duì)目標(biāo)項(xiàng)目進(jìn)行缺陷預(yù)測(cè)。

工作量感知的缺陷預(yù)測(cè)(effort-aware defect prediction,EADP)[7]旨在投入有限的測(cè)試資源的情況下預(yù)測(cè)出盡可能多的缺陷模塊。但是,先前的大多數(shù)研究都將工作量感知跨項(xiàng)目缺陷預(yù)測(cè)視為分類或回歸問題[8,9],這可能導(dǎo)致CPDP模型的工作量感知預(yù)測(cè)性能較差。例如將跨項(xiàng)目缺陷預(yù)測(cè)看成分類問題時(shí),缺陷預(yù)測(cè)模型的優(yōu)化目標(biāo)是最大化模型的分類性能。而工作量感知的缺陷預(yù)測(cè)旨在優(yōu)先檢查缺陷數(shù)量多或者缺陷密度高的程序模塊,其優(yōu)化目標(biāo)是盡可能準(zhǔn)確地將程序模塊按照缺陷數(shù)量或者缺陷密度進(jìn)行降序排序。因此,缺陷預(yù)測(cè)模型的分類性能和工作量感知的預(yù)測(cè)性能存在分歧。

我們以前的工作提出了一種基于差分演化的缺陷預(yù)測(cè)方法DEJIT[10]。然而,該方法僅僅探究了變更級(jí)缺陷預(yù)測(cè)場(chǎng)景下的預(yù)測(cè)性能,該方法是否在文件級(jí)跨項(xiàng)目缺陷預(yù)測(cè)場(chǎng)景有效有待進(jìn)一步驗(yàn)證。為此,本文在DEJIT基礎(chǔ)上進(jìn)一步拓展,提出了一種基于差分演化的跨項(xiàng)目缺陷預(yù)測(cè)方法DE-EACPDP,并且在82個(gè)項(xiàng)目上設(shè)計(jì)和執(zhí)行了大規(guī)模的實(shí)證研究。經(jīng)驗(yàn)性的結(jié)果表明,與5個(gè)最先進(jìn)的方法相比,DE-EACPDP可以顯著提升工作量感知跨項(xiàng)目缺陷預(yù)測(cè)的性能。

1 相關(guān)工作

1.1 跨項(xiàng)目缺陷預(yù)測(cè)(CPDP)

CPDP旨在對(duì)源項(xiàng)目進(jìn)行訓(xùn)練,生成預(yù)測(cè)模型,并對(duì)目標(biāo)項(xiàng)目進(jìn)行預(yù)測(cè)。最近幾年,許多研究人員提出了CPDP模型。Watanabe等[11]提出使用基于指標(biāo)值的補(bǔ)償方法,通過讓目標(biāo)項(xiàng)目指標(biāo)平均值等于源項(xiàng)目指標(biāo)平均值,來增加目標(biāo)項(xiàng)目和源項(xiàng)目的相似性。Camargo Cruz和Ochimizu[12]提出了類似的方法,該方法對(duì)指標(biāo)數(shù)據(jù)進(jìn)行l(wèi)og變換,使得邏輯回歸可以用設(shè)計(jì)復(fù)雜性指標(biāo)來進(jìn)行缺陷預(yù)測(cè)。Turhan等[13]提出了NN-過濾器,該過濾器使用k近鄰算法從源項(xiàng)目中為每個(gè)目標(biāo)項(xiàng)目數(shù)據(jù)選擇k個(gè)最近鄰的實(shí)例(他們的論文中選擇了10個(gè)最近鄰的實(shí)例),并去重形成新的訓(xùn)練集。Menzies等[14]使用了WHERE算法,該算法是一個(gè)快速聚類算法,可以查找具有相似特征的軟件項(xiàng)目,然后用WHICH算法對(duì)源項(xiàng)目實(shí)例進(jìn)行聚類來創(chuàng)建局部模型,他們發(fā)現(xiàn),實(shí)證軟件工程應(yīng)該關(guān)注特定的原理而不是泛化性。

1.2 工作量感知缺陷預(yù)測(cè)(EADP)

由于軟件質(zhì)量保證活動(dòng)的資源有限,開發(fā)人員檢查所有被預(yù)測(cè)模型預(yù)測(cè)為有缺陷的實(shí)例是不切實(shí)際的。因此,工作量感知缺陷預(yù)測(cè)被提了出來。Yang等[15]提出了一種工作量感知即時(shí)缺陷預(yù)測(cè)。他們發(fā)現(xiàn),在變更級(jí)環(huán)境下,無(wú)監(jiān)督模型的性能要優(yōu)于有監(jiān)督模型。Yan等[16]將Yang等的無(wú)監(jiān)督模型應(yīng)用于工作量感知文件級(jí)缺陷預(yù)測(cè)。他們發(fā)現(xiàn),在跨項(xiàng)目文件級(jí)缺陷預(yù)測(cè)的環(huán)境下,Yang等的結(jié)論成立。

2 基于差分演化算法的跨項(xiàng)目缺陷預(yù)測(cè)方法

圖1顯示了DE-EACPDP方法的流程圖。具體來說,首先,該方法提出缺陷密度百分位數(shù)平均(fault-density-percentile-average,F(xiàn)DPA)指標(biāo),該指標(biāo)可以用來評(píng)估缺陷密度的排序性能。然后,采用邏輯回歸(logistic regression,LR)和源項(xiàng)目缺陷數(shù)據(jù)集建立預(yù)測(cè)模型。為了使得LR在源項(xiàng)目數(shù)據(jù)集上獲得最大的FDPA,采用差分演化(differential evolution,DE)算法搜索最優(yōu)的LR系數(shù)。最后,使用最優(yōu)的LR對(duì)目標(biāo)項(xiàng)目進(jìn)行缺陷預(yù)測(cè)。本節(jié)將從缺陷密度百分位數(shù)平均、目標(biāo)函數(shù)和差分演化三方面介紹DE-EACPDP。

圖1 DE-EACPDP的流程

2.1 缺陷密度百分位數(shù)平均(FDPA)

為了更穩(wěn)定地反映不同模型在所有臨界值下的效益,Weyuker等[17]提出了缺陷百分位數(shù)平均(fault-percentile-average,F(xiàn)PA)指標(biāo)。他們認(rèn)為,如果一個(gè)模型的預(yù)測(cè)性能良好,那么很多有缺陷的實(shí)例應(yīng)該出現(xiàn)在實(shí)例序列的頂部或者附近,F(xiàn)PA值也應(yīng)該越大。與FPA類似,本文在工作量感知跨項(xiàng)目缺陷預(yù)測(cè)中提出FDPA指標(biāo)。考慮項(xiàng)目中有n個(gè)實(shí)例f1,f2,…,fn, 每個(gè)實(shí)例對(duì)應(yīng)的預(yù)測(cè)值分別為y1,y2,…,yn, 對(duì)于任意一個(gè)實(shí)例fi,其中i∈[1,n], 如果fi被預(yù)測(cè)為有缺陷的,則將其yi設(shè)置為1,否則設(shè)置為0。實(shí)例fi的缺陷密度定義為

(1)

其中,loci為實(shí)例fi的代碼行。那么所有實(shí)例的缺陷總密度定義為

(2)

將所有實(shí)例f按照缺陷密度d(fi)的降序重新排序,得到新的實(shí)例序列nf1,nf2,…,nfn, 對(duì)于任意一個(gè)實(shí)例nfj,其中j∈[1,n], 前m個(gè)實(shí)例中缺陷密度的比例定義為

(3)

將FDPA定義為Pm的百分位數(shù)平均值,即

(4)

FDPA值越高,表明缺陷密度越高的實(shí)例在實(shí)例序列中的位置越靠前。因此,F(xiàn)DPA可以反映預(yù)測(cè)模型的排序性能。

2.2 目標(biāo)函數(shù)

DE-EACPDP使用LR來進(jìn)行缺陷預(yù)測(cè)。傳統(tǒng)的LR模型的損失函數(shù)通常是用對(duì)數(shù)損失函數(shù),以這類損失函數(shù)為優(yōu)化目標(biāo)的LR模型往往在非工作量感知性能上取得不錯(cuò)的結(jié)果,例如精確率、召回率等,而在工作量感知性能上則不一定能取得很好的結(jié)果。因此,為了提升工作量感知預(yù)測(cè)性能,本文使用DE算法來搜索最優(yōu)的LR系數(shù)(即LR的最優(yōu)權(quán)重向量W)

(5)

算法1:目標(biāo)函數(shù)的計(jì)算過程

輸入:LR的隨機(jī)權(quán)重向量W

源項(xiàng)目Ps

輸出:FDPA值

(1) 開始

(2) LR=logistic_regression(W)

(3)res=LR.predict(Ps)

(4) # 計(jì)算FDPA值

(5)FDPA=calculate(Ps,res)

(6) returnFDPA

(7) 結(jié)束

而在使用DE算法之前,需要給其定義一個(gè)目標(biāo)函數(shù)。DE算法的目標(biāo)函數(shù)是最大化源項(xiàng)目的FDPA值,該目標(biāo)函數(shù)可由如下公式進(jìn)行描述:

目標(biāo)函數(shù)的計(jì)算過程如算法1所示。輸入項(xiàng)是LR的隨機(jī)權(quán)重向量W和源項(xiàng)目Ps。首先,用輸入的W構(gòu)建邏輯回歸模型LR。然后,用LR對(duì)輸入的Ps進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果res。最后,根據(jù)式(4)來計(jì)算目標(biāo)函數(shù)。

2.3 差分演化(DE)

設(shè)置完目標(biāo)函數(shù)之后,使用演化算法來搜索最優(yōu)的LR系數(shù)。先前的研究結(jié)果表明[18],DE算法比其它元啟發(fā)式算法更好。因此,本文使用DE算法來搜索最優(yōu)的LR系數(shù)。DE算法是由Storn和Price[19]提出的,該算法通過交叉、變異和選擇操作找到目標(biāo)函數(shù)的最優(yōu)解,它的本質(zhì)是一種多目標(biāo)優(yōu)化算法。DE算法如算法2所示。

在初始化階段,假設(shè)每個(gè)實(shí)例有x個(gè)特征,差分演化定義的種群個(gè)數(shù)為NP個(gè),那么可以為每個(gè)個(gè)體(在本實(shí)驗(yàn)中個(gè)體就是LR的權(quán)重向量)定義x+1個(gè)基因,并且這些基因是0到1之間的隨機(jī)值,然后根據(jù)2.2節(jié)中的算法1為每個(gè)個(gè)體分別計(jì)算相對(duì)應(yīng)的FDPA值。

在演化階段,DE算法首先會(huì)判斷是否滿足終止條件。如果并未滿足終止條件,則會(huì)對(duì)W中的每個(gè)個(gè)體都進(jìn)行變異、交叉和選擇。在本文中,變異操作采用常用的’DE/best/1’變異操作,交叉操作采用二項(xiàng)式交叉操作。

算法2:差分進(jìn)化的過程

輸入:源項(xiàng)目Ps

種群個(gè)數(shù)NP

雜交概率CR

輸出:最優(yōu)權(quán)重向量Wbest

(1)開始

(2)W=null

(3)FDPA=null

(4) # 初始化種群

(5)forifrom 1 toNPdo

(6) # 每個(gè)個(gè)體生成x+1個(gè)隨機(jī)值

(7)W[i]=random(x+1)

(8)FDPA[i]=算法1(W[i],Ps)

(9)endfor

(10)forifrom 1 to number of iterationsdo

(11)Wnew=null

(12)FDPAnew=null

(13) # 變異交叉

(14)forjfrom 1 toNPdo

(15)krandint=random.randint(0,x)

(16)best=FDPA.index(max(FDPA))

(17) [rd1,rd2]=random.sample(range(NP),2)

(18)forkfrom 1 toxdo

(19) # 最佳個(gè)體的第krandint個(gè)特征必定被遺傳

(21) #F是縮放因子

(22)Wnew[j][k]=W[best][k]+F*(W[rd1][k]-W[rd2][k])

(23)else:

(24)Wnew[j][k]=W[j][k]

(25)endif

(26)endfor

(27)endfor

(28) # 選擇

(29)forjfrom 1 toNPdo

(30)FDPAnew[j]=算法1(Wnew[j],Ps)

(31)ifFDPAnew[j]>FDPA[j]:

(32)W[j]=Wnew[j]

(33)FDPA[j]=FDPAnew[j]

(34)endif

(35)endfor

(36)endfor

(37)returnW中FDPA最大的個(gè)體Wbest

(38) 結(jié)束

具體來說,DE通過差分策略來實(shí)現(xiàn)個(gè)體的變異,變異交叉操作會(huì)以CP概率從W中選擇一個(gè)最優(yōu)父代個(gè)體的基因和兩個(gè)隨機(jī)父代個(gè)體的基因差向量縮放后組合成一個(gè)新的子代個(gè)體基因。為了讓子代帶有更多最優(yōu)父代個(gè)體的基因,變異交叉操作會(huì)以100%概率在某一基因上進(jìn)行上述的組合。選擇操作是在第j個(gè)父代個(gè)體和第j個(gè)子代個(gè)體中根據(jù)FDPA值選擇更好的個(gè)體成為第j個(gè)新的父代個(gè)體,這樣可以確保每次迭代結(jié)束后個(gè)體數(shù)量不發(fā)生改變。當(dāng)演化結(jié)束后,選擇最優(yōu)的W作為L(zhǎng)R的最優(yōu)權(quán)重向量。

3 實(shí)驗(yàn)設(shè)計(jì)

本實(shí)驗(yàn)使用Python3.6.8作為項(xiàng)目解釋器。具體的包版本信息如下所示:numpy (1.18.5)、pandas (1.0.4)、scikit-learn (0.23.1)、imblanced-learn (0.7.0)、scipy (1.4.1)。實(shí)驗(yàn)環(huán)境信息如下所示:操作系統(tǒng)是Windows 10家庭版;處理器是Inter?CoreTMi7-6700HQ CPU @ 2.60 GHz 2.59 GHz;內(nèi)存是16 GB(15.9 GB可用);系統(tǒng)類型是64位操作系統(tǒng),基于x64的處理器。

3.1 實(shí)驗(yàn)數(shù)據(jù)集

實(shí)驗(yàn)采用了AEEEM、NASA、PROMISE和RELINK這4個(gè)數(shù)據(jù)集的82個(gè)項(xiàng)目的缺陷數(shù)據(jù)集,這些數(shù)據(jù)集被廣泛地用于以前CPDP的研究[20]。表1展示了數(shù)據(jù)集的名稱、數(shù)據(jù)集中的項(xiàng)目數(shù)、指標(biāo)數(shù)分布、實(shí)例數(shù)分布以及缺陷百分比分布。DE-EACPDP選取代碼行作為工作量指標(biāo)。在AEEEM中,表示代碼行的指標(biāo)名稱為numberOfLinesOfCode;在NASA中,表示代碼行的指標(biāo)名稱為L(zhǎng)OC_EXECUTABLE,在PROMISE中,表示代碼行的指標(biāo)名稱為loc;在RELINK中,表示代碼行的指標(biāo)名稱為CountLineCode。

表1 實(shí)驗(yàn)數(shù)據(jù)集

3.2 性能指標(biāo)

實(shí)驗(yàn)使用CostEffort@20%、CostEffort@1000、CostEffort@2000和Popt這4個(gè)工作量感知性能指標(biāo)來評(píng)估DE-EACPDP方法的性能。

CostEffort@L指的是當(dāng)檢查所有實(shí)例中的L行代碼行時(shí),檢查到的有缺陷實(shí)例在所有缺陷實(shí)例中的占比。在L相同的情況下,CostEffort@L越高,表示可以檢測(cè)出更多有缺陷的實(shí)例。因此,CostEffort@20%是指當(dāng)檢查了20%代碼行時(shí),檢查到的有缺陷實(shí)例的占比;CostEffotrt@1000是指當(dāng)檢查了1000行代碼行時(shí),檢查到的有缺陷實(shí)例的占比;CostEffotrt@2000是指當(dāng)檢查了2000行代碼行時(shí),檢查到的有缺陷實(shí)例的占比。

Popt反映的是最優(yōu)模型和預(yù)測(cè)模型在基于工作量的累計(jì)提升圖之間的差異。提升圖如圖2所示,橫坐標(biāo)是花費(fèi)的工作量(在本文中是代碼行),縱坐標(biāo)是開發(fā)人員在花費(fèi)指定工作量時(shí)檢查出的缺陷實(shí)例在所有缺陷實(shí)例中的占比。為了計(jì)算Popt,需要4條曲線:最優(yōu)模型曲線O、預(yù)測(cè)模型曲線P、隨機(jī)模型曲線R和最差模型曲線W。在最優(yōu)模型中,所有實(shí)例按實(shí)際缺陷密度的降序進(jìn)行排序。在預(yù)測(cè)模型中,所有實(shí)例按預(yù)測(cè)缺陷密度的降序進(jìn)行排序。在隨機(jī)模型曲線中,檢查出的缺陷實(shí)例在所有缺陷實(shí)例中的占比與開發(fā)人員花費(fèi)的工作量成正比。在最差模型中,所有實(shí)例按實(shí)際缺陷密度的升序進(jìn)行排序。對(duì)于給定的預(yù)測(cè)模型M,其Popt的計(jì)算公式為

(6)

其中,函數(shù)S(p1,p2) 表示模型曲線p1和模型曲線p2之間的面積。例如,S(O,P) 表示最優(yōu)模型曲線O和預(yù)測(cè)模型曲線P之間的面積,S(P,R) 表示預(yù)測(cè)模型曲線P和隨機(jī)模型曲線R之間的面積,S(R,W) 表示隨機(jī)模型曲線R和最差模型曲線W之間的面積。由式(6)可知,Popt(M) 越大,S(O,P) 越小,即預(yù)測(cè)模型和最優(yōu)模型之間的差異就越小。

圖2 工作量感知累計(jì)提升圖的一個(gè)示例

3.3 基準(zhǔn)方法

本文選擇了5個(gè)方法作為基準(zhǔn)方法來與本文提出的DE-EACPDP方法進(jìn)行對(duì)比。這5個(gè)方法分別是Camargo Cruz和Ochimizu[12]提出的CamargoCruz09-DT、Turhan等[13]提出的Turhan09-DT、Menzies等[14]提出的Men-zies11-RF、Watanabe等[11]提出的Watanabe08-DT和ManualUP。

3.4 數(shù)據(jù)預(yù)處理和參數(shù)設(shè)置

DE-EACPDP方法的預(yù)處理階段包括指標(biāo)匹配和重采樣。指標(biāo)個(gè)數(shù)不同的源項(xiàng)目和目標(biāo)項(xiàng)目在進(jìn)行指標(biāo)匹配后指標(biāo)個(gè)數(shù)變得相同,從而可以在這兩個(gè)項(xiàng)目上使用CPDP模型,本文在NASA數(shù)據(jù)集上匹配出了18個(gè)相同的指標(biāo),在RELINK數(shù)據(jù)集上匹配出了40個(gè)相同的指標(biāo)。重采樣方法為隨機(jī)下采樣,該方法從多數(shù)類中隨機(jī)抽取一小部分?jǐn)?shù)據(jù),與少數(shù)類合成新的數(shù)據(jù)集,從而減少了數(shù)據(jù)分布不平衡帶來的影響。對(duì)于差分演化算法的參數(shù)設(shè)置,本文采用scipy.optimize.differential_evolution函數(shù)的默認(rèn)設(shè)置。

4 實(shí)驗(yàn)結(jié)果

在表2~表5中,CamargoCruz09-DT方法簡(jiǎn)寫為CDT,Turhan09-DT方法簡(jiǎn)寫為TDT,Menzies11-RF方法簡(jiǎn)寫為MRF,Watanabe08-DT方法簡(jiǎn)寫為WDT,ManualUP方法簡(jiǎn)寫為MUP,本文所提出的DE-EACPDP方法簡(jiǎn)寫為DE。通過簡(jiǎn)寫使得表格更整潔美觀。

在CostEffort@20%上將DE-EACPDP和基準(zhǔn)方法進(jìn)行了比較,表2展示了實(shí)驗(yàn)結(jié)果。最后兩行總結(jié)了“平均值”和“W/D/L”。基于“平均值”,在檢查了20%代碼行的情況下,DE-EACPDP能平均找出36.3%的缺陷實(shí)例,與CamargoCruz09-DT、Turhan09-DT、Menzies11-RF、Watanabe08-DT和ManualUP相比,分別提升了59.21%、59.21%、66.51%、62.78%、46.37%;基于“W/D/L”,DE-EACPDP在所有數(shù)據(jù)集上的性能都優(yōu)于5個(gè)基準(zhǔn)方法。

在CostEffort@1000上將DE-EACPDP和基準(zhǔn)方法進(jìn)行了比較,表3展示了實(shí)驗(yàn)結(jié)果。最后兩行總結(jié)了“平均值”和“W/D/L”。基于“平均值”,在檢查了1000行代碼行的情況下,DE-EACPDP能平均找出13.3%的缺陷實(shí)例,與CamargoCruz09-DT、Turhan09-DT、Menzies11-RF、Watanabe08-DT和ManualUP相比,分別提升了51.14%、70.51%、66.25%、82.19%、6.40%;基于“W/D/L”,DE-EACPDP在大部分?jǐn)?shù)據(jù)集上的性能都優(yōu)于5個(gè)基準(zhǔn)方法。

表2 DE-EACPDP和基準(zhǔn)方法在 CostEffort@20%上的比較

表3 DE-EACPDP和基準(zhǔn)方法在 CostEffort@1000上的比較

在CostEffort@2000上將DE-EACPDP和基準(zhǔn)方法進(jìn)行了比較,表4展示了實(shí)驗(yàn)結(jié)果。最后兩行總結(jié)了“平均值”和“W/D/L”。基于“平均值”,在檢查了2000行代碼行的情況下,DE-EACPDP能平均找出21.0%的缺陷實(shí)例,與CamargoCruz09-DT、Turhan09-DT、Menzies11-RF、Watanabe08-DT和ManualUP相比,分別提升了90.91%、70.73%、55.56%、61.54%、28.83%;基于“W/D/L”,DE-EACPDP在大部分?jǐn)?shù)據(jù)集上的性能都優(yōu)于5個(gè)基準(zhǔn)方法。

表4 DE-EACPDP和基準(zhǔn)方法在 CostEffort@2000上的比較

在Popt上將DE-EACPDP和基準(zhǔn)方法進(jìn)行了比較,表5展示了實(shí)驗(yàn)結(jié)果。最后兩行總結(jié)了“平均值”和“W/D/L”。基于“平均值”, DE-EACPDP的Popt平均值為0.633,與CamargoCruz09-DT、Turhan09-DT、Menzies11-RF、Watanabe08-DT和ManualUP相比,分別提升了41.29%、55.15%、48.94%、32.43%、5.50%。

表5 DE-EACPDP和基準(zhǔn)方法在Popt上的比較

4個(gè)數(shù)據(jù)集中代表性的累計(jì)提升圖如圖3~圖6所示,圖中的實(shí)線介于虛線和點(diǎn)劃線之間,這表明本文提出的預(yù)測(cè)模型的工作量感知性能在最優(yōu)模型和隨機(jī)模型之間。

圖3 AEEEM數(shù)據(jù)集中PDEUI3.4.1 預(yù)測(cè)Equinox3.4的累計(jì)提升

圖4 NASA數(shù)據(jù)集中MC2預(yù)測(cè)PC5的累計(jì)提升

圖5 PROMISE數(shù)據(jù)集中xerces-1.4預(yù)測(cè) log4j-1.2的累計(jì)提升

圖6 RELINK數(shù)據(jù)集中zxing1.6預(yù)測(cè) Apache2.0的累計(jì)提升

5 效度威脅

5.1 建構(gòu)效度

本文選擇了scipy.optimize.differential_evolution函數(shù)的默認(rèn)設(shè)置進(jìn)行差分演化。然而不同的參數(shù)設(shè)置可能會(huì)產(chǎn)生不同的實(shí)驗(yàn)結(jié)果。此外,雖然本文使用的數(shù)據(jù)集都經(jīng)過了一些數(shù)據(jù)清洗,例如,NASA數(shù)據(jù)集用的是預(yù)處理過的版本,PROMISE數(shù)據(jù)集用的是JURECZKO版本,RELINK數(shù)據(jù)集用的是golden版本。但是,即便經(jīng)過了清洗也不能保證數(shù)據(jù)集一定是完整、完全準(zhǔn)確的。上述兩點(diǎn)都會(huì)帶來潛在的建構(gòu)效度威脅。

5.2 內(nèi)部效度

本文使用最大化FDPA值作為差分演化的優(yōu)化目標(biāo)函數(shù)。然而,如果使用其它指標(biāo)作為差分演化的優(yōu)化目標(biāo)函數(shù),可能會(huì)得到性能更好的模型。所以考慮其它指標(biāo)作為目標(biāo)函數(shù)是未來工作值得研究的地方。此外,本文的源代碼中可能存在一些錯(cuò)誤,然而源代碼本身也不是很復(fù)雜,所以,在檢查了多次源代碼后,該威脅應(yīng)該會(huì)降低。

5.3 外部效度

本文在來自4個(gè)數(shù)據(jù)集的82個(gè)項(xiàng)目上對(duì)DE-EACPDP進(jìn)行了評(píng)估,并且提出的方法在這些項(xiàng)目上取得了不錯(cuò)的預(yù)測(cè)性能。但是,并不知道DE-EACPDP方法是否在其它數(shù)據(jù)集的其它項(xiàng)目上仍然能取得不錯(cuò)的性能。例如不同的公司由于業(yè)務(wù)不同,產(chǎn)生的商業(yè)數(shù)據(jù)集可能存在很大的差異,這可能會(huì)對(duì)通用模型的泛化能力產(chǎn)生影響。因此,未來可以在其它開源數(shù)據(jù)集以及商業(yè)數(shù)據(jù)集上對(duì)DE-EACPDP進(jìn)行評(píng)估來驗(yàn)證實(shí)驗(yàn)結(jié)果的泛化能力,并且針對(duì)商業(yè)數(shù)據(jù)集可能帶來的指標(biāo)差異較大的問題,可以借助指標(biāo)相似度,將正相關(guān)的多個(gè)指標(biāo)縮減成一個(gè)指標(biāo),降低不同商業(yè)數(shù)據(jù)集之間的差異,從而減小對(duì)通用模型泛化能力的影響。

6 結(jié)束語(yǔ)

本文提出了一種基于差分演化的跨項(xiàng)目缺陷預(yù)測(cè)方法DE-EACPDP。該方法首先提出了一個(gè)缺陷密度百分位數(shù)平均(FDPA)作為訓(xùn)練集上的優(yōu)化目標(biāo),然后采用LR建立預(yù)測(cè)模型,并且使用差分演化算法計(jì)算最優(yōu)的LR系數(shù)。經(jīng)驗(yàn)性的結(jié)果表明,DE-EACPDP在工作量感知的評(píng)估指標(biāo)上顯著優(yōu)于最先進(jìn)的5個(gè)預(yù)測(cè)模型。

為了保證實(shí)驗(yàn)的可重復(fù)性,并且進(jìn)一步推動(dòng)軟件缺陷預(yù)測(cè)的研究,我們?cè)贕itHub上發(fā)布了所有的實(shí)驗(yàn)代碼和實(shí)驗(yàn)數(shù)據(jù)https://github.com/chendingle/DE-EACPDP。

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
學(xué)習(xí)方法
3D打印中的模型分割與打包
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 91高清在线视频| 无码有码中文字幕| 亚洲天堂久久久| 国产精品刺激对白在线| 久久国产乱子伦视频无卡顿| 国产精品无码翘臀在线看纯欲| 亚洲国产成人综合精品2020 | 国产主播在线观看| 欧美精品在线看| 日韩亚洲综合在线| 这里只有精品免费视频| 国产91丝袜| 伊人成人在线视频| 综合色在线| 日韩东京热无码人妻| 亚洲女人在线| 呦系列视频一区二区三区| 喷潮白浆直流在线播放| 欧美精品v欧洲精品| 四虎影视8848永久精品| 亚洲天堂网在线播放| 97成人在线视频| 亚洲国产成人久久精品软件| 欧美精品不卡| 久视频免费精品6| 草草影院国产第一页| 亚洲色欲色欲www网| 国产女人在线观看| 免费在线成人网| 国产精品蜜臀| 亚洲男人的天堂在线观看| 九色在线视频导航91| 亚洲a级在线观看| 国产成人亚洲精品无码电影| 九九九国产| 国产精品熟女亚洲AV麻豆| 国产精品内射视频| 亚洲视频影院| 亚洲日本韩在线观看| 久爱午夜精品免费视频| 国产精品免费p区| 免费高清a毛片| 色综合久久无码网| 亚洲欧美一区在线| 伊人成人在线视频| 亚洲男人在线天堂| 97在线观看视频免费| 国产亚洲视频在线观看| 成人永久免费A∨一级在线播放| 亚洲国产精品无码久久一线| 99热精品久久| 国产天天色| 精品欧美日韩国产日漫一区不卡| 国产高清在线丝袜精品一区| 无码一区二区波多野结衣播放搜索| 国产一区二区三区在线观看免费| 毛片一区二区在线看| 国产成人无码综合亚洲日韩不卡| 国产色婷婷| 日本成人在线不卡视频| 国产一级视频在线观看网站| 手机成人午夜在线视频| 福利视频一区| 欧美一级夜夜爽www| 无码精品国产dvd在线观看9久| 国产精品丝袜在线| 成人午夜网址| 国产男女免费完整版视频| 久久一级电影| 夜夜操国产| jizz在线免费播放| 国产原创自拍不卡第一页| 激情亚洲天堂| 国产裸舞福利在线视频合集| 久久黄色视频影| 3p叠罗汉国产精品久久| 亚洲国产中文欧美在线人成大黄瓜 | 美女国产在线| 激情视频综合网| 伊人AV天堂| 天天综合网站| 国产精品自拍露脸视频|