• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      軟件缺陷預(yù)測中的數(shù)據(jù)預(yù)處理方法

      2020-11-30 05:48:00潘春霞楊秋輝譚武坤鄧惠心
      計算機(jī)應(yīng)用 2020年11期
      關(guān)鍵詞:特征選擇樣本文獻(xiàn)

      潘春霞,楊秋輝,譚武坤,鄧惠心,伍 佳

      (四川大學(xué)計算機(jī)學(xué)院,成都 610065)

      (?通信作者電子郵箱yangqiuhui@scu.edu.cn)

      0 引言

      軟件缺陷預(yù)測通過分析與缺陷有關(guān)的歷史數(shù)據(jù),比如源代碼、缺陷報告、測試記錄、缺陷修復(fù)記錄等,發(fā)現(xiàn)缺陷在軟件中的分布規(guī)律,構(gòu)建缺陷預(yù)測模型,對新提交的軟件版本進(jìn)行缺陷分布的預(yù)測,以幫助軟件測試人員有的放矢地進(jìn)行軟件測試,降低軟件的測試成本。軟件資源庫中存儲了與缺陷有關(guān)的歷史數(shù)據(jù),但從軟件資源庫里收集的數(shù)據(jù)集往往具有多維度的問題,數(shù)據(jù)特征很多;對于缺陷數(shù)據(jù),還有不平衡問題,即有缺陷的數(shù)據(jù)是少數(shù)。數(shù)據(jù)特征的選擇和數(shù)據(jù)的平衡處理問題是缺陷預(yù)測中數(shù)據(jù)預(yù)處理的關(guān)鍵。近年來,一些學(xué)者針對缺陷預(yù)測問題進(jìn)行了相應(yīng)的研究,如Ibrahim 等[1]、Wang等[2],但他們在特征選擇后,僅使用隨機(jī)過采樣方法處理不平衡數(shù)據(jù),隨機(jī)復(fù)制有缺陷樣本,易導(dǎo)致模型的過擬合問題。因此本文將特征選擇算法和其他的不平衡處理算法結(jié)合,對缺陷類進(jìn)行分析后再合成新缺陷樣本,以更加有效提升模型的訓(xùn)練數(shù)據(jù)質(zhì)量。

      軟件缺陷數(shù)據(jù)特征主要分為兩大類:軟件的靜態(tài)特征和基于開發(fā)過程的軟件動態(tài)特征。文獻(xiàn)[3-5]表明:基于開發(fā)過程特征構(gòu)建的軟件缺陷預(yù)測模型的性能優(yōu)于基于軟件靜態(tài)特征構(gòu)建的軟件缺陷預(yù)測模型。本文為提高缺陷預(yù)測模型訓(xùn)練數(shù)據(jù)的質(zhì)量,提出在數(shù)據(jù)特征選取上采用軟件開發(fā)過程特征數(shù)據(jù),同時創(chuàng)新性地提出擴(kuò)展過程特征,即軟件演化版本間靜態(tài)特征的變化值,將靜態(tài)特征的變化值作為擴(kuò)展過程特征,豐富了過程特征內(nèi)涵;采用聚類分析的特征選擇方法,去掉數(shù)據(jù)集中的非關(guān)鍵特征和冗余特征;針對缺陷數(shù)據(jù)類的不平衡問題,提出改進(jìn)的Borderline-SMOTE(Borderline-Synthetic Minority Oversampling Technique),使訓(xùn)練數(shù)據(jù)集的數(shù)據(jù)相對平衡。

      1 相關(guān)工作

      軟件缺陷預(yù)測中,使用哪些特征建立預(yù)測模型,對預(yù)測結(jié)果的質(zhì)量有很大影響。文獻(xiàn)[3-5]對使用過程特征和靜態(tài)特征分別建立的缺陷預(yù)測模型的預(yù)測能力進(jìn)行了對比,得到相同的結(jié)論:使用過程特征比使用靜態(tài)特征建立的預(yù)測模型效率更高;文獻(xiàn)[6-7]中也提到:用靜態(tài)特征結(jié)合開發(fā)過程特征建立的缺陷預(yù)測模型具有更好的缺陷預(yù)測性能;文獻(xiàn)[8]通過調(diào)查過程特征在缺陷預(yù)測中的作用,總結(jié)了部分常被一些文獻(xiàn)使用的過程特征,其中包括不同提交者數(shù)量、修改行數(shù)、先前版本中修復(fù)缺陷個數(shù)等。本文參考上述工作,使用常規(guī)開發(fā)過程特征和擴(kuò)展過程特征作為備選訓(xùn)練特征,將具有這些特征的數(shù)據(jù)構(gòu)成了原始的高維數(shù)據(jù)。

      特征選擇是降低特征空間維數(shù)的重要手段。文獻(xiàn)[9]通過對高維數(shù)據(jù)集使用不同的特征選擇算法進(jìn)行實(shí)驗發(fā)現(xiàn):大部分時候,缺陷預(yù)測模型只需要使用到原數(shù)據(jù)集的10%的特征;文獻(xiàn)[10]使用了一種混合特征選擇方法,通過考慮不同的特征排序評估方法和特征子集評估方法發(fā)現(xiàn):移除85%的特征并不會大幅度降低預(yù)測性能;文獻(xiàn)[11]提出了特征選擇方法FECAR(FEature Clustering And feature Ranking),該方法通過對特征進(jìn)行聚類和排序,能有效去除冗余特征和非關(guān)鍵特征。本文參考以上結(jié)論,使用基于聚類分析的特征選擇算法,實(shí)現(xiàn)數(shù)據(jù)降維處理。

      在解決數(shù)據(jù)類不平衡方面,文獻(xiàn)[12]總結(jié)了一些常用的過采樣方法:ADASYN(ADAptive SYNthetic sampling approach)、Borderline-SMOTE 和Safe Level SMOTE。對于每個少數(shù)類,ADASYN[13]使用密度分布來自動確定需要合成的樣本數(shù)量,不同的少數(shù)類樣本采用不同的權(quán)重分布;Borderline-SMOTE 算法[14]則關(guān)注少數(shù)類中處于邊界的樣本,針對這些樣本進(jìn)行重采樣,從而合成新的樣本;Safe Level SMOTE[15]則通過給每個少數(shù)類實(shí)例分配一個安全級別值,讓合成新樣本的安全級別更接近安全級別的最大值,從而達(dá)到合成新樣本的目的;文獻(xiàn)[16]通過在7 個數(shù)據(jù)集上分別使用SMOTE、Borderline-SMOTE 和ADASYN 過采樣方法,發(fā)現(xiàn)Borderline-SMOTE 方法比其他方法具有更好的表現(xiàn);文獻(xiàn)[17]認(rèn)為在Borderline-SMOTE 方法中,非邊界少數(shù)類樣本無法得到充分考慮,因此提出了基于局部自適應(yīng)距離的過采樣方法LADSMOTE (Locally Adaptive Distance-Synthetic Minority Oversampling Technique),該方法建立的模型比Borderline-SMOTE 方法建立的模型在F-measure 值上平均提升了2.17個百分點(diǎn)。本文參考上述結(jié)論,采用Borderline-SMOTE 算法,并對其提出改進(jìn),用以解決類不平衡問題。

      2 開發(fā)過程特征的收集和選擇

      首先,以軟件項目中的源代碼文件為單位,從軟件版本控制庫中開發(fā)人員提交的日志文件中收集源代碼文件的過程特征;然后,根據(jù)缺陷追蹤系統(tǒng)的缺陷數(shù)據(jù),對有缺陷的源代碼文件進(jìn)行缺陷標(biāo)記;最后,在得到的原始數(shù)據(jù)集上,使用基于聚類分析的特征選擇算法,去除原始數(shù)據(jù)集中的非關(guān)鍵特征和冗余特征,得到有效訓(xùn)練數(shù)據(jù)集。

      2.1 收集軟件開發(fā)過程特征

      數(shù)據(jù)來源是軟件資源庫、軟件版本控制庫等記錄軟件開發(fā)過程的數(shù)據(jù)庫。利用軟件項目開發(fā)的日志信息,獲取軟件開發(fā)的過程特征數(shù)據(jù)。根據(jù)相關(guān)文獻(xiàn)[3-8],軟件缺陷的產(chǎn)生與軟件代碼的修改、開發(fā)者數(shù)量、功能的增加、原缺陷數(shù)、代碼的復(fù)雜度、操作符的變化等因素相關(guān),本文共收集了55 個與這些因素有關(guān)的過程特征(包含擴(kuò)展過程特征),表1 列出了部分收集的開發(fā)過程特征。

      表1 與軟件缺陷相關(guān)的部分軟件開發(fā)過程特征Tab.1 Some software development process features related to software defects

      這些特征中,部分特征需要根據(jù)日志文件中的信息,通過編寫統(tǒng)計分析程序獲得,比如:平均添加行數(shù)(Average Lines of Code Added,ALCA)、先前版本bug 出現(xiàn)概率(Historical Bug Rate,HBR)等。式(1)和式(2)分別是ALCA、HBR 特征的計算公式:

      擴(kuò)展過程特征表示了某些靜態(tài)特征的變化情況,可通過Understand 工具獲取每個文件不同版本的靜態(tài)特征值,再通過式(3)計算獲得擴(kuò)展過程特征,fs1和fs2分別為同一個文件相鄰版本前后的靜態(tài)特征值。

      最后,再以軟件源代碼文件為單位,匹配日志中文件的缺陷信息和軟件缺陷跟蹤系統(tǒng)的歷史缺陷信息,確定文件是否含有缺陷,并對文件進(jìn)行人工缺陷標(biāo)記,得到原始數(shù)據(jù)集。

      2.2 基于聚類分析的開發(fā)過程特征選擇

      上述方式構(gòu)建的原始數(shù)據(jù)集中過程特征總數(shù)(包含擴(kuò)展過程特征)為55,數(shù)量較多,因此需要使用特征選擇算法去除其中存在的非關(guān)鍵特征和冗余特征。Hall[18]證明了:好的特征子集由與類標(biāo)高度相關(guān)但特征之間不相關(guān)的特征組成。例如:操作符的數(shù)量和操作數(shù)的數(shù)量兩個特征都與類標(biāo)高度相關(guān),但二者成正比例關(guān)系,關(guān)聯(lián)度較高,存在一定的冗余,故二者組成的子集不是質(zhì)量好的子集。本文采用基于聚類分析的特征選擇方法[11],主要分為2步:特征聚類和特征排序。

      特征聚類 利用對稱不確定性(Symmetric Uncertainty,SU)計算特征之間的關(guān)聯(lián)度,對特征進(jìn)行聚類,使類中特征的關(guān)聯(lián)度高,類間特征的關(guān)聯(lián)度低。在選取類的初始代表特征時,使用信息增益(Information Gain,IG)最高的前K個特征。

      特征排序 使用信息增益IG 計算每個特征與類標(biāo)相關(guān)度,并對結(jié)果排序,選取每類中相關(guān)度最高的幾個特征。圖1描述了其流程。

      圖1 基于聚類分析的特征選擇算法流程Fig.1 Flowchart of feature selection algorithm based on clustering analysis

      原始數(shù)據(jù)集經(jīng)過基于聚類分析的特征選擇后,能去除其中的非關(guān)鍵特征和冗余特征,縮減數(shù)據(jù)規(guī)模,減少模型的訓(xùn)練時間。

      3 基于邊界樣本的類不平衡處理

      在收集的數(shù)據(jù)集上,無缺陷的數(shù)據(jù)集一般都遠(yuǎn)大于有缺陷的數(shù)據(jù)集,存在數(shù)據(jù)不平衡問題,會嚴(yán)重影響缺陷分類器的性能。目前在機(jī)器學(xué)習(xí)領(lǐng)域,調(diào)整類不平衡問題可以從數(shù)據(jù)層面和算法層面入手。從數(shù)據(jù)層面解決包含過采樣和欠采樣方法。在一些小型項目和版本數(shù)量較少的項目中,缺陷樣本數(shù)量很少,如果使用欠采樣方法,將導(dǎo)致最后的訓(xùn)練樣本數(shù)據(jù)量較少,不能得到好的預(yù)測模型。經(jīng)過作者實(shí)驗,在本文的數(shù)據(jù)集上使用過采樣方法比使用欠采樣方法建立的模型具有更好的性能表現(xiàn),因此本文采用過采樣方法。Borderline-SMOTE 方法是一種常用的過采樣方法,其主要實(shí)現(xiàn)流程是:首先,確定位于少數(shù)類和多數(shù)類之間的邊界少數(shù)類樣本,其樣本數(shù)為dnum;然后,在每個邊界少數(shù)類樣本的knum 個近鄰少數(shù)類樣本中隨機(jī)選取snum(snum≤knum)個少數(shù)類樣本,以合成新的少數(shù)類樣本;最終,少數(shù)類的個數(shù)=原始少數(shù)類個數(shù)+dnum*snum,大部分情況下,不與多數(shù)類個數(shù)一致。

      合成新樣本時,首先計算邊界缺陷樣本q 和它鄰近缺陷樣本之間的差dif,新樣本s 合成公式為:s=q+random(0,1)*dif,random(0,1)表示(0,1)的隨機(jī)數(shù)。假設(shè)樣本特征集是(修改頻率,開發(fā)人員經(jīng)驗,…),其中一個有缺陷實(shí)例q1=(10,100,…),q1的近鄰有缺陷實(shí)例q2=(18,80,…),則dif=q1-q2=(-8,20,…),假設(shè)random(0,1)是0.5,則新的有缺陷實(shí)例s=q1+0.5*dif=(6,110,…)。在實(shí)際中,修改頻率越大,文件出現(xiàn)缺陷的可能性應(yīng)該越大,但新合成的實(shí)例s 的修改頻率比q1和q2都小,更符合無缺陷情況。同時,s 的開發(fā)人員經(jīng)驗比q1和q2都高,也更符合無缺陷情況。因此,該方法合成的樣本值不符合真實(shí)情況。

      為解決上述問題,本文對Borderline-SMOTE 方法做出改進(jìn),根據(jù)每個特征的具體特點(diǎn),做如下修改:首先,對dif 中所有元素取絕對值;然后,對于每個特征,如果該特征的值越小,樣本出現(xiàn)缺陷的概率越大,則該特征對應(yīng)的dif中的元素值取負(fù)值,否則保持對應(yīng)特征值為正值,如:開發(fā)人員經(jīng)驗、類連續(xù)不含有缺陷的周期等特征對應(yīng)的dif中的元素值應(yīng)取負(fù)值,修改次數(shù)、類中方法個數(shù)變化等特征對應(yīng)值應(yīng)取正值。通過分析具體特征和缺陷出現(xiàn)的關(guān)系,修改dif以使其更加合理。改進(jìn)的Borderline-SMOTE算法描述如算法1所示。

      算法1 改進(jìn)的Borderline-SMOTE算法。

      輸入 缺陷樣本集P={p1,p2,…,ppnum},無缺陷樣本集N={n1,n2,…,nnnum},有缺陷邊界樣本DRANGER={},缺陷樣本的鄰近樣本個數(shù)mnum,DRANGER 中邊界缺陷樣本的鄰近缺陷樣本個數(shù)knum,每個邊界缺陷樣本合成新的樣本數(shù)snum(1 ≤snum ≤knum),判斷dif元素值取正/負(fù)的數(shù)組 A={a[1],a[2],…,a[m]}(m為特征個數(shù),a[m]=0或1)。

      輸出 新合成的缺陷類樣本OS。

      使用改進(jìn)的Borderline-SMOTE 算法對數(shù)據(jù)集進(jìn)行處理,能增加更符合實(shí)際樣本特征的缺陷類樣本實(shí)例,解決類不平衡問題,提升數(shù)據(jù)集質(zhì)量。

      4 實(shí)驗驗證

      本文采用隨機(jī)森林算法訓(xùn)練分類模型,使用精確率(Precision)、召回率(Recall)等指標(biāo)評價模型性能,并設(shè)計了4個實(shí)驗來驗證本文數(shù)據(jù)預(yù)處理方法的有效性。

      4.1 實(shí)驗設(shè)計

      4.1.1 分類模型

      目前,軟件缺陷預(yù)測領(lǐng)域較常用的分類算法為:樸素貝葉斯分類、決策樹、隨機(jī)森林、邏輯回歸等[3,10,19]。通過作者的大量實(shí)驗,發(fā)現(xiàn)隨機(jī)森林分類算法在大多數(shù)數(shù)據(jù)集上有較好的表現(xiàn)。本文從bugzilla 等項目的日志信息中獲取原始數(shù)據(jù)集,進(jìn)行數(shù)據(jù)預(yù)處理后,使用Weka 機(jī)器學(xué)習(xí)庫,選擇隨機(jī)森林分類算法,將預(yù)處理后的數(shù)據(jù)作為訓(xùn)練樣本輸入訓(xùn)練模型。

      4.1.2 評價指標(biāo)

      數(shù)據(jù)的質(zhì)量直接影響分類模型的性能。通過測評模型性能,可間接測評數(shù)據(jù)質(zhì)量,若數(shù)據(jù)質(zhì)量較好,則對應(yīng)的模型性能表現(xiàn)也應(yīng)更好?;煜仃囀窃u價模型好壞的展示工具,對應(yīng)缺陷預(yù)測主題,其內(nèi)容見表2。

      表2 混淆矩陣Tab.2 Confusion matrix

      根據(jù)混淆矩陣衍生了各種評價指標(biāo),本文采用的評價指標(biāo) 為Precision、Recall、F-measure 和ROC(Receiver Operating Characteristics)曲線下面積AUC(Area Under the Curve)。精確率表征預(yù)測模型識別的正類樣本中正確的比率,其定義見式(4)。召回率表征預(yù)測模型對正類樣本的識別程度,其定義見式(5)。F-measure是Precision和Recall的調(diào)和平均數(shù),更能整體性地反映模型性能的好壞,其定義見式(6)。ROC曲線橫坐標(biāo)為假陽性率FPR(False Positive Rate),縱坐標(biāo)為Recall,假陽性率表征無缺陷實(shí)例被預(yù)測成有缺陷的概率,其定義見式(7),ROC 曲線越靠近左上方,面積AUC 值越大,模型的性能越好。

      4.1.3 實(shí)驗內(nèi)容

      為了證明本文使用的數(shù)據(jù)預(yù)處理方法的有效性,本文設(shè)計了以下4 個實(shí)驗:1)基于聚類分析的特征選擇算法的有效性驗證;2)改進(jìn)的Borderline-SMOTE 算法的有效性驗證;3)引入擴(kuò)展過程特征有效性驗證;4)本文方案與文獻(xiàn)[19]方案的對比。

      4.2 實(shí)驗結(jié)果及分析

      4.2.1 基于聚類分析的特征選擇算法的有效性驗證

      為了證明特征選擇算法的有效性,本實(shí)驗分別使用原始數(shù)據(jù)和特征選擇后的數(shù)據(jù)建立缺陷預(yù)測模型。使用的項目數(shù)據(jù)源是:bugzilla、columba、jdt、mozilla、platform、postgres。

      在特征收集階段,本文共得到初始過程特征55 個,其中常用過程特征為29個,擴(kuò)展過程特征為26個。經(jīng)過多種m(m為最終選擇的特征子集個數(shù))、K(K 為劃分的簇數(shù))值組合實(shí)驗發(fā)現(xiàn):當(dāng)設(shè)置m=30、K=10 時,能夠保證使用選擇的特征訓(xùn)練出的模型性能基本不變;當(dāng)m<30 時,訓(xùn)練出的預(yù)測模型的F-measure 值開始明顯降低。因此,使用特征選擇算法后,共篩選出30 個過程特征,其中常用過程特征為17 個,擴(kuò)展過程特征為13個。篩選出的30個特征如表3所示。

      表3 特征選擇算法篩選出的特征Tab.3 Features selected by feature selection algorithm

      實(shí)驗結(jié)果顯示,在多數(shù)情況下特征選擇后建立的模型的F-measure值與選擇前模型的F-measure值相差不大,如表4所示。實(shí)驗結(jié)果說明了非關(guān)鍵特征和冗余特征的存在。

      特征選擇降低了訓(xùn)練模型時間,特征選擇前,使用隨機(jī)森林算法在多個項目上訓(xùn)練模型的平均時間為79.63 s,而特征選擇后,訓(xùn)練平均時間僅為33.49 s,時間縮短效率為57.94%。在保證模型F-measure 值的同時,極大地縮短了模型的訓(xùn)練時間。

      表4 特征選擇前后模型的F-measure值對比Tab.4 Comparison of F-measure values of models before and after feature selection

      4.2.2 改進(jìn)的Borderline-SMOTE算法的有效性驗證

      為了證明本文提出的改進(jìn)的Borderline-SMOTE 算法的有效性,本實(shí)驗分別使用原始和改進(jìn)的Borderline-SMOTE 方法進(jìn)行數(shù)據(jù)不平衡處理,實(shí)驗使用的項目分別是:bugzilla、columba、jdt,mozilla、platform、postgres,處理前后的樣本數(shù)量見表5。改進(jìn)的Borderline-SMOTE方法與原始方法相比,只會更改新合成樣本的特征值,使特征值更符合真實(shí)情況,并不會改變新合成樣本的數(shù)量,因此使用兩種方法處理后的缺陷樣本數(shù)量一致。

      表5 數(shù)據(jù)不平衡處理前后樣本數(shù)量Tab.5 Samples before and after data imbalance processing

      圖2 比較了在采用隨機(jī)森林分類算法時,不同項目在不平衡處理前后對應(yīng)模型的精確率、召回率、F-measure 和AUC。從圖2 可以看出使用原Borderline-SMOTE 方法和改進(jìn)后的Borderline-SMOTE 方法處理不平衡樣本,都能明顯提升各項模型評價指標(biāo),但改進(jìn)后的Borderline-SMOTE 方法在各項指標(biāo)上的表現(xiàn)都優(yōu)于原始方法。相比原始Borderline-SMOTE 方法,使用改進(jìn)后的Borderline-SMOTE 方法進(jìn)行數(shù)據(jù)不平衡處理后,所建立的模型在Precision、Recall、F-measure、AUC 上都有所提升,平均分別提高了2.36、1.8、2.13、2.36 個百分點(diǎn),證明了改進(jìn)的Borderline-SMOTE 算法處理數(shù)據(jù)不平衡問題的有效性。

      圖2 樣本不平衡處理前后預(yù)測效果對比Fig.2 Comparison of prediction effects before and after sample imbalance processing

      4.2.3 引入擴(kuò)展過程特征有效性驗證

      為了驗證本文提出的擴(kuò)展過程特征的有效性,本實(shí)驗在完成了特征選擇和不平衡處理的6 個數(shù)據(jù)集上,對比了在特征集中是否引入擴(kuò)展過程特征所建立的模型的F-measure值,表6是對比結(jié)果。

      表6 引入擴(kuò)展過程特征前后模型的F-measure值對比Tab.6 Comparison of F-measure values of models before and after the introduction of extended process features

      由表6 可以看出:在所有項目中,引入了擴(kuò)展過程特征后所建立的模型都比未引入擴(kuò)展過程特征所建立的模型性能表現(xiàn)更好,F(xiàn)-measure 值平均提高了3.79%。其中,bugzilla 和columba兩個項目的提升效果最為明顯,提升率分別為6.19%和6.93%,證明了本文提出的擴(kuò)展過程特征的有效性。

      4.2.4 本文方案與文獻(xiàn)[19]方案的對比

      為了證明本文方案的有效性,將本文提出方案與文獻(xiàn)[19]提出方案進(jìn)行對比。文獻(xiàn)[19]方案為:使用混合特征,即靜態(tài)特征和動態(tài)特征,不對原始特征集進(jìn)行降維處理,使用隨機(jī)欠采樣方法進(jìn)行類不平衡處理。實(shí)驗采用文獻(xiàn)[19]中的項目:Android Universal I.L、ANTLR v4、Elasticsearch、jUnit 等。文獻(xiàn)[19]比較了不同的分類算法構(gòu)建的模型,其中隨機(jī)森林算法構(gòu)建的模型在F-measure指標(biāo)上表現(xiàn)最好,因此本實(shí)驗只與其隨機(jī)森林算法建立模型結(jié)果進(jìn)行比較。文獻(xiàn)[19]給出了預(yù)測模型結(jié)果的F-measure 值和bug 覆蓋率,在bug 覆蓋率指標(biāo)上,文獻(xiàn)[19]方案和本文方案都取得了較好的結(jié)果,因此本文僅展示兩種方案模型的F-measure值對比結(jié)果,見圖3。

      可以看到:所有項目中,本文方案的模型具有更高的F-measure 值,平均提高率為15.79%,其中jUnit 項目提升最大,本文模型的F-measure 值為0.890 9,而文獻(xiàn)[19]模型的F-measure 值為0.659 1,提高了35.17%。在MapDB 項目上,兩者F-measure 值相差不大,本文模型僅提高了0.88%。查看樣本數(shù)據(jù)發(fā)現(xiàn)jUnit 項目的有缺陷樣本和無缺陷樣本數(shù)量相差較大,而MapDB 項目的有缺陷樣本和無缺陷樣本數(shù)量之差比其他項目更小,本文數(shù)據(jù)不平衡處理方案在類不平衡明顯的樣本上表現(xiàn)較好。對于原始數(shù)據(jù)基本平衡情況,經(jīng)過本文不平衡處理方法后,對應(yīng)的預(yù)測模型性能可能僅微小提高,此時可以不再使用不平衡處理方法。

      圖3 文獻(xiàn)[19]方案和本文方案建立模型的F-measure對比Fig.3 Comparison of F-measure of the models established by the solution in literature[19]and the solution in this paper

      5 結(jié)語

      本文使用過程特征作為缺陷預(yù)測模型的訓(xùn)練特征,分別對特征選擇和類不平衡處理方法進(jìn)行了研究。通過軟件資源庫獲取開發(fā)常用過程特征和擴(kuò)展過程特征,構(gòu)建原始數(shù)據(jù)集,采用基于聚類分析的特征選擇方法刪除非關(guān)鍵特征和冗余特征,使用改進(jìn)的Borderline-SMOTE 過采樣方法合成新的缺陷樣本,以解決數(shù)據(jù)分類不平衡問題。實(shí)驗采用隨機(jī)森林分類算法構(gòu)建缺陷預(yù)測模型。通過實(shí)驗,證明了本文數(shù)據(jù)預(yù)處理方法的有效性。

      本文旨在解決軟件缺陷預(yù)測中數(shù)據(jù)質(zhì)量問題,但還存在諸多不足之處。比如:本文采用的數(shù)據(jù)集擁有大量與缺陷有關(guān)的歷史數(shù)據(jù),對于某些新的項目或者歷史信息很少的項目,本文方法并不適用,未來可考慮將本文方法與跨項目缺陷預(yù)測進(jìn)行結(jié)合。另外,研究收集的缺陷樣本中可能會存在噪聲數(shù)據(jù),比如開發(fā)人員忘記聲明修復(fù)bugid,將會導(dǎo)致該樣本被標(biāo)記為無缺陷。如何有效地發(fā)現(xiàn)并去除噪聲數(shù)據(jù)也是未來的研究工作之一。

      猜你喜歡
      特征選擇樣本文獻(xiàn)
      Hostile takeovers in China and Japan
      速讀·下旬(2021年11期)2021-10-12 01:10:43
      用樣本估計總體復(fù)習(xí)點(diǎn)撥
      Cultural and Religious Context of the Two Ancient Egyptian Stelae An Opening Paragraph
      大東方(2019年12期)2019-10-20 13:12:49
      推動醫(yī)改的“直銷樣本”
      The Application of the Situational Teaching Method in English Classroom Teaching at Vocational Colleges
      The Role and Significant of Professional Ethics in Accounting and Auditing
      商情(2017年1期)2017-03-22 16:56:36
      隨機(jī)微分方程的樣本Lyapunov二次型估計
      Kmeans 應(yīng)用與特征選擇
      電子制作(2017年23期)2017-02-02 07:17:06
      村企共贏的樣本
      聯(lián)合互信息水下目標(biāo)特征選擇算法
      大洼县| 宣化县| 广宗县| 辽宁省| 岳阳市| 绥阳县| 福安市| 突泉县| 松桃| 玛曲县| 东台市| 新营市| 台南县| 涪陵区| 庄浪县| 信宜市| 赞皇县| 阿拉善左旗| 濉溪县| 九江县| 当雄县| 大同市| 和龙市| 海原县| 巢湖市| 兰坪| 肃宁县| 乐亭县| 寻甸| 台南县| 泸西县| 左权县| 卓资县| 南投县| 张北县| 金坛市| 马山县| 耒阳市| 开江县| 黄石市| 靖江市|