国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法

2021-10-28 06:02:10陳小穎
計算機(jī)工程與應(yīng)用 2021年20期
關(guān)鍵詞:特征向量實例預(yù)測

趙 宇,祝 義,2,于 巧,陳小穎

1.江蘇師范大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116

2.南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 210016

軟件缺陷預(yù)測是當(dāng)前軟件測試和機(jī)器學(xué)習(xí)緊密結(jié)合的一個研究熱點,目的是期望在項目開發(fā)的早期階段預(yù)測出某些模塊中是否含有缺陷,從而合理地分配測試資源,最大化資源利用率。目前大部分的學(xué)術(shù)研究都關(guān)注項目內(nèi)缺陷預(yù)測(Within Project Defect Prediction,WPDP)[1],也就是選擇同一項目的部分?jǐn)?shù)據(jù)集作為訓(xùn)練數(shù)據(jù),剩下的部分作為測試數(shù)據(jù)來構(gòu)建模型。但是一方面這種模型的普適性太差,不能用于預(yù)測其他項目;另一方面就是實際開發(fā)中的項目可能是一個新啟動的軟件項目,沒有歷史數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),因此無法構(gòu)建缺陷預(yù)測模型。針對此實際問題有學(xué)者提出了跨項目缺陷預(yù)測(Cross Project Defect Prediction,CPDP)[2-3],從其他項目中選擇合適的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)來訓(xùn)練缺陷預(yù)測模型,然后用于預(yù)測目標(biāo)項目是否含有缺陷。Herbold[4]提出了兩種基于距離相似性的源項目訓(xùn)練數(shù)據(jù)集選擇策略。但是他們的方法與項目內(nèi)缺陷預(yù)測的性能存在差距。李勇等人[5]提出了一種基于目標(biāo)項目的兩階段篩選訓(xùn)練數(shù)據(jù)集的方法,但是訓(xùn)練出的模型與項目內(nèi)預(yù)測相比性能提升有限。MA等人[6]從為源項目中的實例設(shè)置權(quán)重的角度出發(fā),提出一種新穎的跨項目缺陷預(yù)測方法TNB(Transfer Na?ve Bayes),該方法通過對目標(biāo)項目數(shù)據(jù)的分布進(jìn)行預(yù)測,來為候選源項目中的實例設(shè)置權(quán)重,但該方法僅適用于樸素貝葉斯模型。針對現(xiàn)有研究的不足,本文對訓(xùn)練數(shù)據(jù)集的選擇方法進(jìn)行了改進(jìn),提出了一種基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法。

1 相關(guān)工作

