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

基于機器學習的軟件缺陷傾向性預測研究

2022-05-09 02:26:17顏慧
電腦知識與技術 2022年7期
關鍵詞:機器學習

摘要:為了能盡早發現軟件中存在的缺陷,使用傳統的機器學習方法來預測軟件模塊的缺陷傾向性,選取了NASA公開數據集中的部分數據集,針對軟件缺陷預測中類不平衡的問題,分別采取了隨機欠采樣和隨機過采樣的方案,再使用邏輯回歸算法和隨機森林算法分別對數據集進行訓練和預測,使用了查準率(Precision)、查全率(Recall)、ROC曲線下面積(AUC)作為模型的評價指標,并給出了對比實驗的結果。

關鍵詞:機器學習;軟件缺陷預測;傾向性預測;邏輯回歸;隨機森林

中圖分類號:TP311.5? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)07-0067-04

1 引言

隨著軟件行業的快速發展,軟件數量劇增,軟件的形式趨于多樣化,而且軟件的復雜程度不斷提高、規模不斷增大,軟件開發人員人數增多,軟件質量問題日益突出。軟件缺陷是影響軟件質量的關鍵因素,而軟件質量問題又是導致軟件危機的重要原因。軟件缺陷是指軟件中存在的錯誤或故障,在軟件的開發過程中難免會在軟件產品中隱藏許多缺陷,這些缺陷有可能會導致軟件系統不能正常運行,嚴重的甚至會導致財產、人身安全的重大損失。

如果能盡早發現軟件中存在的錯誤并盡早修正這些錯誤,就可以避免在實際運行時發生錯誤而導致的損失,而且能減少開發的成本和時間,提高軟件質量,減少軟件危機帶來的影響。如何充分做好軟件的測試工作,保障軟件質量,提高軟件的可靠性,是軟件工程中的一個重要研究課題。

隨著人工智能技術的發展,如果能在傳統的軟件工程方法學中結合機器學習及深度學習等先進的技術來預測軟件缺陷,盡早地預測出軟件中哪些模塊可能存在缺陷、缺陷數量、缺陷的嚴重程度等,就可以提高軟件測試的智能化程度,給軟件質量提供有力的保障,并在一定程度上緩解軟件危機。在企業的實際應用中,通過機器學習技術來預測軟件缺陷,通過對軟件缺陷的嚴重程度進行排序,優先處理較嚴重的軟件缺陷,就可以在有限的時間、成本、人力等資源限制之內,優化資源的分配,提高軟件測試的效率及效果,提升軟件質量,節約企業的成本,提高項目的成功率。

軟件缺陷預測是軟件工程領域的熱點問題,國內外眾多學者對軟件缺陷的預測進行了研究,提出了多種研究方法并取得了豐富的研究成果,比較常見的技術是使用統計學和機器學習(包括深度學習)的技術來進行軟件缺陷預測[1]。

預測軟件模塊缺陷的傾向性就是預測軟件模塊中是否存在軟件缺陷,這是一個二分類問題。在預測軟件模塊缺陷傾向性時,常用的算法有邏輯回歸、SVM(支持向量機)、貝葉斯網絡、決策樹、集成學習、神經網絡等有監督學習算法,K-means、譜聚類等無監督學習算法,基于圖、主動半監督學習、半監督字典學習方法等半監督學習算法[2]。

目前已經有一些公開的軟件缺陷庫可供研究,但是這些數據集中普遍樣本數較少,且在數據集中存在嚴重的類不平衡問題,因此本文主要采用傳統的機器學習方法來研究軟件缺陷的傾向性預測的問題,并對比各機器學習算法的實驗結果。

2 方案設計

