亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2022-07-21 04:11:24范貴生陳玎樂(lè)楊星光虞慧群
        關(guān)鍵詞:工作量實(shí)例差分

        范貴生,陳玎樂(lè),楊星光,虞慧群

        (1.華東理工大學(xué) 計(jì)算機(jī)科學(xué)與工程系,上海 200237; 2.上海計(jì)算機(jī)軟件技術(shù)開(kāi)發(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)目通常沒(méi)有足夠的缺陷數(shù)據(jù)集來(lái)構(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è)視為分類或回歸問(wèn)題[8,9],這可能導(dǎo)致CPDP模型的工作量感知預(yù)測(cè)性能較差。例如將跨項(xiàng)目缺陷預(yù)測(cè)看成分類問(wèn)題時(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ǔ)償方法,通過(guò)讓目標(biāo)項(xiàng)目指標(biāo)平均值等于源項(xiàng)目指標(biāo)平均值,來(lái)增加目標(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)來(lái)進(jìn)行缺陷預(yù)測(cè)。Turhan等[13]提出了NN-過(guò)濾器,該過(guò)濾器使用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)行聚類來(lái)創(chuàng)建局部模型,他們發(fā)現(xiàn),實(shí)證軟件工程應(yīng)該關(guān)注特定的原理而不是泛化性。

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

        由于軟件質(zhì)量保證活動(dòng)的資源有限,開(kāi)發(fā)人員檢查所有被預(yù)測(cè)模型預(yù)測(cè)為有缺陷的實(shí)例是不切實(shí)際的。因此,工作量感知缺陷預(yù)測(cè)被提了出來(lái)。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方法的流程圖。具體來(lái)說(shuō),首先,該方法提出缺陷密度百分位數(shù)平均(fault-density-percentile-average,F(xiàn)DPA)指標(biāo),該指標(biāo)可以用來(lái)評(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來(lái)進(jìn)行缺陷預(yù)測(cè)。傳統(tǒng)的LR模型的損失函數(shù)通常是用對(duì)數(shù)損失函數(shù),以這類損失函數(shù)為優(yōu)化目標(biāo)的LR模型往往在非工作量感知性能上取得不錯(cuò)的結(jié)果,例如精確率、召回率等,而在工作量感知性能上則不一定能取得很好的結(jié)果。因此,為了提升工作量感知預(yù)測(cè)性能,本文使用DE算法來(lái)搜索最優(yōu)的LR系數(shù)(即LR的最優(yōu)權(quán)重向量W)

        (5)

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

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

        源項(xiàng)目Ps

        輸出:FDPA值

        (1) 開(kāi)始

        (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ì)算過(guò)程如算法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)來(lái)計(jì)算目標(biāo)函數(shù)。

        2.3 差分演化(DE)

        設(shè)置完目標(biāo)函數(shù)之后,使用演化算法來(lái)搜索最優(yōu)的LR系數(shù)。先前的研究結(jié)果表明[18],DE算法比其它元啟發(fā)式算法更好。因此,本文使用DE算法來(lái)搜索最優(yōu)的LR系數(shù)。DE算法是由Storn和Price[19]提出的,該算法通過(guò)交叉、變異和選擇操作找到目標(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)化的過(guò)程

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

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

        雜交概率CR

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

        (1)開(kāi)始

        (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é)束

        具體來(lái)說(shuō),DE通過(guò)差分策略來(lái)實(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)來(lái)評(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)是開(kāi)發(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í)例中的占比與開(kāi)發(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)方法來(lái)與本文提出的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ù)分布不平衡帶來(lái)的影響。對(duì)于差分演化算法的參數(shù)設(shè)置,本文采用scipy.optimize.differential_evolution函數(shù)的默認(rèn)設(shè)置。

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

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

        在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”?;凇捌骄怠保跈z查了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)過(guò)了一些數(shù)據(jù)清洗,例如,NASA數(shù)據(jù)集用的是預(yù)處理過(guò)的版本,PROMISE數(shù)據(jù)集用的是JURECZKO版本,RELINK數(shù)據(jù)集用的是golden版本。但是,即便經(jīng)過(guò)了清洗也不能保證數(shù)據(jù)集一定是完整、完全準(zhǔn)確的。上述兩點(diǎn)都會(huì)帶來(lái)潛在的建構(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ù)是未來(lái)工作值得研究的地方。此外,本文的源代碼中可能存在一些錯(cuò)誤,然而源代碼本身也不是很復(fù)雜,所以,在檢查了多次源代碼后,該威脅應(yīng)該會(huì)降低。

        5.3 外部效度

        本文在來(lái)自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)生影響。因此,未來(lái)可以在其它開(kāi)源數(shù)據(jù)集以及商業(yè)數(shù)據(jù)集上對(duì)DE-EACPDP進(jìn)行評(píng)估來(lái)驗(yàn)證實(shí)驗(yàn)結(jié)果的泛化能力,并且針對(duì)商業(yè)數(shù)據(jù)集可能帶來(lái)的指標(biāo)差異較大的問(wèn)題,可以借助指標(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。

        猜你喜歡
        工作量實(shí)例差分
        應(yīng)用地表覆蓋數(shù)據(jù)估算LiDAR內(nèi)業(yè)工作量的方法研究
        數(shù)列與差分
        一個(gè)兼顧教學(xué)科研的高校教師績(jī)效考核模型及其應(yīng)用
        思科發(fā)布云計(jì)算市場(chǎng)發(fā)展報(bào)告
        基于差分隱私的大數(shù)據(jù)隱私保護(hù)
        網(wǎng)上互動(dòng)教學(xué)工作量管理的困境及對(duì)策
        相對(duì)差分單項(xiàng)測(cè)距△DOR
        太空探索(2014年1期)2014-07-10 13:41:50
        完形填空Ⅱ
        完形填空Ⅰ
        差分放大器在生理學(xué)中的應(yīng)用
        亚洲天堂一二三四区在线| 无遮挡边吃摸边吃奶边做| 国产免费AV片在线看| 日本女优中文字幕在线观看| 那有一级内射黄片可以免费看 | 亚洲福利网站在线一区不卡| 国产内射爽爽大片| 婷婷中文字幕综合在线| 曰韩精品无码一区二区三区| 男女啪啪免费视频网址 | 在线观看国产av一区二区| 亚洲欧美中文日韩在线v日本| 亚洲成a v人片在线观看| 国产成人精品午夜福利免费APP| 区三区久久精品水蜜桃av| 末成年人av一区二区| 麻豆成人精品国产免费| 国产欧美日韩综合一区二区三区| 亚洲一区二区三区资源| 丰满人妻熟妇乱又仑精品| 99久久人人爽亚洲精品美女| 熟妇激情内射com| 久久亚洲精品成人| 国产精品av网站在线| 亚洲欧美中文日韩在线v日本| 久久久精品人妻一区二区三区蜜桃 | 两个人看的www中文在线观看| 久久91精品国产91久久麻豆| 开心久久婷婷综合中文字幕| 午夜福利试看120秒体验区| 百合av一区二区三区| 亚洲国产综合精品一区最新| 国产99视频精品免视看7| 中文亚洲av片在线观看不卡| 久久国产av在线观看| 91精品国产色综合久久| 乌克兰少妇xxxx做受野外| 欧美精品aaa久久久影院| 永久免费观看的黄网站在线| 中文字幕一区日韩精品| 一级片久久|