• 
    

    
    

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

      基于SDL-LightGBM集成學(xué)習(xí)的軟件缺陷預(yù)測模型

      2024-03-21 01:48:40謝華祥高建華黃子杰
      關(guān)鍵詞:軟件缺陷特征選擇度量

      謝華祥,高建華+,黃子杰

      (1.上海師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,上海 200234;2.華東理工大學(xué) 計(jì)算機(jī)科學(xué)與工程系,上海 200237)

      0 引 言

      軟件缺陷預(yù)測利用項(xiàng)目中已有的缺陷信息建立缺陷預(yù)測模型,并預(yù)測項(xiàng)目中可能出現(xiàn)缺陷的代碼,以減少開發(fā)人員檢查出錯(cuò)代碼的時(shí)間和軟件開發(fā)成本。相關(guān)研究[1]指出大型系統(tǒng)的維護(hù)工作占用軟件開發(fā)總成本的90%。軟件缺陷預(yù)測技術(shù)可以根據(jù)軟件的信息提取特征,使用分類器算法建立預(yù)測模型來確定軟件具體模塊是否包含缺陷。

      在模型的使用方面,Erturk等[2]使用SVM(support vector machine)算法對NASA數(shù)據(jù)集建立缺陷預(yù)測模型,并取得不錯(cuò)效果。Feidu等[3]使用多種機(jī)器學(xué)習(xí)算法和基于LM(language model)的神經(jīng)網(wǎng)絡(luò)算法建立缺陷預(yù)測模型,實(shí)驗(yàn)結(jié)果顯示基于LM的神經(jīng)網(wǎng)絡(luò)取得最高預(yù)測精度。

      上述軟件缺陷預(yù)測研究大多使用單個(gè)分類器,而單個(gè)分類器存在預(yù)測準(zhǔn)確率不高,泛化能力弱等問題,相比單個(gè)分類器,集成學(xué)習(xí)具有更好的分類準(zhǔn)確性和效率[4]。如陳麗瓊等[5]使用XGBoost集成學(xué)習(xí)算法建立即時(shí)軟件缺陷預(yù)測模型。

      然而針對典型Boosting算法的不足,Ke等[6]提出了LightGBM算法,大量實(shí)驗(yàn)結(jié)果表明LightGBM算法在性能和效率方面優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法和其它集成學(xué)習(xí)算法。

      在特征選擇方面,實(shí)驗(yàn)數(shù)據(jù)特征間的多重共線性和大量無關(guān)特征會導(dǎo)致“維度災(zāi)難”,增加預(yù)測模型的復(fù)雜度和訓(xùn)練時(shí)間[7],并可能導(dǎo)致模型過擬合[8]。合理的特征選擇可以有效地實(shí)現(xiàn)特征降維[9]。

      相比分類器的默認(rèn)超參數(shù),不同超參數(shù)組合對應(yīng)模型性能有較大不同[14],超參數(shù)優(yōu)化主要有網(wǎng)格搜索、隨機(jī)搜索以及貝葉斯優(yōu)化。Shen等[10]比較各種優(yōu)化算法,發(fā)現(xiàn)DE算法優(yōu)化結(jié)果最好。

      在可解釋方面,LIME是Ribeiro等[11]提出的局部替代模型。該模型使用可解釋的機(jī)器學(xué)習(xí)模型(即線性回歸、決策樹等)局部模擬黑盒模型的預(yù)測。因此,可以使用局部代理模型來解釋單個(gè)實(shí)例。

      基于以上研究,本文提出一種基于SDL-LightGBM集成學(xué)習(xí)的軟件缺陷預(yù)測模型。

      1 相關(guān)工作

      1.1 LightGBM算法

      集成學(xué)習(xí)是組合多個(gè)基分類器來建立一個(gè)強(qiáng)分類器,即使每個(gè)基分類器是弱分類器,通過集成學(xué)習(xí)后也能建立一個(gè)強(qiáng)分類器。它能有效避免傳統(tǒng)分類器的過擬合問題,同時(shí)能獲得更強(qiáng)的泛化能力。由Ke等[6]提出的LightGBM算法是集成學(xué)習(xí)的一種,主要使用基于梯度的單邊采樣(gradient-based one-side sampling,GOSS)和互斥特征捆綁(exclusive feature bundling,EFB)這兩種方法彌補(bǔ)Boosting算法的不足[6]。

      GOSS是從減少樣本的角度出發(fā),排除大部分權(quán)重小的樣本,僅用剩下的樣本計(jì)算信息增益,它是一種在減少數(shù)據(jù)和保證精度上平衡的算法。而高緯度數(shù)據(jù)中很多特征是互斥的,特征很少同時(shí)出現(xiàn)非0值。EFB的思想就是把這些特征捆綁在一起形成一個(gè)新的特征,以減少特征數(shù)量,提高訓(xùn)練速度。因此本文選擇LightGBM算法構(gòu)建基礎(chǔ)模型。

      1.2 特征選擇

      原始特征集可能存在無關(guān)特征和特征間的多重共線問題[5]。而LightGBM的特征重要性算法可以有效剔除無關(guān)特征。處理特征間的多重共線問題,本文選擇Spearman[13]定義的Spearman秩相關(guān)系數(shù),定義如式(1)

      (1)

      式中:xi,yi分別是兩個(gè)特征按大小(或優(yōu)劣)排位的等級,n是樣本大小,ρ代表Spearman秩相關(guān)系數(shù)。ρ越大,代表兩個(gè)特征之間共線性越強(qiáng)。

      如艾成豪等[12]通過ReliefF+XGBoost+Pearson相關(guān)系數(shù)混合特征選擇,融合所有特征的權(quán)重,刪除融合權(quán)值較低的特征得到特征子集,有效地降低了模型的運(yùn)行時(shí)間。

      1.3 模型超參數(shù)優(yōu)化

      相比分類器的默認(rèn)超參數(shù),不同超參數(shù)組合對應(yīng)模型性能有較大不同[14]。Shen等[10]通過4個(gè)優(yōu)化算法優(yōu)化6個(gè)常用的機(jī)器學(xué)習(xí)分類器,使用AUC值作為模型性能度量,實(shí)驗(yàn)發(fā)現(xiàn)模型超參數(shù)優(yōu)化可以顯著提高代碼異味檢測的性能,差分進(jìn)化(DE)算法可以比其它3種優(yōu)化器獲得更好的性能。因此本文使用DE算法優(yōu)化LightGBM的超參數(shù)。

      1.4 模型可解釋相關(guān)研究

      現(xiàn)有的軟件缺陷預(yù)測重點(diǎn)關(guān)注模型的預(yù)測能力,忽略了模型的可解釋性。大多數(shù)分類器都屬于黑盒模型,其預(yù)測的結(jié)果無法使人信服。LIME解釋模型的原理通過簡單模型來解釋復(fù)雜模型。對樣本數(shù)據(jù)變換得到一個(gè)新的數(shù)據(jù)集,用這個(gè)新數(shù)據(jù)集訓(xùn)練一個(gè)簡單模型,即一個(gè)容易解釋的模型。假設(shè)f是一個(gè)黑箱模型,x是一個(gè)需要解釋的實(shí)例,LIME的損失函數(shù)如式(2)

      E(x)=argminLg?G(f,g,πx)+Ω(g)

      (2)

      式中:L反應(yīng)黑箱模型(復(fù)雜模型)f與簡單模型g之間預(yù)測結(jié)果相似程度,G表示簡單模型g的算法集,π表示定義在實(shí)例x周圍采樣時(shí)的域范圍,Ω(g) 表示可解釋模型g的模型復(fù)雜性,本文采用LIME對模型進(jìn)行解釋性分析。

      2 SDL-LightGBM設(shè)計(jì)流程

      機(jī)器學(xué)習(xí)算法可以有效地建立軟件缺陷預(yù)測模型。然而相關(guān)工作存在特征冗余、分類器選擇和模型解釋的不足[3],對此,本文提出一種基于SDL-LightGBM集成學(xué)習(xí)的軟件缺陷預(yù)測模型,方法流程如圖1所示。

      圖1 本文方法流程

      2.1 建立特征集

      實(shí)驗(yàn)的特征集主要有兩類特征組合,一類為傳統(tǒng)結(jié)構(gòu)度量,另一類由Fowler等[16]定義的代碼異味。

      2.1.1 結(jié)構(gòu)度量

      產(chǎn)品度量測量源代碼內(nèi)在特征,如代碼行數(shù)、復(fù)雜度等。本文在傳統(tǒng)結(jié)構(gòu)度量的基礎(chǔ)上[16]利用CK[17]軟件測量36個(gè)結(jié)構(gòu)度量新特征。通過類關(guān)鍵字匹配對兩個(gè)數(shù)據(jù)集進(jìn)行融合,供后面特征選擇組合。具體特征描述分別見表1與表2。

      表1 傳統(tǒng)結(jié)構(gòu)度量

      表2 CK測量的36個(gè)結(jié)構(gòu)度量

      2.1.2 代碼異味

      本文采用由Fontana等[18]定義的代碼異味強(qiáng)度指數(shù)(Intensity)量化代碼異味。通過JCodeOdor[18]工具檢測6種類型的代碼異味并計(jì)算得到一個(gè)Intensity值。6種代碼異味分別是:

      (1)God Class:實(shí)現(xiàn)不同職責(zé)和集中大部分系統(tǒng)處理的大型類。對程序理解、軟件可維護(hù)性有負(fù)面影響。

      (2)Data Class:單純用作數(shù)據(jù)存儲的類,該類僅有一些字段(fields),以及讀寫這些字段的函數(shù)。

      (3)Brain Method:實(shí)現(xiàn)多個(gè)函數(shù)的過大方法。

      (4)Shotgun Surgery:一個(gè)類遇到某種變化,其它類需要被動(dòng)作出修改。

      (5)Dispersed Coupling:類與其它類具有太多耦合關(guān)系。

      (6)Message Chains:過長的方法調(diào)用。

      2.1.3 混合特征選擇

      本文為了更細(xì)化研究軟件結(jié)構(gòu)度量,使用CK[17]軟件測量36個(gè)結(jié)構(gòu)度量新特征,加上27個(gè)傳統(tǒng)結(jié)構(gòu)度量和JCodeOdor[18]工具計(jì)算得到的一個(gè)代碼異味強(qiáng)度指數(shù)Intensity值共提取64個(gè)特征,并利用類名作為匹配鍵對其合并。然而合并后特征間的高度共線性和大量無關(guān)特征會導(dǎo)致“維度災(zāi)難”,增加預(yù)測模型的復(fù)雜度和訓(xùn)練時(shí)間。對此本文采用LightGBM特征重要性和Spearman[13]算法對特征選擇與組合,并確定特征子集。通過實(shí)驗(yàn)比較得到LightGBM重要性閾值為30時(shí),不會降低模型的預(yù)測能力。根據(jù)Nucci等[19]的建議,當(dāng)設(shè)置Spearman的相關(guān)度ρ的閾值為0.8,即當(dāng)ρ大于0.8時(shí)認(rèn)為兩個(gè)特征具有強(qiáng)相關(guān),這時(shí)保留對模型貢獻(xiàn)最大的特征。Spearman+LightGBM混合特征選擇算法具體流程如算法1所示:

      算法1:混合特征選擇算法

      輸入:合并后的數(shù)據(jù)集

      輸出:特征子集

      (1)使用LightGBM計(jì)算每個(gè)特征對預(yù)測結(jié)果的重要性權(quán)重向量W,并按照從大到小進(jìn)行排序

      W=[ω1(x),ω2(x),…,ωn(x)]

      (2)設(shè)置重要性閾值30,去除重要性低于閾值的特征,得到第一次選擇的特征子集X1

      X1=[x1,x2,…,xn]

      (3)使用Spearman測量特征子集X1兩兩特征間的相關(guān)系數(shù)ρ,得到相關(guān)系數(shù)矩陣P

      (4)設(shè)置相關(guān)性閾值為0.8,當(dāng)兩兩特征閾值大于0.8時(shí)認(rèn)為其具有高度相關(guān),保留重要性最高的一個(gè)特征。依次去除高度相關(guān)特征,最后得到特征子集X2

      X2=[x1,x2,…,xn]

      經(jīng)過Spearman+LightGBM混合特征選擇后,從高度冗余的64個(gè)特征中選擇15個(gè)組合成結(jié)構(gòu)度量子集,去除大量無關(guān)特征和高度共線特征,進(jìn)而實(shí)現(xiàn)降低模型復(fù)雜度。

      2.2 模型優(yōu)化

      機(jī)器學(xué)習(xí)模型中有各種參數(shù)需要調(diào)整,這些參數(shù)可分為模型參數(shù)和模型超參數(shù)。模型參數(shù)是模型內(nèi)部通過自動(dòng)學(xué)習(xí)而得出的配置變量,如神經(jīng)網(wǎng)絡(luò)中的權(quán)重,邏輯回歸中的系數(shù)等。模型超參數(shù)則需要從外部配置,模型訓(xùn)練之前需要手動(dòng)設(shè)置的參數(shù)。如隨機(jī)森林樹的深度、神經(jīng)網(wǎng)絡(luò)中迭代次數(shù)等。不同超參數(shù)設(shè)置會有不同的模型性能。本文對LightGBM的5個(gè)關(guān)鍵超參數(shù)進(jìn)行優(yōu)化其具體描述見表3。

      表3 本文優(yōu)化的LightGBM超參數(shù)

      本文使用DE算法優(yōu)化LightGBM的超參數(shù),優(yōu)化方法如算法2所示:

      算法2:DE優(yōu)化LightGBM超參數(shù)

      輸入:數(shù)據(jù)集和LightGBM分類器

      輸出:優(yōu)化后的一組超參數(shù)

      /*將數(shù)據(jù)集劃分為訓(xùn)練集和測試集*/

      xtrain,xtest,ytrain,ytest←D

      /*1. 10折交叉驗(yàn)證*/

      /*2. DE種群初始化*/

      Xi(0)=(xi,1(0),xi,2(0),…,xi,n(0))

      /*3.開始迭代*/

      Hi(g)=Xp1(g)+F·(Xp2(g))-Xp3(g)

      /*4.從種群中隨機(jī)選擇3個(gè)個(gè)體產(chǎn)生變異,F(xiàn)是縮放因子取0.5*/

      if rand(0,1)≤CRorj=jrand

      Uj,i(g)=Hj,i(g)

      Otherwise

      Uj,i(g)=Xj,i(g)

      /*5.在變異操作后,對第g代種群 {Xi(g)} 及其變異中間體 {Hi(g)} 進(jìn)行個(gè)體間交叉操作*/

      iff(Ui(g))≤f(Xi(g))

      Xi(g+1)=Ui(g)

      Otherwise

      Xi(g+1)=Xi(g)

      /*6.DE算法采用貪婪算法來選擇下一代的個(gè)體*/

      Endfor

      /*7.迭代結(jié)束,輸出最優(yōu)超參數(shù)組合*/

      3 實(shí)驗(yàn)分析

      為了驗(yàn)證基于SDL-LightGBM集成學(xué)習(xí)的軟件缺陷預(yù)測模型的有效性,本文主要回答以下4個(gè)問題:

      Q1:Spearman+LightGBM混合特征選擇算法是否有效?

      Q2:使用DE算法優(yōu)化模型超參數(shù)是否能提高模型預(yù)測性能?

      Q3:本文所提出的SDL-LightGBM方法與其它文獻(xiàn)相比是否具有優(yōu)勢?

      Q4:使用LIME分析什么特征對結(jié)果影響最大?

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

      實(shí)驗(yàn)使用的數(shù)據(jù)集[16]包括12個(gè)開源系統(tǒng)的35個(gè)版本。表4給出了數(shù)據(jù)集的詳細(xì)信息,包括系統(tǒng)名稱、系統(tǒng)版本數(shù)量、系統(tǒng)類的數(shù)量(最小-最大)、系統(tǒng)代碼千行數(shù)量(最小-最大)和缺陷類的百分比(最小-最大)

      表4 實(shí)驗(yàn)項(xiàng)目

      3.2 十折交叉驗(yàn)證

      為了更好評估模型的性能,實(shí)驗(yàn)采用10折交叉驗(yàn)證策略,將數(shù)據(jù)集隨機(jī)劃分10個(gè)大小相等的數(shù)據(jù)子集,一個(gè)作為測試集,其余9個(gè)作為訓(xùn)練集,重復(fù)10次,使每個(gè)子集都恰好一次作為測試集,最后結(jié)果取10次操作的平均值。

      3.3 評價(jià)指標(biāo)

      (1)F1值:在分類預(yù)測中,常用精確度(Precision)和召回率(Recall)這兩者的調(diào)和平均作為評價(jià)指標(biāo)即F值(F-Score),如式(3)

      (3)

      當(dāng)α取1時(shí),就是常見的F1值,如式(4)

      (4)

      precision和recall的定義如式(5)、式(6)

      (5)

      (6)

      其中,TP、FP和FN的含義見表5。

      表5 TP、TN、FP、FN概念

      (2)AUC值:AUC值是ROC曲線下的面積,而ROC曲線的橫軸是FPRate,縱軸是TPRate。當(dāng)兩者相等時(shí),其表示的含義是對于正類和負(fù)類的預(yù)測概率為1的概率相等,

      即TPRate=FPRate=0.5,此時(shí)ROC下的面積即AUC值為0.5,分類器沒有任何區(qū)分能力。而一個(gè)好的分類器要求TPRate>>FPRate。而理想的情況為TPRate=1,F(xiàn)PRate=0。此時(shí)ROC下的面積即AUC值最大,分類器性能最好。

      3.4 實(shí)驗(yàn)結(jié)果分析

      Q1:為了驗(yàn)證本文Spearman+LightGBM混合特征選擇方法的有效性,本文分別使用選擇前和選擇后的特征數(shù)據(jù)集建立預(yù)測模型。首先利用LightGBM的特征重要性importance對64個(gè)特征進(jìn)行排序。importance越高,說明特征對預(yù)測結(jié)果越重要。排序結(jié)果見表6。

      表6 特征重要度排序

      importance大于30的特征有17個(gè),大于10的特征有37個(gè),因此本文對importance閾值為0、10和30分別進(jìn)行篩選比較,結(jié)果見表7。

      表7 閾值篩選性能比較

      根據(jù)實(shí)驗(yàn)比較結(jié)果可以看出,當(dāng)importance閾值設(shè)置為30時(shí),能最大程度降低特征維度從而降低模型復(fù)雜度且不會影響模型的預(yù)測性能。因此利用LightGBM篩選結(jié)果保留importance大于30的17個(gè)特征,分別是intensity、scattering、fi-changes、ce、ostrand、UWQty、loc、cbo、AMQty、cboM、VBQty、amc、rfc、FAN-OUT、acpd、TMQty和cam。

      考慮到特征間可能具有多重共線性,本文利用Spearman秩相關(guān)系數(shù)計(jì)算17個(gè)特征間的相關(guān)系數(shù)ρ。根據(jù)Nucci等[19]的建議,當(dāng)設(shè)置ρ的閾值為0.8,即當(dāng)ρ大于0.8時(shí)認(rèn)為兩個(gè)特征具有強(qiáng)相關(guān),這時(shí)保留對模型貢獻(xiàn)最大的特征,剔除特征loc和cam。

      經(jīng)過Spearman+LightGBM混合特征選擇后的特征子集共15個(gè)特征,分別是intensity、scattering、fi-changes、ce、ostrand、UWQty、cbo、AMQty、cboM、VBQty、amc、rfc、FAN-OUT、acpd和TMQty。

      特征選擇前后對模型的影響比較結(jié)果見表8,特征選擇后的模型F1值提高0.5%,AUC值提高0.4%,模型預(yù)測性能得到提高。特征選擇前的模型模型訓(xùn)練時(shí)間為30.36 s,特征選擇后的模型訓(xùn)練時(shí)間為21.12 s,模型訓(xùn)練時(shí)間縮短43.6%。因此,本文使用的混合特征選擇能有效提高模型預(yù)測性能和降低模型復(fù)雜度從而縮短模型訓(xùn)練時(shí)間,驗(yàn)證該方法的有效性。

      Q2:根據(jù)Shen等[10]的建議,使用DE算法優(yōu)化LightGBM的重要超參數(shù)。DE算法的初始種群數(shù)量和算法迭代次數(shù)的取值會影響DE算法的性能,因此對種群數(shù)量取值[10,100],迭代次數(shù)取值[10,500],以AUC值作為優(yōu)化目標(biāo)函數(shù)返回值分別進(jìn)行實(shí)驗(yàn),結(jié)果如圖2、圖3所示。

      圖3 迭代次數(shù)比較

      從圖2、圖3可以看出當(dāng)種群大小和迭代次數(shù)分別設(shè)為20和100時(shí)DE算法可獲得最佳性能。通過DE算法優(yōu)化得到一組最優(yōu)的LightGBM超參數(shù)組合,即[n_estimators:164,max_depth:178,num_leaves:63,min_child_sample:42,learning_rate:0.16]。通過表9可以看出,超參數(shù)調(diào)優(yōu)后F1值提高0.98%,AUC值提高0.92%。因此可驗(yàn)證通過DE算法優(yōu)化LightGBM超參數(shù)可提高模型預(yù)測精度。

      表9 超參數(shù)優(yōu)化前后性能對比

      Q3:為了驗(yàn)證本文所提方法SDL-LightGBM的有效性,與近年同類論文進(jìn)行對比。Palomba等[16]使用邏輯回歸建立軟件缺陷預(yù)測模型。Pritam等[20]使用多層感知機(jī)建立軟件缺陷預(yù)測模型。對比實(shí)驗(yàn)將在相同項(xiàng)目數(shù)據(jù)集下進(jìn)行,確保實(shí)驗(yàn)具有可比性。從表10可以看出,本文所提出的方法SDL-LightGBM相比文獻(xiàn)[16]在F1值提高12.28%,在AUC值上提高18.63%,相比文獻(xiàn)[20]在F1值上提高5.67%,在AUC值上提高4.22%。因此可證本文所提方法SDL-LightGBM的有效性。

      表10 缺陷預(yù)測方法對比

      Q4:圖4給出全部數(shù)據(jù)特征對模型輸出結(jié)果的貢獻(xiàn)度,可見在全局情況下,代碼異味強(qiáng)度指數(shù)intensity對模型貢獻(xiàn)度最高,這符合軟件工程實(shí)際情況,即代碼異味越嚴(yán)重越有可能出現(xiàn)缺陷。

      圖4 全局特征對模型貢獻(xiàn)度

      然而每條實(shí)例數(shù)據(jù)都有各自特點(diǎn),具體問題要具體分析,因此不能用全局解釋的結(jié)果來分析單個(gè)實(shí)例數(shù)據(jù)。因此本文采用LIME解釋模型的單個(gè)實(shí)例。本文選擇一條帶缺陷的實(shí)例數(shù)據(jù)使用LIME解釋,如圖5所示,這條實(shí)例預(yù)測為有缺陷傾向的3個(gè)最重要的因素為 {fi-changes>61.00}{scattering>30.0}{intensity>1.05},對缺陷有影響的貢獻(xiàn)依次是0.19,0.19,0.11。而在全局解釋中intensity對模型貢獻(xiàn)度最高。這進(jìn)一步說明全局解釋結(jié)果不能解釋單個(gè)實(shí)例。LIME能計(jì)算單個(gè)實(shí)例數(shù)據(jù)中每個(gè)特征對模型影響的重要性和取值范圍,這能夠給測試人員分析具體缺陷類提供條件。

      圖5 LIME解釋局部實(shí)例

      4 有效性威脅

      本文有效性威脅分析主要從3個(gè)方面討論,分別為建立有效性威脅、結(jié)論有效性威脅和外部有效性威脅。

      建立有效性威脅主要與結(jié)構(gòu)度量和代碼異味的測量有關(guān)。本文通過CK[17]測量結(jié)構(gòu)度量,依靠JCodeOdor[18]測量代碼異味強(qiáng)度指數(shù)。為了驗(yàn)證結(jié)構(gòu)度量和代碼異味強(qiáng)度指數(shù)的有效性,采用Spearman秩相關(guān)性去除多重共線性影響,得到的15個(gè)特征相互之間的共線性均低于0.8,表明它們之間的相關(guān)性較弱。因此,本文模型建立不受特征之間的多重共線性的威脅。

      結(jié)論有效性威脅主要與評價(jià)指標(biāo)有關(guān),精確率含義是在所有被預(yù)測為正的樣本中實(shí)際為正的樣本的概率,召回率含義是在實(shí)際為正的樣本中被預(yù)測為正樣本的概率。前者偏向查準(zhǔn)率,后者偏向查全率。為了綜合兩者優(yōu)點(diǎn),本文采用F1值,同時(shí)考慮查準(zhǔn)率和查全率,是兩者達(dá)到一個(gè)平衡。而為了評價(jià)模型的好壞,即模型的區(qū)分能力,本文引入了ROC曲線下的面積AUC值。AUC值可以更全面的衡量一個(gè)模型的好壞。因此,本文結(jié)論不受評價(jià)指標(biāo)的有效性威脅。

      外部有效性威脅主要涉及到結(jié)果的泛化性。根據(jù)Palo-mba等[16]的建議,刪除缺陷比例高于75%的7個(gè)系統(tǒng),保證數(shù)據(jù)的健壯性。同一種方法在不同的應(yīng)用領(lǐng)域程序的缺陷預(yù)測中可能有不同的表現(xiàn)[22],因此本文分析了來自不同應(yīng)用領(lǐng)域、具有不同特征(大小、類數(shù)等)的12個(gè)軟件系統(tǒng)的35個(gè)版本,從而提供本文數(shù)據(jù)的可靠性。

      5 結(jié)束語

      本文提出基于SDL-LightGBM集成學(xué)習(xí)的軟件缺陷預(yù)測模型,為了避免特征冗余和多重共線的影響,根據(jù)Spearman+LightGBM混合特征選擇建立特征子集,避免無關(guān)特征和特征間的多種共線影響。采用集成學(xué)習(xí)算法LightGBM作為基礎(chǔ)分類器。為了進(jìn)一步提升分類器預(yù)測性能,利用DE算法優(yōu)化LightGBM的重要超參數(shù),得到一組最佳超參數(shù)組合。最后對模型實(shí)例進(jìn)行解釋,方便測試人員分析缺陷類。實(shí)驗(yàn)結(jié)果表明,本文提出的方法SDL-LightGBM與其它模型相比取得了更好的預(yù)測性能,F(xiàn)1值平均提高8.97%,AUC值平均提高11.42%。通過混合特征選擇后,模型訓(xùn)練時(shí)間縮短43.6%。同時(shí)使用LIME解釋復(fù)雜的黑盒模型,生成可解釋的特征重要性可視圖,進(jìn)而幫助測試人員更好理解軟件缺陷預(yù)測模型。

      未來的工作包括:①使用基于抽象語法樹的神經(jīng)網(wǎng)絡(luò)(abstract syntax tree neural network,ASTNN)[21]的深度學(xué)習(xí)方法捕捉代碼的上下文信息,并建構(gòu)分類器;②進(jìn)一步考慮其它特征對軟件缺陷的影響;③探究本文方法在實(shí)際應(yīng)用場景中的效度。

      猜你喜歡
      軟件缺陷特征選擇度量
      有趣的度量
      模糊度量空間的強(qiáng)嵌入
      基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
      迷向表示分為6個(gè)不可約直和的旗流形上不變愛因斯坦度量
      基于NPE-SVM的軟件缺陷預(yù)測模型
      開源程序的軟件缺陷分布特征的量化分析研究
      Kmeans 應(yīng)用與特征選擇
      電子制作(2017年23期)2017-02-02 07:17:06
      地質(zhì)異常的奇異性度量與隱伏源致礦異常識別
      聯(lián)合互信息水下目標(biāo)特征選擇算法
      軟件缺陷管理方案分析
      钟祥市| 迭部县| 潞城市| 太仓市| 龙里县| 罗平县| 巩留县| 庆安县| 尤溪县| 四会市| 凤冈县| 大荔县| 宽甸| 宜兰县| 宕昌县| 礼泉县| 长顺县| 集贤县| 应用必备| 济南市| 辉南县| 石景山区| 图片| 崇州市| 永城市| 广丰县| 乌兰浩特市| 凤城市| 玛多县| 呼图壁县| 台北市| 越西县| 鹰潭市| 阿合奇县| 衡山县| 长海县| 阿坝县| 汝州市| 米泉市| 岱山县| 星子县|