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

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

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

程雪平,陳海華

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

0 引言

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

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

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

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

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

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

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

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

1.1 軟件缺陷數(shù)據(jù)資源庫

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

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

圖2 CM1數(shù)據(jù)結(jié)構(gòu)

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

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

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

圖3 實驗數(shù)據(jù)集中有缺陷樣本與無缺陷樣本對比圖

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

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

1.2 數(shù)據(jù)預處理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.3 性能評價指標

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

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

混淆矩陣如表1所示。

表1 混淆矩陣

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

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

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

1.4 隨機森林模型

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

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

2 實驗分析

2.1 實驗環(huán)境

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

2.2 重采樣方案的選擇

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

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

圖5 不同過采樣方法處理數(shù)據(jù)集CM1不平衡類的結(jié)果散點圖

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

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

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

2.3 實驗過程數(shù)據(jù)

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

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

表2 三種過采樣算法評價指標數(shù)據(jù)對比

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

2.4 實驗結(jié)果分析

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

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

圖6 Precision值對比圖

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

圖7 Recall值對比圖

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

圖8 AUC值對比圖

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

3 結(jié)語

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

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

猜你喜歡
實驗模型
一半模型
記一次有趣的實驗
微型實驗里看“燃燒”
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
做個怪怪長實驗
3D打印中的模型分割與打包
NO與NO2相互轉(zhuǎn)化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
主站蜘蛛池模板: 久草国产在线观看| 国产小视频a在线观看| 免费国产小视频在线观看| 麻豆国产原创视频在线播放| 欧美日韩精品一区二区视频| 国产欧美另类| 少妇极品熟妇人妻专区视频| 国产乱子伦一区二区=| 91小视频在线| 午夜人性色福利无码视频在线观看| 欧洲免费精品视频在线| 欧美五月婷婷| 久久综合AV免费观看| 亚洲午夜福利在线| 日韩精品久久久久久久电影蜜臀| 日本一区二区三区精品AⅤ| 国产精品一区不卡| 最新痴汉在线无码AV| 国精品91人妻无码一区二区三区| 亚洲天堂视频网站| 久久综合激情网| 欧美日本在线| 精品中文字幕一区在线| 日本黄色不卡视频| 91系列在线观看| 在线不卡免费视频| 91麻豆国产精品91久久久| 第一页亚洲| 日韩在线影院| 91最新精品视频发布页| 青青国产成人免费精品视频| 欧美福利在线| 99精品在线视频观看| 国产精品v欧美| 日本免费精品| 久久精品aⅴ无码中文字幕| 91精品伊人久久大香线蕉| 国产毛片基地| 国产哺乳奶水91在线播放| 热这里只有精品国产热门精品| 国内精品久久九九国产精品 | 热久久综合这里只有精品电影| 国产丝袜91| 综合色在线| 人妻无码中文字幕一区二区三区| 91九色最新地址| 日本亚洲欧美在线| 黄色网页在线播放| 亚洲色图综合在线| 亚洲区一区| 欧美国产三级| 一级一级一片免费| 99在线免费播放| 中日韩欧亚无码视频| 69视频国产| 亚洲欧美成人在线视频| 国产精品亚洲一区二区三区z| 97在线免费| 久久久精品无码一二三区| 国产a在视频线精品视频下载| 亚洲色图欧美| 97久久精品人人| 18禁黄无遮挡免费动漫网站| 九九热这里只有国产精品| 成人免费视频一区二区三区 | 激情无码字幕综合| 青青国产成人免费精品视频| 国产欧美又粗又猛又爽老| 99尹人香蕉国产免费天天拍| 精品无码一区二区三区电影| 99re在线观看视频| 91青青草视频在线观看的| 亚洲人视频在线观看| 99久久国产综合精品女同| 亚洲成人黄色在线观看| 国产97视频在线观看| 9久久伊人精品综合| 无码一区18禁| 日本人妻一区二区三区不卡影院| 香蕉在线视频网站| 日韩欧美国产综合| 久久国产精品娇妻素人|