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

基于類不平衡的軟件缺陷傾向性預測研究

2022-03-07 04:34:50程雪平陳海華
現代計算機 2022年24期
關鍵詞:實驗模型

程雪平,陳海華

(廣州華商學院數據科學學院,廣州 511300)

0 引言

軟件缺陷是指軟件系統中不被期望、不可接受的偏差[1]。軟件缺陷的產生主要源于對軟件需求做出了錯誤的理解,或者在設計、編碼過程中,研發人員由于經驗或技術原因引入的人為錯誤。軟件缺陷的存在可能會導致巨大的經濟損失,甚至會威脅到人的生命安全。

軟件缺陷具有累積放大效應,即在整個軟件生命周期中,能夠越早地發現缺陷,其修復的代價就越小;反之,其修復的代價就越大。現代軟件工程中,隨著軟件規模日益龐大,軟件復雜度越來越高,軟件開發的響應速度、用戶對軟件質量的要求均越來越高。如何合理分配有限的資源,及時發現、修復缺陷,是保證軟件質量的關鍵。

軟件缺陷預測是保障軟件質量的重要手段,也是近年來軟件工程領域的研究熱點問題之一[2]。軟件缺陷預測技術主要包括三個方向:一是通過軟件度量元數據對軟件模塊的缺陷傾向性進行預測;二是預測模塊的缺陷數;三是對缺陷嚴重程度等進行預測[3]。

軟件缺陷傾向性預測技術是軟件缺陷預測的重要研究方向,是對系統中的模塊是否存在缺陷做出預判,有助于提前對軟件測試的資源分配做好合理的安排,為軟件質量提供堅實的保障。軟件缺陷傾向性預測是一個不平衡的二分類問題[4],目前所使用的研究算法包括復雜網絡、多目標優化、深度學習等,更多的是基于機器學習算法進行研究,如邏輯回歸、樸素貝葉斯、決策樹、支持向量機等算法[5]。

本文選取軟件缺陷預測中廣泛使用的數據倉庫NASA MDP 中的部分數據集,對原始數據中的異常值和重復值進行預處理,然后使用三種不同的過采樣方法處理不平衡類,最后根據特征數據采用隨機森林算法構建預測模型。

1 缺陷傾向性預測總體方案

軟件缺陷傾向性預測過程由四部分組成:獲取軟件缺陷數據資源庫、數據預處理、處理類不平衡問題、構建預測模型及評價指標,總體解決方案如圖1所示。

圖1 軟件缺陷傾向性預測方案模型

1.1 軟件缺陷數據資源庫

當前,用于軟件缺陷預測的數據主要有兩大類,包括商業性的數據倉庫和公共倉庫。商業性數據倉庫難以獲取,以這類數據源進行研究,其實驗結果難以比較和重現,因此,研究人員通常利用公共數據倉庫進行研究。較為常見的公共庫包括NASA、PROMISE、AEEEM以及ReLink等,這些公共庫中的度量元與缺陷信息都是可用的,有利于實驗結果的重現與分析比較。

NASA庫中總共包含13個缺陷數據集,其中,每個模塊對應一條樣本數據,無缺陷的模塊數據以N為標記結束,有缺陷的模塊以Y為標記結束,以CM1數據集為例,其數據結構如圖2所示。

圖2 CM1數據結構

本文選取NASA 庫中前四個數據集作為軟件缺陷傾向性預測實驗數據進行分析比較:CM1、JM1、KC1、KC3。

觀察軟件缺陷實驗數據集,無缺陷模塊數與有缺陷的模塊數相比,前者要多的多,這一現象與工程實踐中的軟件缺陷分布情況類似,即系統中的軟件缺陷分布基本滿足二八原則:20%的模塊集中了80%的缺陷數。

圖3 給出了CM1、JM1、KC1、KC3 四個數據集的有缺陷模塊與無缺陷模塊的計數餅圖。

圖3 實驗數據集中有缺陷樣本與無缺陷樣本對比圖

無論是工程實踐,還是提供研究的公共數據倉庫中,軟件缺陷預測數據集存在著嚴重的類不平衡問題。在軟件缺陷數據集中,由于有缺陷樣本與無缺陷樣本遵循二八定律,做缺陷傾向性預測時,若把所有模塊預測為無缺陷,其模型準確度依舊會很高,但會嚴重影響軟件缺陷傾向性的真實分類。

預測模型若將不同類的樣本數據進行錯誤的分類,付出的代價有所不同。在軟件缺陷傾向性預測中,如果將無缺陷的樣本分類成有缺陷樣本,會導致測試人員在進行軟件測試工作時,將寶貴的時間資源浪費在無缺陷模塊上;另一方面,若將有缺陷樣本預測成無缺陷樣本,則會出現缺陷漏報,缺陷漏報后把有缺陷的產品交付給客戶,這將會產生無法估量的后果,甚至使得項目產生滅頂之災。因此,在構建預測模型之前,需要處理軟件缺陷數據集的不平衡問題。