方案設計的總體思路是先選取合適的數據集,在程序中讀取數據集中的數據,使用數據可視化等方法和手段去觀察和分析數據集中樣本的情況,例如樣本是否存在缺失值、異常值,是否存在類不平衡的問題等。根據觀察的結果對讀取的數據進行預處理,如果存在缺失值和異常值的情況,則對缺失值進行填充,異常值進行刪除或者是根據一定的策略,用均值或上下樣本的值進行替換;如果樣本中存在類不平衡的問題,則需要對樣本進行上采樣或下采樣,使得數據集中的樣本基本達到類平衡。之后根據具體的問題選擇合適的機器學習模型及模型評價指標,對數據集進行劃分之后,使用訓練集對機器學習模型進行訓練,使用驗證集調整模型參數,最后使用測試集對模型的效果進行評價。通過對比模型的評價指標得分,從中選取最適合的機器學習模型來對實際應用中軟件的缺陷傾向性進行預測。

2.1 數據集

軟件缺陷數據集按來源可分為商業數據集和公共數據集這兩大類。因為商業數據集一般不易獲得,因此研究人員常用的公共軟件缺陷數據集,包括NASA、PROMISE等軟件缺陷數據集。使用公共數據來進行研究,有利于實驗復現。

文中使用的數據集是NASA軟件缺陷數據集,從中選取了12個數據集作為實驗數據。在NASA軟件缺陷數據集中,每個無缺陷的模塊對應一條標記為無缺陷的樣本,每個有缺陷的模塊對應一條標記為有缺陷樣本。通過對這些數據集中的樣本進行統計分析,得到每個數據集中的樣本數、特征數、無缺陷模塊數、有缺陷模塊數以及缺陷率如表1所示。

根據帕累托法則,在軟件中,約有80%的錯誤集中在20%的代碼中,因而在大部分的軟件缺陷數據集中,大部分模塊是無缺陷模塊,只有少部分模塊是有缺陷模塊,并且無缺陷模塊的數量要遠大于有缺陷的模塊。從表1中的12個軟件缺陷數據集的統計數據中也可以較直觀地看出,在NASA大部分的軟件缺陷數據集中,無缺陷樣本數要遠大于有缺陷樣本數。因此,在軟件缺陷的預測問題中,類不平衡的問題格外突出。在數據集中存在類不平衡,就會產生誤報和漏報的問題。在進行軟件缺陷預測時,將有缺陷樣本預測為無缺陷樣本,就會導致漏報;而將無缺陷樣本預測為有缺陷樣本,就會產生誤報。而漏報和誤報的代價是不同的,誤報會導致在測試時增加測試人員、測試時間等成本,而漏報則會在軟件交付給客戶之后產生不可預計的后果。因此,需要在軟件缺陷預測的過程中處理類不平衡的問題。

2.2 數據預處理

數據預處理部分主要包括異常值處理、降維處理、類不平衡處理、數據差異處理等。異常值處理又包括異常值的檢測和異常值處理。異常值的檢測可以通過可視化的方法來初步判斷哪些是異常值,常用的工具有散點圖、箱線圖等。異常值的處理有刪除、填充等方式,可以根據閾值將異常值刪除,或用上下樣本的正常值進行填充。

文中首先對數據集中的樣本進行缺失值、異常值、標準化等常規的預處理之后,再根據軟件缺陷預測問題中類不平衡的問題,在數據層面上再對數據進行進一步的處理。

在處理類不平衡問題時,目前的研究主要從數據層面和算法層面來處理[3]。從數據層面處理類不平衡問題,主要有抽樣法和數據集劃分法等。在算法層面處理類不平衡問題,主要有代價敏感法、集成學習法、閾值移動法等。本文采用隨機過采樣和隨機欠采樣的方法來處理軟件缺陷數據集中類的不平衡問題,分別通過隨機過采樣和隨機欠采樣的方式獲取兩個處理之后的數據集,再用相同的模型去進行訓練,然后比較兩種方案的實驗結果。

