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

代價敏感的Boosting 軟件缺陷預測方法

2022-03-12 05:56:16任振康石可欣
計算機工程 2022年3期
關鍵詞:分類方法

李 莉,任振康,石可欣

(東北林業大學 信息與計算機工程學院,哈爾濱 150040)

0 概述

軟件的可靠性是軟件工程領域最重要的指標之一[1-2],軟件缺陷預測技術可以有效提高軟件可靠性,降低測試成本,合理進行軟件缺陷預測可以幫助測試團隊快速定位軟件缺陷,修復系統存在的漏洞。近年來的軟件缺陷預測研究結果表明[3],絕大多數軟件缺陷集中在較小比例的軟件模塊中,即軟件缺陷預測領域存在嚴重的類不平衡問題。現有軟件缺陷預測技術產生的錯誤分類主要分為2 種[4]:將有缺陷的模塊誤分為無缺陷的模塊;將無缺陷的模塊誤分為有缺陷的模塊。在軟件工程實踐中,第一類錯誤的代價遠高于第二類錯誤。隨著機器學習技術的發展,眾多研究人員將機器學習技術應用于軟件缺陷預測領域。研究結果表明,代價敏感學習技術可較好地解決樣本中類不平衡問題[5],能夠為軟件項目的決策提供支持[6-7]。

目前,軟件缺陷預測領域采用的主要方法包括神經網絡[8]、邏輯回歸(Logistic Regression,LR)[9]、支持向量機(Support Vector Machine,SVM)[10]、貝葉斯模型[11]、集成學習方法[12]等。然而,上述方法在面對第一類和第二類錯誤分類代價不同的情況時,并未給出有效的解決方案。

YANG等使用以多個K最近鄰(K-Nearest Neighbor,KNN)為基分類器的Boosting算法進行軟件缺陷預測[13],但使用KNN 算法時存在以下問題:KNN 算法復雜度較高,且在處理類不平衡問題時對于稀有類別的預測準確率低。例如,在樣本不平衡時,即有缺陷類樣本容量很小、無缺陷類樣本容量很大,此時若輸入一個新的缺陷樣本,該樣本的K個鄰居中可能大容量類占大多數,從而導致分類結果誤差偏大。

相較KNN 算法,決策樹易于理解和實現,可以較直觀地體現數據特點,且其擅長處理二分類問題,但決策樹模型對多類別問題或連續型字段的分類效果不佳。在軟件缺陷預測領域,分類問題是一個二分類問題,即預測模塊是有缺陷模塊還是無缺陷模塊,因此,可以選取決策樹作為基分類器。李勇等使用以C4.5 決策樹作為基分類器的代價敏感Bagging算法進行軟件缺陷預測[14],實驗結果表明,該算法具有較好的性能,但時間復雜度較高。

針對以上問題,本文提出一種代價敏感的Boosting 軟件缺陷預測方法CSBst,以提升Boosting方法在二分類問題中的預測性能[15-17]。針對不同的錯誤分類賦予其不同權重,采用閾值移動方法進行決策樹基分類器集成,從而解決類不平衡問題并在提高預測性能的同時降低算法的時間復雜度。

1 常規Boosting 方法

設訓練數據集為{(x1,y1),(x2,y2),…,(xN,yN)},其中:xi為一個含有d個元素的列向量,即xi∈X?R;yi為該訓練數據集中的標簽集,y∈{-1,+1}。Boosting 方法具體步驟如下:

1)給出N個數據,初始化每個數據的權重并取值相同:

2)對每一個弱分類器(1,2,…,m),按照樣本分布權重Dm訓練數據,得到m個基學習器Gm(x)。Gm(x)的取值范圍為:

計算Gm(x)在加權訓練集中的分類誤差:

式(3)表示模型的誤差等于每一個錯分的樣本權重之和。

計算Gm(x)的系數,即該基分類器的權重:

3)根據模型權重更新數據的權重:

其中:Zm是正規化系數,用來確保所有的數據權重總和為1。

指數內部為:

若弱分類器m的分類結果和真實結果相同,則θm小于1,該數據集的樣本權重降低;若弱分類器m的分類結果和真實結果不一致,即θm大于1,則該數據集樣本權重增加。

4)通過迭代將多個弱分類器集成為一個強分類器:弱分類器i的權重為ai,弱分類器對于樣本i的分類結果為Gi(x),集成之后的學習器為G(x),sign(x)為符號函數,x>0 時輸出為1,x<0 時輸出為-1,集成學習的公式為:

2 代價敏感的Boosting 方法

2.1 方法步驟