跨項目缺陷預(yù)測是使用其他項目的數(shù)據(jù)來預(yù)測目標(biāo)項目中是否存在軟件缺陷,此前有大量工作證實了跨項目缺陷預(yù)測的可行性[7-8]。但是隨著公共數(shù)據(jù)集數(shù)量的增加,在如此龐大的數(shù)據(jù)存儲庫中找到與目標(biāo)項目中的實例相似的訓(xùn)練數(shù)據(jù)變得十分困難,因此有研究人員從訓(xùn)練數(shù)據(jù)集簡化的角度來選擇與目標(biāo)項目最相似的源項目和最相似的實例。Zimmermann等人[8]從項目的上下文因素來計算項目的相似性,將622對跨項目預(yù)測結(jié)果與項目之間的相似性相關(guān)聯(lián),構(gòu)建出決策樹為候選源項目集的選擇提供了參考。He等人[9]探討了源項目數(shù)據(jù)集屬性的分布特征對于選擇合適的訓(xùn)練數(shù)據(jù)集進(jìn)行跨項目缺陷預(yù)測是否有價值,他們考慮了16種不同的分布特征,其中眾數(shù)、中位數(shù)、均值和調(diào)和平均數(shù)等分布特征可以描述屬性取值的中心度量趨勢,而極差、異眾比率、四分位距、標(biāo)準(zhǔn)差和變異系數(shù)可以描述屬性取值的離散趨勢度量,偏度和峰度可以描述屬性取值的分布形態(tài)。Turhan等人[10]從實例級別為目標(biāo)項目里的每個實例從源項目中挑選距離最近的k個實例。從測試集角度出發(fā)選擇訓(xùn)練數(shù)據(jù),使用的是k-NN算法,如果目標(biāo)項目中有100個實例,則最終選出100×k個實例作為訓(xùn)練數(shù)據(jù)集。Peters等人[11]也是從實例級別考慮,但是他們認(rèn)為訓(xùn)練數(shù)據(jù)集會提供比測試數(shù)據(jù)集更多的有關(guān)缺陷的信息,因此針對源項目中的每個實例,從目標(biāo)項目中識別出與之距離最近的實例并進(jìn)行標(biāo)記,隨后對于目標(biāo)項目中已標(biāo)記的實例,從源項目中選出與之距離最近的實例并添加到最終的訓(xùn)練數(shù)據(jù)集中。Nam等人[12]和Panichella等人[13]通過對源項目數(shù)據(jù)和目標(biāo)項目數(shù)據(jù)同時進(jìn)行min-max標(biāo)準(zhǔn)化或z-score標(biāo)準(zhǔn)化,經(jīng)過標(biāo)準(zhǔn)化后的數(shù)據(jù)取值在保持原有取值分布特征不變的情況下處于同一量綱中,從而減小源項目和目標(biāo)項目數(shù)據(jù)集間的分布差異。文獻(xiàn)[14-17]也都是從度量元取值變換的角度出發(fā),分別對源項目和目標(biāo)項目的數(shù)據(jù)進(jìn)行l(wèi)og轉(zhuǎn)換、rank轉(zhuǎn)換、Box-Cox轉(zhuǎn)換和取值修正。通過這些方法可以使源項目數(shù)據(jù)和目標(biāo)項目數(shù)據(jù)都接近于正態(tài)分布,從而提高了源項目和目標(biāo)項目之間的相似度,最終達(dá)到提高缺陷預(yù)測性能的效果。He等人[18]提出了一種兩階段篩選方法,在第一階段從粗粒度角度入手,即先選擇最相似的源項目,第二階段在細(xì)粒度角度篩選,從已經(jīng)選好的源項目中選擇最相似的實例集合。在第一階段是根據(jù)項目屬性的5個分布特征:最大值、最小值、中值、均值和標(biāo)準(zhǔn)差,根據(jù)歐式距離計算出最相似的k個源項目,在第二階段從這k個源項目中采用Burak過濾法或者Peters過濾法選擇出最相似的實例集合。

2 基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法

本文假設(shè)源項目和目標(biāo)項目特征相同,基于該假設(shè)提出一種基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法。該方法采用分層篩選的策略實現(xiàn)了訓(xùn)練數(shù)據(jù)的選擇,并給出了相應(yīng)的算法。

2.1 方法流程

方法流程如下:(1)提取所有項目屬性的分布特征;(2)選擇與目標(biāo)項目最相似的源項目集得到候選源項目集;(3)在候選源項目集中選擇與目標(biāo)項目中實例最相似的實例集合得到候選實例集;(4)使用候選實例集訓(xùn)練缺陷預(yù)測模型。方法框架如圖1所示。

圖1 方法框架Fig.1 Method framework

2.2 數(shù)據(jù)結(jié)構(gòu)描述

基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法的核心問題是如何選取與目標(biāo)項目最相似的源項目集以及如何從選定的源項目集中選取最相似的實例集。