在隨機欠采樣方案中,首先計算出數據集中標記為有缺陷樣本的數量,然后在標記為無缺陷的樣本中,隨機選取與有缺陷樣本同樣數量的樣本,再將有缺陷樣本和無缺陷樣本進行組合得到下采樣之后的數據,在這個基礎上進行模型的訓練與預測。

在隨機過采樣方案中,采用的是SMOTE過采樣技術,使用SMOTE算法來生成新的標記為有缺陷的樣本,與之前的樣本進行合并,從而得到隨機上采樣之后的數據集,達到類之間的基本平衡。

2.3 選取評價指標

預測軟件缺陷傾向性是一個二分類問題,在分類問題中評價模型預測性能時常用的評價指標有Accuracy(準確率)、Precision(查準率)、Recall(查全率)、AUC(ROC曲線下面積)等[4]。本文選取Precision(查準率)、Recall(查全率)、AUC(ROC曲線下面積)作為模型的評價指標。

對于二分類問題,分類結果常用混淆矩陣來表示,如表2所示。

其中TP代表真正例的數量,FP代表假正例的數量,TN代表正反例的數量,FN代表假反例的數量。

查準率Precision表示在所有預測為正例的樣本中,真正例的比例。其定義如式(1)所示:

查全率Recall表示在所有正樣本中,預測正確的比例。其定義如式(2)所示:

把數據集中標記為無缺陷的軟件模塊作為正例,標記為有缺陷的軟件模塊作為反例,則P表示在所有預測為無缺陷樣本中,標記為無缺陷樣本的比例。R表示在所有標記為無缺陷樣本中,將標記為無缺陷樣本預測為無缺陷樣本的比例。

因為在進行軟件缺陷預測時,需要比較多個學習器的性能,因此選取了AUC作為模型的一個評價指標。在進行多個學習器性能的比較時,常用的指標是AUC(ROC曲線下面積)。ROC曲線是以“真正例率”和“假正例率”作為坐標系的縱軸和橫軸進行繪制,AUC代表ROC曲線下的面積。AUC越大,則學習器的性能越好。

2.4 邏輯回歸模型

邏輯回歸(Logistic Regression)是做分類任務時一種比較基礎的機器學習算法,因為軟件缺陷傾向性問題是一個二分類問題,因此可以使用邏輯回歸模型去解決軟件傾向性預測的問題。

在線性回歸模型中,使用輸入樣本的特性的線性組合來產生預測值,如式(3)所示:

在二分類問題中,在線性回歸模型的基礎上,邏輯回歸模型中使用了Sigmoid函數將線性回歸模型中得到的預測值映射到[0,1]區間,完成了從預測值到概率值的轉化,從而可以得到相應類別的預測概率值。Sigmoid函數如式(4)所示:

邏輯回歸模型可以直接對樣本屬于各類別的可能性進行建模,并且得到各類別相應的概率預測。

2.5 隨機森林模型

隨機森林(Random Forest)是一種集成學習算法,以決策樹作為基學習器,使用Bagging進行集成,構建出泛化能力更強的學習器。隨機森林由多棵決策樹組成,每棵決策樹從樣本的屬性集合中,隨機選擇一個包含k個屬性的子集,再從中選出最優屬性用于劃分,最后在預測分類時,根據每棵樹的結果來投票決定樣本所屬的類別。隨機森林算法比較簡單,也有不錯的性能表現。

文中選取了以上兩種傳統機器學習算法來建立軟件缺陷的預測模型,并對比兩種算法在兩種采樣方案中的性能。

3 實驗結果分析

實驗在Anaconda3環境下,采用Python語言編寫,完成程序的編寫和調試。首先對數據集按照上采樣和下采樣兩種方案進行處理,在兩種方案下重新構造類平衡的數據集,然后將新構造的數據集劃分為訓練集和測試集,分別使用了邏輯回歸算法和隨機森林算法使用訓練集對模型進行訓練,使用測試集來進行預測得到最終預測結果,對預測結果使用之前選定的Precision(查準率)、Recall(查全率)、AUC(ROC曲線下面積)等指標進行評分,并對實驗的結果進行對比分析。