在軟件缺陷預測領域對于誤報與漏報的懲罰因子實際不相同,誤報率較高易導致開發和測試資源的浪費,漏報率較高易導致含有缺陷模塊的軟件被交付到用戶手中[18]。軟件開發后期對缺陷的修復代價是前期的指數倍,交付后存在的軟件缺陷甚至會威脅客戶的生命財產安全,因此,軟件缺陷預測過程中對漏報的懲罰應大于誤報[19-20]。CSBst 方法在更新樣本權重時,增加產生第一類錯誤樣本的權重,使產生第一類錯誤的樣本權重高于無缺陷類樣本權重和產生第二類錯誤的樣本權重[21-22],由此可大幅提高預測結果的準確率。CSBst 方法流程如圖1 所示,其中,加粗標注為相對常規Boosting 的改進部分。

圖1 CSBst 方法流程Fig.1 Procedure of CSBst method

CSBst 方法具體步驟如下:

1)第一步同常規Boosting 方法。

2)第二步同常規Boosting 方法。

3)根據模型權重更新數據的權重:

其中:Zm是正規化系數,用來確保所有的數據權重總和為1。

指數內部為:

若弱分類器m的分類結果和真實結果相同,即分類正確,則Rresult<1,該數據集的樣本權重降低。若弱分類器m的分類結果和真實結果不同,即分類錯誤,則Rresult>1,該數據集的樣本權重增加。數據集的樣本權重由CL值決定。其中,CL的取值為:

4)通過迭代將多個弱基分類器集成為一個強分類器,集成學習的公式如下:

其中:弱分類器i的權重為ai;弱分類器對于樣本i的分類結果為Gi(x);集成之后的學習器為G(x);Tthreshold為調整閾值的參數;sign(x)為符號函數,x>0 時輸出為1,x<0 時輸出為-1。

2.2 CSBst 方法實現

CSBst 方法主要包括數據處理和閾值選擇2 個階段:

1)在數據處理階段,對數據集進行提取,將數據集分割為特征集和標簽集,使用基分類器決策樹進行數據集分類。決策樹對第一個特征進行劃分,該特征最大值為FFEATURE_MAX,最小值為FFEATURE_MIN。對于該特征劃分的步長SStep為:

從FFEATURE_MIN開始,每次增加一個SStep進行特征劃分,計算方式如式(16)所示,劃分完成后計算該劃分下的錯誤率。每個特征計算20 次,依次計算每個特征直至遍歷特征集合,選出并存儲分類錯誤率最低的特征和特征閾值。

2)閾值選擇階段主要對上述數據進行進一步處理。基于CSBst 方法思想,對于已經完成分類的第一個弱分類器,更新第一類錯誤、第二類錯誤和正確樣本的權重。依次處理每個弱分類器,最后根據基分類器的錯誤率更新其權重。

在CSBst 方法中,一直增加樣本權重雖會提高樣本的預測率,但也會在一定程度上使樣本過擬合,導致誤報率提高,無法有效解決類不平衡問題。為平衡預測率和誤報率,本文引入閾值移動的思想。在集成基分類器分類結果時,選擇合適值作為區分待預測模塊是否為缺陷模塊的閾值,集成加權結果小于該閾值的模塊并標記為正常模塊,大于該閾值的模塊標記為缺陷模塊。

在軟件缺陷預測領域,評價準則TPR、誤報率FPR、預測率P、平衡值BAL、平衡值F1 分別如式(17)~式(21)所示,定義二值分類的混淆矩陣如表1 所示。

表1 混淆矩陣Table 1 Confusion matrix

由混淆矩陣可知,TPR 值升高,FPR 值隨之升高。選取BAL 來平衡TPR 和FPR,最優閾值和權重的選擇以BAL 取得最大值為標準。

在CSBst 方法中,設置閾值為Threshold,初始值為0,權重為Weigh,初始值為1。遍歷Weigh 和Threshold,Weigh 為2.5 或Threshold 為1.5 時,TPR 值等于1,故設置Weigh 最大值為2.5,Threshold 最大值為1.5。每次遍歷步長為0.1,循環結束或TPR 值為1時遍歷停止。以BAL 取得最大值為模型的最優解。

2.3 CSBst 偽代碼

CSBst 方法的偽代碼如算法1 所示。

算法1代價敏感的軟件缺陷預測算法

3 實驗結果與分析

3.1 實驗環境

本文實驗采用公開的NASA 軟件缺陷預測數據集,包括CM1、PC1、KC1、PC3 數據集。所有結果采用10 次十折交叉驗證的平均值。實驗環境為Windows10 64 位操作系統,計算機內存為8 GB,處理器為Core i5-8250u。實驗選取文獻[16]提出的CSBKNN 方 法、CSCE 方法和Boosting 方法進行對比。數據集特征如表2 所示。