接下來對方法中使用的數(shù)據(jù)結(jié)構(gòu)進(jìn)行簡要的描述,符號S表示軟件項目集合,Ssource表示源項目集,Scandidate表示候選源項目集,Starget表示目標(biāo)項目集,S={R1,R2,…,R w}表示一共有w個軟件項目;符號I表示實例集合,Icandidate表示候選實例集,每一個軟件項目Ri={I1,I2,…,I n}表示每個軟件項目有n個實例,I i表示第i個實例;每一個實例I i={f i1,f i2,…,f im,y i}表示第i個實例有m個度量屬性f ij(j=1,2,…,m)和一個缺陷指標(biāo)yi,其中度量屬性符號f ij表示一個軟件項目中第i個實例的第j個度量屬性,缺陷指標(biāo)y i∈{Y,N},yi=N表示該項目中第i個實例沒有缺陷,yi=Y表示該項目中第i個實例有缺陷。與此同時定義一個度量屬性向量Fi={f1i,f2i,…,f ni}表示一個軟件項目中的所有n個實例的第i個度量屬性,定義一個屬性分布特征向量D j={mean(F j),median(F j),skew(F j),kurt(F j)},該項量表示一個軟件項目中所有n個實例的第j個度量屬性的分布特征,同時定義一個項目分布特征向量V={D1,D2,…,D m}表示一個項目中所有n個實例的所有m個度量屬性的分布特征。Vsource表示源項目集分布特征向量,Vtarget表示目標(biāo)項目集分布特征向量?;诜謱訑?shù)據(jù)篩選的跨項目缺陷預(yù)測方法的核心目標(biāo)是獲取Icandidate。方法描述的結(jié)構(gòu)特征如圖2所示。

圖2 方法結(jié)構(gòu)Fig.2 Method structure

使用的屬性的分布特征是均值(mean)、中值(median)、偏度(skew)和峰度(kurt)四個分布特征。He等人[9]的研究成果說明了項目屬性的分布特征對選擇相似的訓(xùn)練數(shù)據(jù)集是有價值的。之后Herbold等人[4]認(rèn)為屬性的分布特征不應(yīng)選取過多,所以選取了屬性的均值(mean)和標(biāo)準(zhǔn)差(std)兩個分布特征使用k-NN算法進(jìn)行了與目標(biāo)項目相似的源項目集合的選取,但是實驗結(jié)果不是很理想。本文中在選取相似的源項目之前先對所有項目的屬性取值進(jìn)行l(wèi)og變換,log變換的目的是將屬性取值分布接近于正態(tài)分布。然后,選取了數(shù)據(jù)的中心趨勢度量統(tǒng)計量-中值和均值以及數(shù)據(jù)分布形態(tài)的度量-偏度和峰度。使用歐氏距離(Euclidean Distance,ED)公式計算項目層篩選階段中源項目與目標(biāo)項目之間所有屬性分布特征向量的距離來表征兩項目的數(shù)據(jù)分布相似性,然后選擇距離值最小的k個項目構(gòu)成候選源項目集(見算法1)。

算法1

輸入:初始源項目集Ssource和目標(biāo)項目Starget;

1.初始化集合Scandidate、距離列表ED_List和規(guī)模參數(shù)k;

2.使用log變換對所有數(shù)據(jù)進(jìn)行數(shù)據(jù)處理;

3.抽取所有項目的屬性分布特征向量D j={mean(F j),median(F j),skew(F j),kurt(F j)}并合并每個項目的屬性分布特征向量得到源項目集屬性分布特征向量Vsource和目標(biāo)項目的屬性分布特征向量Vtarget;

4.計算源項目集的屬性分布特征向量Vsource和目標(biāo)項目的屬性分布特征向量Vtarget的歐式距離,將距離值和對應(yīng)的源項目名稱保存在距離列表ED_List中;

5.對距離列表ED_List進(jìn)行排序,選出排序后的前k個源項目作為Scandidate;

輸出:候選源項目集Scandidate。