1.2 數據預處理

軟件缺陷傾向性預測數據預處理主要包括兩個方面:一是對異常數據的處理,二是對數據集中的類不平衡問題進行處理。

基于機器學習的原始異常數據總體分為重復數據、缺失數據以及噪聲數據[6]。重復數據指同一條數據在數據集中出現多次,這類異常數據的存在會使預測結果具有更強的傾向性。對重復數據的處理可以根據重復數據所占的比例進行降重,使其概率分布合理化。缺失數據指樣本中某些屬性對應的值缺失,這類異常數據存在的主要原因是信息的丟失。對缺失數據的處理,可以利用均值、極大似然值或者同類均值進行填充。噪聲數據指與其它數據有嚴重偏離的數據,對噪聲數據可以使用線性回歸的方式進行替換。

本文首先利用散點圖對異常值進行檢測,而后通過上述常規方法對數據集中的異常數據進行處理獲得異常數據處理后的數據集。對于類不平衡問題,可以從三個方面進行處理:數據處理層面、數據特征層面以及模型算法層面[7]。

數據處理層面解決類不平衡問題的主要思想是同對源數據集中的類進行重采樣,從而使得小類樣本與大類樣本的數量之間趨于平衡。當前,重采樣是解決類不平衡問題最直接的方法[5]。數據特征層面解決類不平衡問題的主要思想是自動化地選擇不平衡類中具有良好區分能力的特征子集,從而提高小類以及整體分類的準確率。模型算法層面處理類不平衡問題主要有代價敏感算法、單類學習、集成學習等[8]。

本文實驗主要用重采樣方法處理類不平衡問題,并對不同的采樣方法所產生的效果進行分析比較。重采樣方法可以分為下采樣和上采樣兩種。下采樣方法也稱為欠采樣,指的是通過一定的算法,將大類樣本中的部分數據剔除,從而使得大類樣本數據與小類樣本數據趨于平衡。欠采樣采樣方法處理類不平衡問題,可能會導致大量有用的數據丟失,從而導致模型存在欠擬合問題。本文主要使用上采樣方法處理類不平衡問題,對下采樣方法不做過多贅述。上采樣也稱為過采樣,是指通過增加小類樣本數量的方法與大類的樣本數量趨于平衡。最為常見的過采樣方法是隨機過采樣,即隨機復制小類中的樣本,這種方法的優點是簡單便捷,但這樣一來會造成對小類樣本識別不足的過擬合現象。由此,SMOTE 過采樣算法[9]被提了出來。

圖4 描述了SMOTE 過采樣算法生成新樣本的過程。

圖4 SMOTE過采樣算法合成新樣本過程

如圖4 所示,SMOTE 過采樣算法生成新樣本的主要過程分為如下四個步驟:

(1)在小類樣本中隨機選擇一個樣本作為中心樣本點;

(2)搜索與中心樣本點距離最近的k個鄰近同類樣本;

(3)在(2)中選出的k個近鄰樣本中隨機選擇一個樣本與中心樣本點進行連線;

(4)在中心樣本點與隨機選擇的樣本連線之間隨機生成一個新的小類樣本數據。

由上述算法可知,雖然SMOTE 過采樣算法相較于隨機過采樣有較大改進,但是在生成新樣本時必須是成倍增加,如此便難以避免樣本的重疊生成。基于此,有學者對基礎SMOTE 算法加以改進,其中以borderline-SMOTE 算法[10]應用較為廣泛。

borderline-SMOTE 算法將小類樣本數據分為三類:Safe 樣本點、Noise 樣本點以及Danger樣本點,Danger 樣本指靠近分類邊界的樣本點。該算法對SMOTE 算法的改進之處在于其僅選用邊界上的小類樣本,即Danger 樣本點合成新樣本,避免成倍新樣本的重疊生成,從而改善樣本類別的分布。

針對軟件缺陷傾向性預測的類不平衡問題,本文將對比使用隨機過采樣、SMOTE 過采樣以及borderline-SMOTE采樣方法的預測效果。

1.3 性能評價指標

當前,針對分類預測能力的評價標準較多,如準確率(Accuracy)、查準率(Precision)、召回率(Recall)、G-mean、AUC等,通常來說,它們的值越大越好,本文選擇查準率、召回率和AUC[11]作為模型性能評價指標。

軟件缺陷傾向性預測的結果是判斷數據集中的每一個模塊是否有缺陷,其取值要么為Y,要么為N,因此,這是一個二分類問題。對于二分類問題的結果,可以用混淆矩陣[12]評測。