表2 數據集及其特征Table 2 Datasets and their characteristics

3.2 方法時間復雜度分析

CSBst 與CSBKNN 集成方式相同,與CSCE 集成時間復雜度一致。因此,CSBst 的時間復雜度由基分類器的時間復雜度決定。

CSBst 方法使用的基分類器為一維決策樹,決策樹的訓練時間復雜度為O(NMD),其中:N為訓練集中的樣本數;M為數據的維度;D是樹的深度。一維決策樹的深度為1,則時間復雜度為O(NM)。

CSBKNN 為KNN 集成的Boosting 方 法,KNN的時間復雜度為O(NM)。

CSCE 是C4.5 決策樹集成的代價敏感Bagging方法,決策樹的訓練時間復雜度為O(NMD)。

綜上,CSBst 方法與CSBKNN 方法所采用的基分類器時間復雜度以及集成時間復雜度均相同,因此,CSBst 與CSBKNN 時間復雜度一致。CSBst 和CSCE 相比,前者的基分類器時間復雜度更低,兩者集成時間復雜度相同,因此,CSBst 方法的時間復雜度低于CSCE 方法。

3.3 結果分析

3.3.1 實驗結果

本文選用4 個NASA 缺陷預測數據集作為測試數據集,實驗結果如表3 所示。

表3 4 種方法實驗結果對比Table 3 Comparison of experimental results of four methods

從表3 可以看出:

1)與CSBKNN、CSCE 以及常規Boosting 方法相比,CSBst 方法在大部分數據集中均能取得較好的預測率。CSBst方法的平均TPR 值為76%,而CSBKNN、CSCE 以及常規Boosting 方法分別為62.4%、76.2%、18.56%,其中,常規Boosting 方法的預測率最低,主要是因為其沒有處理類不平衡問題,預測結果自然偏向多數類。

2)CSBst、CSCE、CSBKNN方法的平均誤報率分別為31.6%、36%、25.8%,而常規Boosting 方法的平均誤報率僅為3.76%。本文選取BAL 作為綜合指標來評價預測性能,CSBst 方法具有較高的誤報率和預測率。

常規Boosting 與CSBKNN、CSCE 以及CSBst 方法相比,在方法流程中沒有考慮類不平衡問題的處理。CSBKNN、CSCE 以及CSBst 是專門為處理類不平衡問題而提出的代價敏感方法。本文選取的數據集取自真實的軟件項目,都存在類不平衡問題,因此,常規Boosting 方法性能較低。此外,為提高預測率,本文選取的性能評價標準為BAL=TPR-FPR。3 種代價敏感的方法通常都具有高預測率、高誤報率的特點,常規Boosting 方法具有低預測率和低誤報率的特點,預測率和誤報率等比增長,最后評價指標BAL 也等比增長,因此,在本文所采用的評價指標中常規Boosting 方法性能偏低。

綜上,常規Boosting 方法與CSBKNN、CSCE、CSBst 的性能差距主要是因為采用了特定的數據集與評價指標。對于性能較為接近的CSBst 和CSCE方法,本文選用F1 指標繼續進行深入分析,實驗結果如表4 所示。

表4 CSBst 與CSCE 的F1 指標結果對比Table 4 Comparison of F1 index results between CSBst and CSCE

從表4 可以看出,對于綜合評價指標F1,CSBst在4 個數據集中的性能均高于CSCE,分別高出0.41、0.33、0.25、0.31。CSBst 方法的F1 值較高,是由于其預測準確率P和預測率TPR 均較高所致。

相較CSBKNN 方法,在4 個NASA 實驗數據集中,CSBst 方法的BAL 提高7%,TPR 提高13.6%,FPR提高5.8%。相較CSCE 方法,在4 個實驗數據集中,CSBst 方法的BAL 平均提高3%,TPR 降低0.22%,FPR 降低4.4%,總體性能接近。在F1 指標上,CSBst性能優于CSCE,且CSBst 具有更低的時間復雜度,因此,CSBst 方法性能優于CSCE。與常規Boosting方法進行如上的比較分析,能夠得出同樣的結論。

綜上,CSBst 方法對軟件缺陷進行預測的整體性能明顯高于同類代價敏感的缺陷預測方法。

3.3.2a取值對實驗結果的影響

本節以PC1 數據集為例,給出實驗中代價因子a取值的選擇過程,為進行簡化,設置threshold 值為0。在采用CSBst 方法構建預測模型時,代價因子a≥1。當a>1 時,表示將有缺陷模塊預測為無缺陷模塊的代價較高;當a=1 時,表示正確和錯誤分類具有相同的代價。較低的TPR 意味著沒有找全有缺陷模塊,較高的FPR 意味著要利用較多的人力資源來對沒有缺陷的模塊進行測試。