算法1的輸入是源項目集和目標(biāo)項目,輸出是與目標(biāo)項目相似的候選源項目集。第1步是初始化相關(guān)數(shù)據(jù)結(jié)構(gòu),Scandidate是最終輸出集合,ED_List是存放源項目集與目標(biāo)項目之間相似度的列表,k是要選擇的相似候選源項目集的規(guī)模;第2步是數(shù)據(jù)預(yù)處理過程,即對源項目集和目標(biāo)項目所有數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,這里使用的是log轉(zhuǎn)換,其實還有其他常用的數(shù)據(jù)預(yù)處理方法,比如最小最大化處理和均值方差標(biāo)準(zhǔn)化等等;第3步是提取所有項目的屬性分布特征向量D j={mean(F j),median(F j),skew(F j),kurt(F j)},然后合并項目的屬性分布特征向量,Vsource和Vtarget即是源項目集和目標(biāo)項目的所有屬性分布特征向量合并而成的項目分布特征向量;第4步是計算源項目集和目標(biāo)項目的相似度,源項目集和目標(biāo)項目的相似度值和對應(yīng)的源項目保存在ED_List列表中;第5步是對ED_List列表中的相似度值進(jìn)行升序排序,最后選出排序后的前k個源項目作為Scandidate。

在選出與目標(biāo)項目相似的源項目數(shù)據(jù)集Scandidate后,要從Scandidate中的所有實例中選擇出與目標(biāo)項目Starget中的實例最相似的實例子集。在這方面已有的研究分成兩種思路,Burak過濾法從目標(biāo)項目實例的角度出發(fā)來選擇訓(xùn)練實例,認(rèn)為目標(biāo)項目中的實例應(yīng)該主導(dǎo)訓(xùn)練實例的選擇過程。Peters過濾法則認(rèn)為候選源項目數(shù)據(jù)集中的實例的內(nèi)容豐富,會提供比目標(biāo)項目數(shù)據(jù)集中的實例更多的關(guān)于缺陷的信息,因此該方法是為每個訓(xùn)練實例找到最接近的測試實例。兩種思路如圖3所示。圖中紅色圓圈是目標(biāo)項目,黑色圓圈是候選訓(xùn)練項目。本文選用Burak過濾法的思路進(jìn)行訓(xùn)練實例的選擇,即針對目標(biāo)項目中的每個實例在候選源項目數(shù)據(jù)集的實例中選出與目標(biāo)項目中的每個實例相似度較高的一定數(shù)量的候選實例。

圖3 過濾法比較Fig.3 Comparison of filtering methods

由于余弦距離對特征向量絕對數(shù)值不敏感,更多是從方向上區(qū)分向量間的差異。為了修正不同項目間可能存在的度量標(biāo)準(zhǔn)不統(tǒng)一,李勇等人[5]在篩選相似項目時使用余弦距離計算出與目標(biāo)項目距離最近的源項目集合。然而在計算向量相似性的時候皮爾遜相關(guān)系數(shù)往往比余弦距離更精確[19]。余弦相似度會受到向量平移的影響,而皮爾遜相關(guān)系數(shù)具有平移不變性和尺度不變性。因此在使用Burak過濾法進(jìn)行實例篩選時使用皮爾遜相關(guān)系數(shù)作為衡量實例相似性的方法,然后比較相關(guān)系數(shù)值的大小得到候選實例集(見算法2)。

算法2

輸入:候選源項目集Scandidate和目標(biāo)項目Starget;

1.初始化集合Icandidate和相關(guān)系數(shù)列表Pcc_List和規(guī)模參數(shù)h;

2.合并所有輸入的候選源項目集得到合并后的項目集Smerge;

3.計算所有源項目集實例和目標(biāo)項目中實例的相關(guān)系數(shù);

4.將步驟3計算得到的相關(guān)系數(shù)和對應(yīng)的實例編號保存在列表Pcc_List中;

5.對列表Pcc_List進(jìn)行排序,選出排序后的前h個實例作為Icandidate;

輸出:候選訓(xùn)練實例集Icandidate。