3.1 隨機欠采樣方案

在隨機欠采樣方案中,在標記為無缺陷的樣本中,隨機選取與有缺陷樣本同樣數量的樣本,再將有缺陷樣本和無缺陷樣本進行組合,得到新的類平衡的數據集[5]。由于軟件缺陷數據集中存在類不平衡問題,標記為無缺陷樣本數要相對多于標記為有缺陷樣本數,因此得到新數據集中的樣本數就會較少。

3.2 隨機過采樣方案

在隨機過采樣方案中,使用SMOTE算法[6],對標記為有缺陷的少數樣本進行分析,生成新的標記為有缺陷的樣本,與原先的標記為無缺陷樣本合并為新的類平衡的數據集,在此基礎上進行模型的訓練。由于標記為無缺陷樣本數量較多,因此合成之后的新數據集中的樣本數會增多。

3.3 實驗結果分析

根據實驗結果數據,繪制出Recall值對比的折線圖如圖1。

繪制出Precision值對比的折線圖如圖2所示。

從實驗結果可以看出,隨機上采樣方案的總體性能優于隨機下采樣方案。這是由于隨機欠采樣生成的新數據集樣本數量較少,模型訓練不充分,存在欠擬合現象。而在隨機過采樣方案中,合成了新的標記為有缺陷的樣本,新的樣本集數量增多,減少了模型欠擬合的風險。

從總體上看,隨機森林算法總體上優于邏輯回歸算法。由于隨機森林算法采用的是集成學習算法,集成了多個基學習器,因此泛化能力更強,在查準率Precision上比邏輯回歸算法表現更好。

4 結束語

軟件缺陷預測是軟件工程領域的熱點問題,主要從軟件模塊的缺陷傾向性、軟件模塊中缺陷數量、軟件模塊中缺陷的嚴重程度等方面來對軟件缺陷進行預測。

文中主要研究了軟件缺陷傾向性預測的問題。針對目前常見的公開軟件缺陷數據集中數據樣本數量較少的現狀,采取了一些經典的機器學習算法,如邏輯回歸算法、隨機森林算法來對軟件模塊的缺陷傾向性進行預測。對于在軟件缺陷數據集中存在嚴重類不平衡的問題,分別采取了隨機上采樣和隨機下采樣的方案生成新的數據集,通過實驗對比這兩種方案的性能表現。在選擇模型的評價指標時,使用了分類問題中常用的一些指標,如精確率(Precision)、召回率(Recall)、AUC(Area Under ROC Curve)等作為模型的評價指標,并給出了不同的采樣方案、不同的算法對比實驗的結果。

在后續的工作中,將繼續研究如何使用傳統的機器學習方法來預測軟件模塊中存在的缺陷數量,以及在有缺陷的模塊中缺陷的嚴重程度,并進一步研究如何更好地解決軟件缺陷預測問題中存在的嚴重類不平衡問題。

參考文獻:

[1] 宮麗娜,姜淑娟,姜麗.軟件缺陷預測技術研究進展[J].軟件學報,2019,30(10):3090-3114.

[2] 吳方君.靜態軟件缺陷預測研究進展[J].計算機科學與探索,2019,13(10):1621-1637.

[3] 劉文英,林亞林,李克文,等.一種軟件缺陷不平衡數據分類新方法[J].山東科技大學學報(自然科學版),2021,40(2):84-94.

[4] 葛修婷,潘婭.機器學習技術在軟件測試領域的應用[J].西南科技大學學報,2018,33(4):90-97.

[5] 李冉,周麗娟,王華.面向類不平衡數據集的軟件缺陷預測模型[J].計算機應用研究,2018,35(9):2806-2810.

[6] 王海,江峰,杜軍威,等.過采樣與集成學習方法在軟件缺陷預測中的對比研究[J].計算機與現代化,2020(6):83-88.