從圖2 可以看出:

圖2 a 取值對模型性能的影響Fig.2 Influence of a values on model performance

1)當a=1 時,誤報率FPR 為3.1%,預測率TPR 為20%,預測率和誤報率均較低,但預測率FPR 低于60%,無法投入實際應用。

2)隨著a值的逐漸增大,誤報率FPR 和預測率TPR 都逐漸上升,當a=1.6 時,綜合性能指標BAL 最高,可以認為a=1.6 為CSBst 在PC1 數據集上的最優解。

3)當a>1.6 時,隨著a值的增大,綜合評價指標BAL 下降,TPR 升高,適用于對系統要求較高或測試資源較充足的情況。

4)當a>2.4 時,TPR>95%,隨著a值的繼續增大,TPR 呈穩定趨勢,FPR 不斷增長,因此,BAL 不斷減小。綜上,1.6 為a的最佳取值。

4 結束語

為提升軟件缺陷預測精確度,本文提出一種代價敏感的Boosting 軟件缺陷預測方法CSBst。通過細化不同種類錯誤樣本的權重更新方式來篩選出存在第一類錯誤的模塊,采用移動閾值加權集成的方法解決軟件缺陷模塊中的類不平衡問題,并有效提高軟件缺陷的預測率。在NASA 軟件缺陷預測數據集上進行實驗,結果表明,與CSBKNN、CSCE 方法相比,在指標相同的情況下,CSBst 方法的預測性能較高,時間復雜度較低,對于第一類錯誤分類樣本具有更好的查找效果。下一步將針對本文所設置的BAL 指標調整TPR 和FTR 的比重,研究更加合理穩定的比重設計方法,以保證算法的穩定性。此外,將探究線性回歸、邏輯回歸等不同基分類器對算法預測性能的影響。

猜你喜歡
分類方法
分類算一算
垃圾分類的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
學習方法
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
給塑料分分類吧
主站蜘蛛池模板: 看国产一级毛片| 欧美.成人.综合在线| 国产在线一二三区| 亚洲激情99| 国产主播一区二区三区| 国产精品亚洲va在线观看| 国产乱子伦无码精品小说| 久久精品无码一区二区日韩免费| 波多野吉衣一区二区三区av| 日韩经典精品无码一区二区| 成人福利一区二区视频在线| 亚洲成人在线免费| 久久久国产精品无码专区| 亚洲黄色视频在线观看一区| 国内视频精品| 国产一线在线| 伊人查蕉在线观看国产精品| 色综合日本| 一级毛片不卡片免费观看| 成年女人a毛片免费视频| 精品伊人久久久久7777人| 国产欧美日韩综合一区在线播放| 无码内射中文字幕岛国片| 园内精品自拍视频在线播放| 亚洲欧洲自拍拍偷午夜色无码| 亚洲美女一区二区三区| 亚洲swag精品自拍一区| 91外围女在线观看| 国产乱人视频免费观看| 国产美女一级毛片| 精品无码一区二区三区在线视频| 色天天综合| 国产精品久线在线观看| 久视频免费精品6| 男女男免费视频网站国产| 丁香婷婷激情网| 日韩a在线观看免费观看| 丁香婷婷激情网| 亚洲欧美在线综合图区| 一本大道香蕉久中文在线播放| 免费福利视频网站| 久久久久久尹人网香蕉| 国产激情在线视频| 日韩毛片在线播放| 国产自在线播放| 狠狠久久综合伊人不卡| 伊人福利视频| 亚洲乱码在线视频| 日韩在线永久免费播放| 欧美一区二区丝袜高跟鞋| 天堂网国产| 中文字幕在线视频免费| 免费aa毛片| 欧洲精品视频在线观看| 欧美激情,国产精品| 日本成人一区| 亚洲AV无码精品无码久久蜜桃| 精品第一国产综合精品Aⅴ| a天堂视频在线| 亚洲人成成无码网WWW| 欧美日本在线观看| 亚洲福利视频一区二区| 女人18一级毛片免费观看| 天天干天天色综合网| 老司国产精品视频| 欧美无遮挡国产欧美另类| 国产精品人莉莉成在线播放| 国产男人的天堂| 午夜日本永久乱码免费播放片| 伊人成色综合网| 日本免费一级视频| 孕妇高潮太爽了在线观看免费| 国产亚洲欧美在线人成aaaa| 日韩在线视频网站| 在线观看精品自拍视频| 欧美色图久久| 夜精品a一区二区三区| 亚洲精品视频在线观看视频| 久久精品亚洲专区| 国产一区二区人大臿蕉香蕉| 亚洲丝袜中文字幕| 欧美成人第一页|