算法2的輸入是候選源項目集和目標(biāo)項目,輸出是與目標(biāo)項目中實例最相似的候選實例集。第1步是初始化相關(guān)數(shù)據(jù)結(jié)構(gòu),Icandidate是最終輸出集合,h是要選擇的候選實例集的規(guī)模。Pcc_List是存放源項目集實例與目標(biāo)項目中實例間相關(guān)系數(shù)的列表;第2步是合并項目層輸出的所有候選源項目的集合,得到Smerge;第3步是計算所有源項目集實例和目標(biāo)項目中實例的相關(guān)系數(shù);第4步是將相關(guān)系數(shù)和實例編號放入Pcc_List列表中;第5步是對Pcc_List列表中的相關(guān)系數(shù)值進(jìn)行升序排序,最后選出排序后的前h個實例作為Icandidate。

2.3 樸素貝葉斯模型

經(jīng)過兩階段的數(shù)據(jù)篩選后,已經(jīng)得到了與目標(biāo)項目實例集最相似的候選訓(xùn)練實例集,接下來就是選擇合適的缺陷預(yù)測模型,本文選用樸素貝葉斯模型,樸素貝葉斯方法[20]是基于貝葉斯定理和屬性條件獨立性假設(shè)的分類方法,是基于軟件模塊中的屬性值X=(x1,x2,…,x n),得到軟件模塊的缺陷概率值是否最大。也就是計算:

由于樸素貝葉斯方法采用了屬性條件獨立性假設(shè),即對于軟件模塊中所有屬性,假設(shè)所有屬性相互獨立,那么公式可改寫為:

其中,Y∈{0,1},0表示該軟件模塊不存在缺陷,1則表示軟件模塊中有缺陷。

2.4 其他預(yù)測模型

SMO[21]是一種實現(xiàn)支持向量機(jī)(Support Vector Machine,SVM)[22]的序列最小優(yōu)化(Sequential Minimal Optimization)算法,該算法將二次型求解問題轉(zhuǎn)化為多個優(yōu)化子問題,并采用啟發(fā)式搜索策略進(jìn)行迭代求解,加快了算法的收斂速度[23]。

3 實驗

3.1 實驗數(shù)據(jù)

本文從PROMISE數(shù)據(jù)集中選擇一部分軟件項目的缺陷數(shù)據(jù)進(jìn)行實驗。實驗所選數(shù)據(jù)是由Jureczko和Madeyski[24]收集。該數(shù)據(jù)集來自10個不同開源項目(例如ant、log4j、lucene、poi等)的多個版本。每個項目中實例的特征包括20種不同的度量元和一個缺陷數(shù)量標(biāo)記,這20種度量元均關(guān)注的是代碼復(fù)雜度,其中包括由Chidamber和Kemerer[25]提出的CK度量元。這些度量元綜合考慮了面向?qū)ο蟪绦蚬逃械姆庋b、繼承、多態(tài)等特性。由于實驗關(guān)注的是缺陷的分類問題,即有缺陷和無缺陷問題,因此對于數(shù)據(jù)集中的缺陷數(shù)量標(biāo)記,需要把項目中缺陷數(shù)量大于0的實例標(biāo)記為有缺陷標(biāo)簽Y,缺陷數(shù)量為0的實例標(biāo)記為無缺陷標(biāo)簽N。所選項目數(shù)據(jù)如表1所示。

3.2 實驗設(shè)計

首先在所選的軟件項目中刪除了少于100個實例的軟件項目,目的是為了減少軟件項目規(guī)模對軟件缺陷預(yù)測的影響;其次需要從整理好的數(shù)據(jù)集中選擇目標(biāo)項目集和訓(xùn)練項目集。從表1中選擇15個軟件項目作為目標(biāo)項目,如表2所示,這些項目按缺陷比可以分成三類:第一類是缺陷比大于50%的高缺陷項目;第二類是缺陷比小于10%的低缺陷項目;第三類是缺陷比在10%~50%的缺陷適中的項目。使用這些項目版本的數(shù)據(jù)進(jìn)行15次跨項目缺陷預(yù)測的實驗,極大地保證了實驗的充分性。