混淆矩陣如表1所示。

表1 混淆矩陣

召回率反映分類器預測正樣本全度的能力,即正樣本被預測為正樣本在總的正樣本的比例,其計算公式如(2)所示:

在軟件缺陷數據集中,標記為有缺陷的樣本定義為正例,無缺陷樣本為負例。因此,查準率P表示預測為有缺陷的樣本中,真實為有缺陷樣本的占比數。召回率R表示真實的有缺陷樣本被預測為有缺陷樣本的占比數。

AUC 值通常被用來評價一個二值分類器性能的好壞,ROC 曲線[13]以下部分的面積就是AUC,AUC 的值越大,表示模型預測效果越好。為了比較不同的采樣方法處理軟件缺陷數據集中不平衡類的效果,本文引入AUC 作為評價指標之一。

1.4 隨機森林模型

目前,用于軟件缺陷預測的模型算法眾多,較為常見的有邏輯回歸、決策樹、樸素貝葉斯、隨機森林等。經過前人大量實踐證明,隨機森林分類算法在多數數據集上具有良好的性能表現[14]。

隨機森林算法[15]是一種集成學習算法,它以決策樹為基礎學習器去構建Bagging 集成。隨機森林預測模型具有準確率高、簡單、易于實現、計算開銷小、性能強等優點。本文選擇隨機森林算法作為軟件缺陷傾向性預測模型,可以比較不同的過采樣方法處理不平衡類的性能表現。

2 實驗分析

2.1 實驗環境

本文實驗環境主要包括SPSS modeler 18.0和anaconda3 下的jupyter,前者用來對異常值的檢測與處理,前文提到的三種過采樣算法以及隨機森林預測模型算法的實現則是在jupyter 環境中利用Python語言編程實現。

2.2 重采樣方案的選擇

本文主要比較不同的上采樣方法處理類不平衡問題的性能表現,因此在重采樣方案中選擇了三種不同的過采樣方法觀察預測效果:隨機過采樣、普通SMOTE過采樣算法、borderline-SMOTE過采樣算法。

圖5 以數據集CM1 為例,給出了三種不同過采樣方法的處理結果。

圖5 不同過采樣方法處理數據集CM1不平衡類的結果散點圖

圖5(a)是根據異常值處理后的數據集CM1繪制出的散點圖,反映了CM1 數據集中有缺陷樣本與無缺陷樣本的分布情況,其中正方形散點代表有缺陷樣本,菱形散點代表無缺陷樣本。圖5(b)是使用隨機過采樣方法生成新的有缺陷樣本,使得有缺陷樣本與無缺陷樣本數量相當之后所繪制的散點圖,虛線為有缺陷樣本分布的趨勢線,后同。

通過對比圖5(a)與圖5(b),其數據分布幾乎沒有任何變化,這是因為隨機過采樣所生成的新樣本是簡單的隨機復制原來的小類樣本數據,其所有新生成的數據點都與原來的樣本數據重復,因此,兩圖的可視化效果一致。

圖5(c)和圖5(d)分別為采用普通SMOTE 過采樣與改進的borderline-SMOTE 過采樣處理CM1數據集之后的有缺陷樣本與無缺陷樣本的分布情況。實驗中,SMOTE 過采樣與borderline-SMOTE 過采樣的k近鄰參數均設置為5,后者的danger 樣本類近鄰數設為10,從圖中結果可知,SMOTE過采樣合成的新樣本有大量的重疊現象,相比較而言,borderline-SMOTE 過采樣所合成的新樣本分布情況更合理。

2.3 實驗過程數據

針對類不平衡處理后的數據集中的每個樣本,使用隨機森林模型進行缺陷傾向性預測。為了降低數據的過擬合問題,在模型預測之前,對于每一個數據集,選擇70%的數據作為訓練數據集、30%的數據作為測試數據集進行訓練。

在類不平衡問題中,往往對小類樣本的預測結果更為重要。同樣,在軟件缺陷的傾向性預測中,對有缺陷樣本的檢測相對來說具有更為重要的現實意義。表2中的實驗數據為隨機森林模型預測不同數據集中有缺陷樣本的性能指標。

表2 三種過采樣算法評價指標數據對比

為了避免一次實驗結果帶來的偶然性,本文在每個數據集的預測模型上均進行了10 次實驗,最終的評價指標數據取10 次實驗結果的平均數。

2.4 實驗結果分析

根據上述實驗結果繪制折線圖,能夠更加直觀地對比出三種過采樣算法處理類不平衡問題后預測軟件缺陷傾向性的效果。