【通聯編輯:謝媛媛】

收稿日期:2021-12-08

基金項目:廣東白云學院2021年度校級科研項目:基于機器學習的軟件缺陷預測研究(項目編號:2021BYKY19)

作者簡介:顏慧(1979—),女,廣西橫州人,講師,碩士,研究方向為軟件工程、機器學習。

猜你喜歡
機器學習
基于詞典與機器學習的中文微博情感分析
基于網絡搜索數據的平遙旅游客流量預測分析
時代金融(2016年27期)2016-11-25 17:51:36
前綴字母為特征在維吾爾語文本情感分類中的研究
科教導刊(2016年26期)2016-11-15 20:19:33
下一代廣播電視網中“人工智能”的應用
活力(2016年8期)2016-11-12 17:30:08
基于支持向量機的金融數據分析研究
基于Spark的大數據計算模型
基于樸素貝葉斯算法的垃圾短信智能識別系統
基于圖的半監督學習方法綜述
機器學習理論在高中自主學習中的應用
極限學習機在圖像分割中的應用
主站蜘蛛池模板: 真人免费一级毛片一区二区| 欧洲av毛片| 四虎永久免费地址在线网站| 国产免费a级片| 在线观看国产一区二区三区99| 91黄视频在线观看| 国产欧美日韩另类| 日韩在线网址| 日韩欧美国产另类| 国产夜色视频| 日本欧美中文字幕精品亚洲| 成人精品区| 欧美在线天堂| 久热中文字幕在线| 日韩无码视频网站| 国产在线97| 香蕉视频在线精品| 亚洲精品在线91| 无码专区国产精品第一页| 免费人成又黄又爽的视频网站| 在线免费看片a| 国产成人精品一区二区| 亚洲成人在线网| 成人免费视频一区二区三区| 中文字幕乱码中文乱码51精品| 国产成人亚洲毛片| 欧美.成人.综合在线| 亚洲国产av无码综合原创国产| 狼友视频一区二区三区| 久久国语对白| 中文字幕中文字字幕码一二区| 国产日韩欧美一区二区三区在线| 亚洲制服丝袜第一页| 精品一區二區久久久久久久網站| 国产十八禁在线观看免费| 中文无码精品A∨在线观看不卡| 最新加勒比隔壁人妻| 奇米影视狠狠精品7777| 无码AV日韩一二三区| 亚洲精品少妇熟女| 一级香蕉视频在线观看| 日韩高清无码免费| 91亚洲免费视频| 欧美亚洲国产日韩电影在线| 高清免费毛片| 一级不卡毛片| 亚洲日韩精品伊甸| 好吊色国产欧美日韩免费观看| 国产不卡网| 又大又硬又爽免费视频| 国产日本一区二区三区| 色偷偷综合网| 国产欧美视频在线观看| 午夜精品一区二区蜜桃| 国产精品视频白浆免费视频| 亚洲av综合网| 亚洲欧洲自拍拍偷午夜色无码| 国产成人精品视频一区二区电影| 就去吻亚洲精品国产欧美 | 亚洲免费人成影院| 亚洲精品视频免费看| 真实国产精品vr专区| 少妇被粗大的猛烈进出免费视频| 好紧太爽了视频免费无码| 五月六月伊人狠狠丁香网| 亚洲免费播放| 成人综合久久综合| 国产精品白浆在线播放| 天堂av综合网| 亚洲AV无码一二区三区在线播放| 欧美黄网站免费观看| 亚洲第一网站男人都懂| 久草视频中文| 亚洲男人天堂网址| 国产精品人莉莉成在线播放| 找国产毛片看| 九九热在线视频| 少妇极品熟妇人妻专区视频| 狠狠色噜噜狠狠狠狠色综合久| 最新午夜男女福利片视频| 在线国产你懂的| 成人福利免费在线观看|