表1 PROMISE實驗數(shù)據(jù)集Table 1 PROMISE experimental dataset

表2 目標(biāo)項目集Table 2 Target projects

同時需要注意如果某一個項目作為目標(biāo)項目,那么該項目同名稱的其他版本不能候選源項目參與篩選。即如果ant-1.3作為目標(biāo)項目,那么ant項目的其他版本不能作為候選源項目數(shù)據(jù)集,整個實驗過程如圖4所示。在項目篩選階段為每個目標(biāo)項目分別篩選5個候選訓(xùn)練項目和10個候選訓(xùn)練項目,即參數(shù)k=5、10;在實例篩選階段,為目標(biāo)項目里的每個實例選擇5個候選實例,即參數(shù)h=5;這樣進(jìn)行兩組不同參數(shù)的對比實驗。文獻(xiàn)[26-28]表明對于軟件項目的缺陷預(yù)測,基于項目自身的歷史數(shù)據(jù)或是項目的部分?jǐn)?shù)據(jù)進(jìn)行缺陷預(yù)測模型的訓(xùn)練會取得最優(yōu)的性能,因此為了驗證本文提出的方法的性能,在實驗中選取項目內(nèi)缺陷預(yù)測方法作為基準(zhǔn)方法。在進(jìn)行兩組對比實驗后選擇效果好的一組與項目內(nèi)十折交叉驗證的實驗結(jié)果進(jìn)行比較。實驗中涉及到的樸素貝葉斯缺陷預(yù)測模型在Weka平臺中集成,在實驗時使用默認(rèn)參數(shù)即可。

圖4 實驗過程Fig.4 Experiment procedure

3.3 評價指標(biāo)

本文關(guān)注的是目標(biāo)軟件項目是否存在缺陷的二分類問題,即分類的結(jié)果是有缺陷還是無缺陷。而在實際的實驗中則會存在四種情況:TP(True Positive)表示有缺陷的軟件項目被預(yù)測為有缺陷;FP(False Positive)表示無缺陷的軟件項目被預(yù)測為有缺陷;TN(True Negative)表示無缺陷的軟件項目被預(yù)測為有缺陷;FN(False Negative)表示有缺陷的軟件項目被預(yù)測為無缺陷。根據(jù)這些結(jié)果進(jìn)行組合產(chǎn)生了一些常用的性能評測指標(biāo),如準(zhǔn)確率Accuracy、精確度Precision、召回率Recall和ROC曲線覆蓋面積(Area Under Curve,AUC)等等。其中ROC曲線覆蓋面積即AUC值在軟件缺陷預(yù)測領(lǐng)域被廣泛使用,同時與其他性能指標(biāo)相比,AUC值更適合類分布不平衡情況下的預(yù)測的性能評價。

所以本文主要使用AUC值和Precision作為評價指標(biāo),Precision的計算如式(3)所示。由于實驗是在Weka平臺上進(jìn)行的,所以AUC值和Precision可以直接在Weka軟件的實驗結(jié)果中讀取,并且選取的是Weka自動加權(quán)的結(jié)果。

3.4 實驗結(jié)果分析及比較

根據(jù)實驗設(shè)計,首先對數(shù)據(jù)篩選算法和模型預(yù)測算法的結(jié)果進(jìn)行了實驗驗證,其次將所得的實驗結(jié)果與項目內(nèi)缺陷預(yù)測的實驗結(jié)果進(jìn)行比較,然后對本文的實驗結(jié)果進(jìn)行顯著性檢驗,進(jìn)而驗證提出的方法的有效性。

圖5~8為不同實驗參數(shù)設(shè)置下樸素貝葉斯算法和SMO算法構(gòu)建的缺陷預(yù)測模型的AUC值和Precision值的箱線圖對比,每個圖中第一列是項目內(nèi)十折交叉驗證的結(jié)果,第二列是實驗參數(shù)設(shè)置為k=5,h=5的跨項目缺陷預(yù)測的結(jié)果,第三列是實驗參數(shù)設(shè)置為k=10,h=5的跨項目缺陷預(yù)測的結(jié)果。