圖6是三種過采樣算法處理類不平衡問題后采用隨機森林模型預測后的查準率(Precision)值的對比,其中最下面的點狀折線代表隨機過采樣算法對應的值,中間的純實線折線代表普通SMOTE 過采樣算法對應的值,最上面的虛線折線代表borderline-SMOTE過采樣算法對應的值。

圖6 Precision值對比圖

圖7代表的是三種過采樣算法處理的召回率(Recall)對比折線圖,不同形狀折線代表的含義與圖6相同。

圖7 Recall值對比圖

圖8表示的是AUC值的對比圖。

圖8 AUC值對比圖

從實驗結果來看,針對軟件缺陷數據集中的類不平衡問題,采用不同的過采樣算法進行處理,對軟件缺陷傾向性的預測效果會有所不同。在少數評價指標上,隨機過采樣算法偶爾會稍優于普通SMOTE過采樣算法,但整體而言,SMOTE過采樣算法的性能表現優于隨機過采樣算法,borderline-SMOTE 過采樣算法明顯優于普通SMOTE過采樣算法以及隨機過采樣算法。

3 結語

近年來,軟件缺陷預測是一個較為熱門的研究領域,軟件缺陷傾向性預測是其中之一。軟件缺陷數據集中的類不平衡問題較為顯著,要對軟件缺陷傾向性進行預測,必須解決類不平衡問題。本文采用不同的過采樣方法處理缺陷數據集中的類不平衡問題,然后選擇隨機森林模型預測各數據集中樣本的缺陷傾向性,并通過最終的預測結果,利用查準率、召回率等性能評價指標對比了不同的過采樣算法處理缺陷數據集中類不平衡問題的最終效果。

后續的工作中,將針對軟件缺陷數據集中的類不平衡問題進行更深入細致的研究,并將研究如何更好地利用機器學習算法對軟件缺陷做出更精準的預測。

猜你喜歡
實驗模型
一半模型
記一次有趣的實驗
微型實驗里看“燃燒”
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
做個怪怪長實驗
3D打印中的模型分割與打包
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 国产精品一区二区无码免费看片| 日本日韩欧美| 亚洲AV电影不卡在线观看| 中文字幕不卡免费高清视频| 免费jjzz在在线播放国产| 欧美精品v欧洲精品| 亚洲,国产,日韩,综合一区| 无码区日韩专区免费系列| 综合色亚洲| 国产亚洲视频中文字幕视频| 欧美精品成人一区二区视频一| 亚洲欧美人成电影在线观看| 国产免费一级精品视频 | 青青草国产在线视频| 亚洲男人的天堂网| 精品国产黑色丝袜高跟鞋| 国产超薄肉色丝袜网站| 国产91无码福利在线| 国产精品福利一区二区久久| 久久综合色视频| 久久精品一品道久久精品| 欧美激情综合| 美女被操91视频| 狠狠色丁婷婷综合久久| 亚洲精品欧美日本中文字幕| 成年人福利视频| 亚洲成a人片在线观看88| 国产真实二区一区在线亚洲| 亚洲小视频网站| 亚洲首页在线观看| 免费观看国产小粉嫩喷水| 久久亚洲精少妇毛片午夜无码 | 丝袜美女被出水视频一区| 久久国产精品嫖妓| 国产女人在线观看| 久久婷婷国产综合尤物精品| 青青草国产免费国产| 亚洲天堂在线视频| 在线免费不卡视频| 伊大人香蕉久久网欧美| 久久a毛片| 欧美中文字幕在线视频| 五月婷婷综合在线视频| 亚洲午夜福利精品无码不卡| 五月婷婷综合在线视频| 国产丰满大乳无码免费播放 | 久久久久久久久18禁秘| 丁香婷婷综合激情| 波多野结衣AV无码久久一区| 国产精品理论片| 91丝袜在线观看| 一本大道视频精品人妻| 性欧美在线| 免费在线国产一区二区三区精品| 欧美爱爱网| 国产激情国语对白普通话| 在线看免费无码av天堂的| 97视频在线精品国自产拍| 欧美成人亚洲综合精品欧美激情| 69av免费视频| 午夜毛片免费看| 色一情一乱一伦一区二区三区小说| 毛片久久网站小视频| 亚洲无码日韩一区| 日韩天堂在线观看| 久久综合九色综合97婷婷| 欧美专区日韩专区| 国产一区成人| 久久无码免费束人妻| 99这里只有精品在线| 波多野结衣久久高清免费| 一区二区午夜| 无码内射中文字幕岛国片| 久草视频精品| 毛片免费高清免费| 免费播放毛片| 国产青榴视频| 午夜日b视频| 亚洲,国产,日韩,综合一区| 天堂亚洲网| 91最新精品视频发布页| 99精品免费在线|