圖5 NB的AUC對比Fig.5 NB’s AUC comparison

圖6 SMO的AUC對比Fig.6 SMO’s AUC comparison

圖7 NB的Precision對比Fig.7 NB’s Precision comparison

圖8 SMO的Precision對比Fig.8 SMO’s Precision comparison

由箱線圖可以看出,實驗參數(shù)設(shè)置為k=5,h=5和k=10,h=5的AUC值和Precision值的上下限、中間線和總體的分布比項目內(nèi)十折交叉驗證實驗結(jié)果的箱線圖要好。所以本文的方法在實驗參數(shù)設(shè)置為k=10,h=5時在樸素貝葉斯模型和SMO模型上都可以取得較好的性能。此時可以初步判斷出本文方法對跨項目缺陷預(yù)測的性能有提升。

為了直觀比較方法中的分層篩選的算法和項目內(nèi)十折交叉驗證軟件缺陷預(yù)測實驗的結(jié)果,將樸素貝葉斯模型上兩種不同實驗參數(shù)設(shè)置下模型的AUC值、Precision值和項目內(nèi)十折交叉驗證的軟件缺陷預(yù)測實驗的AUC值、Precision值列于表3和表4中,最下面兩行是每組實驗的平均值和中值。為了更加直觀地判斷出性能提升的程度,將實驗的結(jié)果列于表3和表4中進(jìn)行對比。表中第二列是項目內(nèi)十折交叉驗證的預(yù)測性能,第三列是實驗參數(shù)設(shè)置為k=5,h=5的跨項目缺陷預(yù)測的結(jié)果,第四列是實驗參數(shù)設(shè)置為k=10,h=5的跨項目缺陷預(yù)測的結(jié)果。表中粗體數(shù)字是CPDP的性能值優(yōu)于WP的。最下面兩行是每組實驗的平均值和中值。15組實驗中,發(fā)現(xiàn)CPDP實驗參數(shù)設(shè)置為k=5,h=5時,有8組CPDP的AUC值優(yōu)于WP實驗,AUC平均值提升了0.2個百分點,中值提升了0.8個百分點;CPDP實驗參數(shù)設(shè)置為k=10,h=5時,有12組實驗的AUC值優(yōu)于WP,此時AUC平均值提升了2.9個百分點,中值提升了4.4個百分點。以Precision值超過0.7作為衡量實驗成功的標(biāo)志[11],可以發(fā)現(xiàn)對于項目內(nèi)缺陷預(yù)測實驗成功率是73.3%,而對于參數(shù)設(shè)置為k=10,h=5的跨項目缺陷預(yù)測實驗成功率是80%,實驗成功率提升了6.7個百分點。

表3 NB-AUC實驗結(jié)果Table 3 NB-AUC experimental results

表4 NB-Precision實驗結(jié)果Table 4 NB-Precision experimental results

通過以上數(shù)據(jù)的直觀比較可以得出結(jié)論:本文方法提升了跨項目缺陷預(yù)測的性能,并且與項目內(nèi)缺陷預(yù)測實驗相比,實驗參數(shù)設(shè)置為k=10,h=5的分層數(shù)據(jù)篩選的方法取得實驗結(jié)果的AUC值在中值和均值上都有明顯的提高并且實驗成功率同樣有大幅度提升。為了進(jìn)一步確定本文方法確實是優(yōu)于項目內(nèi)預(yù)測的實驗,而不是實驗產(chǎn)生的隨機(jī)值。對CPDP參數(shù)設(shè)置為k=10,h=5的AUC值和項目內(nèi)十折交叉驗證的AUC值進(jìn)行了Wilcoxcon符號秩檢驗(顯著性水平α=0.05)。

Wilcoxcon符號秩檢驗是非參數(shù)檢驗,對于總體分布沒有要求,因而適用范圍廣泛,對于實驗中的兩兩配對樣本的顯著性檢驗,Wilcoxcon符號秩檢驗是解決問題的首選,它與配對樣本T檢驗相對應(yīng)。在這個實驗里建立原假設(shè)H0:兩種方法的預(yù)測結(jié)果來自同一個分布,即它們之間沒有區(qū)別。備擇假設(shè)H1:兩種方法的預(yù)測結(jié)果來自不同分布,即它們之間存在顯著性差異。因此,在顯著性水平為0.05的情況下,如果檢測的p值大于0.05則表示假設(shè)成立,接受H0;否則假設(shè)不成立,需要拒絕H0,接受H1。在Matlab上進(jìn)行Wilcoxcon符號秩檢驗,結(jié)果輸出p=0.003 2,h=1,p<0.05且p<0.01。該檢驗結(jié)果表明可以拒絕原假設(shè),即提出的跨項目缺陷預(yù)測方法的實驗結(jié)果與項目內(nèi)缺陷預(yù)測的實驗結(jié)果不是來自同一個分布,二者之間存在顯著性差異。

4 結(jié)束語

本文提出了一種基于分層數(shù)據(jù)篩選的跨項目缺陷預(yù)測方法,該方法采用分層策略獲取軟件缺陷預(yù)測模型的訓(xùn)練數(shù)據(jù)并基于樸素貝葉斯算法構(gòu)建軟件缺陷預(yù)測模型。實驗結(jié)果表明:此方法可以替代WPDP方法用于軟件缺陷預(yù)測的實踐,并且實驗探明提出的分層數(shù)據(jù)篩選的方法在樸素貝葉斯預(yù)測模型性能最佳。

然而發(fā)現(xiàn)在實驗過程中仍有一些地方可以繼續(xù)改進(jìn):一是如何選擇度量屬性的分布特征尚沒有統(tǒng)一的標(biāo)準(zhǔn),目前為止都是依據(jù)經(jīng)驗選出合適的分布特征然后計算項目之間的相似性;二是在計算項目間和實例間的相似性時,時間復(fù)雜度很高,一個實驗要很長時間才能得出結(jié)果;三是在衡量項目之間以及實例之間的相似性時,基本上是依據(jù)經(jīng)驗選用已有的相似度計算公式,在相似度計算方面還需要定義更好的計算方法;四是本文方法只在樸素貝葉斯模型和SMO模型上進(jìn)行了驗證,之后還需進(jìn)一步在研究人員普遍使用的一些其他模型,例如線性回歸、決策樹和隨機(jī)森立等模型上進(jìn)行實驗驗證。以上這些實驗中暴露出的問題是值得繼續(xù)研究的。

猜你喜歡
特征向量實例預(yù)測
二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計——以特征值和特征向量為例
無可預(yù)測
黃河之聲(2022年10期)2022-09-27 13:59:46
選修2-2期中考試預(yù)測卷(B卷)
選修2-2期中考試預(yù)測卷(A卷)
克羅內(nèi)克積的特征向量
一類特殊矩陣特征向量的求法
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應(yīng)用
不必預(yù)測未來,只需把握現(xiàn)在
完形填空Ⅱ
完形填空Ⅰ
平江县| 神池县| 灵武市| 合川市| 嘉定区| 苍梧县| 江达县| 高要市| 濮阳县| 都匀市| 武安市| 余江县| 伊川县| 金川县| 子洲县| 肃北| 通州区| 盱眙县| 许昌市| 平湖市| 新竹县| 个旧市| 潮安县| 寿宁县| 手游| 香格里拉县| 南郑县| 民权县| 河东区| 大新县| 丰顺县| 天气| 安阳市| 西安市| 巨鹿县| 林口县| 芜湖市| 睢宁县| 财经| 永德县| 若尔盖县|