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

回環軟件缺陷數量預測模型

2021-04-12 05:18:56紀欣沅
計算機工程與應用 2021年7期

李 莉,紀欣沅,宋 嵩

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

軟件缺陷預測[1-5]指的是通過對歷史軟件數據的學習得出缺陷預測模型,然后對新的軟件模塊進行預測分析。缺陷預測的主要應用場景為在軟件測試之前,預先分析出可能存在的缺陷。根據預測的目的可將缺陷預測模型大致分為兩類:(1)二分類問題的軟件缺陷預測模型,即預測軟件模塊是否含有缺陷。(2)基于缺陷數量的軟件模塊排序預測,并根據預測出的缺陷數量的多少給出模塊的排序。

基于二分類問題的軟件缺陷預測模型目的是預測軟件模塊是否含有缺陷,引導測試人員將注意力集中在包含缺陷的軟件模塊上,并調用測試資源進行軟件模塊測試。此方法能有效指導測試人員,提高了測試效率,但是仍然無法正確預測所有的軟件模塊。如果將有缺陷的模塊錯誤的預測為無缺陷的模塊時,則存在不能及時發現缺陷的情況,如果將無錯誤的模塊預測為有缺陷的模塊,會引起測試資源浪費。

基于缺陷數量的軟件模塊排序預測,根據模型預測出的軟件模塊缺陷的數量,按照缺陷數量的多少進行排序,集中資源優先測試軟件缺陷數量多的模塊。在實際中,準確缺陷數量預測具有極高的難度,較難給出精確的軟件模塊缺陷個數,因此相關領域根據預測出的軟件模塊缺陷數量對軟件模塊進行排序,根據排序結果分配測試資源。

2012年,Wang等[6]提出了一種基于狀態轉換模型的軟件缺陷數量預測方法。該方法利用歷史數據構建狀態轉換模型,然后利用馬爾可夫鏈預測未來狀態下的缺陷個數。2015年,Rathore等[7]提出了利用遺傳算法和決策樹回歸算法進行軟件模塊缺陷數量預測,實驗采用promise 數據集,結果表明,該模型具有較好的預測效果。2016年,Rathore等[8]探究了決策樹回歸算法在同項目和跨項目兩種情況下軟件缺陷數量預測的性能,實驗結果表明,在同項目中決策樹回歸算法具有更好的預測性能。2017年,Rathore等[9]提出了利用線性回歸的組合規則模型和梯度增強回歸組合規則模型進行軟件缺陷數量預測,實驗表明,梯度增強回歸則和規則模型具有較好的性能。2019年,Ni等[10]提出了基于Pareto的多目標優化算法,經過試驗證明取得了良好的效果。

2018年,馬子逸等[11]提出了面向軟件缺陷個數預測的混合特征選擇方法,該方法在保證預測性能的同時降低了特征的選擇時間。2018年,簡藝恒等[12]提出了基于數據過采樣和集成學習的軟件缺陷數目預測方法。實驗結果表明相比于原始的預測方法,此方法在性能上有較大的提升。2018年,付忠旺等[13]提出了回歸算法對軟件缺陷個數預測模型性能的影響。實驗結果表明梯度boosting回歸算法和貝葉斯嶺回歸算法具有更好的預測效果。2019年,李葉飛等[14]提出了針對軟件缺陷數預測的特征選擇方法。此模型能夠有效地移除冗余和無關的特征,構建高效的軟件缺陷數預測模型。

通過對當前軟件缺陷數量預測方法的研究,軟件缺陷數量預測的研究工作主要分成兩類:第一類是通過改進回歸算法,提高缺陷預測的準確度。當數據集中特征維度過大時,可能會造成維度災難。第二類是通過研究特征之間的相關性,消除無關特征和冗余特征,提高軟件缺陷預測的準確性。軟件模塊產生缺陷的情況多種多樣,僅憑借特征之間的相關性來判斷軟件缺陷產生的條件是不夠的。

針對以上問題,本文提出了回環軟件缺陷數量預測模型(PNSDL)。本文從特征之間的相關性和特征對于數據簇的貢獻度出發進行特征提取,將學習器的性能作為最佳特征子集選擇的評價準則。通過分析軟件缺陷的產生和不同特征之間的聯系,利用反距離加權的方式將學習器和數據動態的進行集成,最終得出軟件缺陷數量預測模型。

1 回環軟件缺陷預測模型

1.1 研究動機

聚類分析的基本思想是根據物以類聚的原理,將數據分成不同的簇,簇與簇之間的相似度盡可能的小,而簇內數據之間具有較高的相似度。在軟件缺陷數據集中,軟件模塊度量元之間的關系決定了軟件模塊是否產生缺陷和產生缺陷的數量,因此需要采取必要措施挖掘不同度量元組合和產生缺陷數量之間的關系。

本文采用改進的密度峰值聚類[15],此方法不需要預先指定簇的個數,改進了最初的密度峰值聚類需要手動選取簇中心的缺陷,有效避免了人工選取存在的誤差。

當數據的規模逐漸增大,數據維度也隨之增加。進行特征選擇可以減少數據維度,刪除無用的度量元,有效地提高數據的處理效率。特征選擇主要分為三類:過濾式特征選擇、包裹式特征選擇、嵌入式特征選擇。本文采用了包裹式特征選擇,將學習器的性能作為特征子集的評價標準。

1.2 模型設計

回環軟件缺陷數量預測模型主要分成兩部分,即回環特征選擇和加權集成預測。模型整體流程如圖1所示。

1.2.1 回環特征選擇

在回環特征選擇階段,選擇融合了改進密度峰值聚類的包裹式回環特征選擇方法,在每一次回環中進行特征選擇,并訓練出學習器。首先對數據進行聚類分析,劃分出不同的簇,訓練學習器,篩選出貢獻率最大的特征作為初始特征,其余特征作為備選特征。接下來根據初始特征重新將數據進行聚類劃分,然后訓練不同的學習器,并測試學習器,得出測試指標,依據測試指標選擇出的特征重新進行數據提取,此時作為第一次回環。在回環選擇中,當測試指標不再減小,或者備選特征組無任何特征時,回環結束。否則,在備選特征組中選擇一個特征加入初始特征中重新進行聚類、特征選擇并持續回環。偽代碼如下所示:

圖1 回環軟件缺陷數量預測流程圖

輸入:數據集

輸出:特征組和學習器

1. 對數據進行聚類,選擇聚類中心icl

2. 數據劃分到不同的簇cl

3. 采用嶺回歸模型對各簇進行訓練,

4. 提取重要特征組成特征組features,其余特征作為備選特征sum_features

5. For sum_features數量-features數量to 0 do

6. Fori=0 tosum_features數量do

7. 臨時特征組temp_features=features+sum_features[i]

8. 根據temp_features將數據重新進行聚類;

9. 訓練學習器模型,測試得到指標數據;

10. End for

11. 根據指標選擇最優特征,將特征加入特征組features,減少sum_features中的特征;

12. If特征指標不再減小

13. 當前features為最優特征組

14. 當前特征組對應的各類簇的學習器為最優簇學習器

15. Break

16. End if

17. End for

回環特征選擇流程如圖2所示,具體操作步驟如下:

(1)數據預處理。數據歸一化,把數據的范圍設定在0~1之間,降低特征數據對于預測模型的影響。

(2)聚類分析。計算每一條數據fi其自身的密度ρi,與高密度點之間的距離δi。用dij表示數據fi和數據fj之間的歐式距離,則dij的計算如公式(1)所示:

其中,m表示特征的個數,χ表示每一條數據所對應的特征。數據fi的自身密度ρi表示為與其距離小于截斷距離dc的所有特征個數,其定義如公式(2)所示:

其中,X作為一種二值函數,當dij?dc<0 時,函數X的結果為1;當dij?dc>0 時,函數X的結果為0;dc為截斷距離。數據fi與高密度點之間的距離δi的計算方法為,將密度按照從大到小的順序排列:ρi>ρj>ρk>…。δi的大小為密度大于ρi的密度點中,距離fi最近的點的歐式距離,當fi的密度最大,則δi的大小為距離fi最遠的點的歐式距離。

對于聚類中心的選取,馬春來等[15]將密度峰值聚類方法進行改進。首先計算聚類中心的指標γ,如公式(3)所示:

其中,z(·)為歸一化函數,然后根據γ的值進行降序排列,尋找到γ趨勢變化最大的點γc,并將γ>γc的點均作為聚類中心。

(3)特征提取。依據聚類中心,將數據劃分成不同的簇,訓練簇對應的學習器。依據特征的貢獻度,得出特征排名,將每一個簇的前三種特征進行提取,組成初始特征組,其余特征作為備選特征組。

(4)數據劃分。根據初始特征組重新對數據進行聚類,得到新的數據簇,訓練學習器,并得到測試指標。

(5)回環特征提取。依據測試指標從備選特征組中選取一個特征,加入初始特征組,重復進行第(4)步,直到測試指標不再改善,或者備選特征組的特征全部提取出。此時初始特征組包含的特征就是最優特征,各簇的學習器為最優簇學習器。

圖2 回環特征選擇流程圖

1.2.2 反距離加權集成預測

本文采用反距離加權[16]集成的方式進行學習器的集成。通過聚類分析,具有相似特征的數據被分到同一個簇。在同一個簇中的軟件模塊所產生的缺陷數量和類型相似,但是軟件模塊產生缺陷的原因多種多樣,產生的模塊和多個簇都具有相關性,不能簡單的劃分到某一個簇中進行判斷。本文提出的反距離加權集成方法是一種動態的加權集成方法。通過測量待預測數據到各簇中心的距離,動態的計算各簇學習器在預測此條數據中所占的權重。將各簇學習器的預測值進行加權集成,得到最終預測結果。偽代碼如下所示:

輸入:待預測數據

輸出:預測結果

1. 計算待預測數據到各簇中心的歐式距離dist

2. 得到數據在各簇學習器中的預測值result_i

3. sum_value=sum(1/dist)

4. 各簇對應學習器的權值w_i=(1/dist)/sum_value

5. sum_result=sum(w_i* result_i)

反距離加權集成流程如圖3所示。

圖3 反距離加權集成流程圖

具體步驟如下所示:

(1)計算數據到各個數據簇中心的距離dist,距離采用歐式距離的計算方式。

(2)根據到各個數據簇中心的距離,采用反距離公式,計算簇所對應的學習器的權值,作為此學習器的權重。計算方法如公式(4)所示:

(3)集成學習,將不同學習器預測出的結果result和學習器對應的權重w相乘,最后相加得到的結果就是最終的預測結果。計算方法如公式(5)所示:

sum_result為集成的預測結果,resulti為各學習器預測的結果,wi為對應的權重。得到集成的預測結果后,將預測結果根據缺陷數量進行排序,最終得到軟件模塊排名。

2 實驗結果及分析

2.1 數據集

在本文的實驗研究中,采用了公開的promise 數據集,并提取了數據集中重要20 種特征:加權方法數(wmc)、繼承樹深度(dit)、孩子數(noc)、對象類之間的耦合度(cbo)、類的響應(rfc)、內聚缺乏度(lcom)、傳入耦合(ca)、傳出耦合(ce)、公開方法數(npm)、方法間的組件數(lcom3)、代碼行數(loc)、數據訪問度量(dam)、聚合度量(moa)、功能抽象度量(mfa)、方法間的內聚度(cam)、繼承耦合(ic)、方法間耦合(cbm)、平均方法復雜度(amc)、最大Mc Cabe環形復雜度(max_cc)、平均Mc Cabe 環形復雜度(avg_cc)。如表1 詳細列出了promise數據集中這些項目的統計信息。

表1 數據集統計信息

2.2 數據預處理

在軟件模塊缺陷數量預測中,存在某一種或幾種度量元數值過大的情況,過大的度量元會影響到模型的測試準確度,因此采用數據歸一化的方法將所有的度量元數值范圍設定為0到1之間。本文采用min-max標準化方法,對原始數據進行線性變換,使結果落在0 和1 之間,轉換函數如公式所示:

其中x為轉換前的度量元數值,x?為轉換后的度量元數值,min為度量元中最小值,max為度量元中最大值。

2.3 測評指標

為了評估模型在軟件缺陷數量預測中的性能,本次實驗采用了平均絕對誤差(MAE)作為性能評價指標。平均絕對誤差表示預測值和觀測值之間絕對誤差的平均值,反映出預測值和真實值之間的差別。

2.4 研究問題

為了驗證PNSDL 方法的預測性能,因此本文提出了以下兩個問題進行驗證:

(a)相對于其他的一些基準特征提取方法,本模型的特征提取部分是否有具有良好的效果?

(b)相對于其他軟件缺陷預測模型,本文提出的PNSDL 方法模型是否有效地提高了軟件缺陷預測準確率?

為了回答上述提出的問題,針對(a)問題本文選取了4種特征選擇方法,基于遞歸特征消除的特征選擇方法(RFE)、基于卡方檢驗的特征選擇方法(chi2)、基于樹模型的特征選擇方法(TBFS)、基于L1懲罰項檢驗的特征選擇方法(L1BFS),作為本文特征選擇的比較對象。為了評價特征選擇模型是否具有良好的效果,本文統一將嶺回歸作為特征選擇的預測模型,以最終的預測結果的平均絕對誤差作為評價標準。分別測試每一個特征選擇方法在10個數據集中所取得的效果。

針對(b)問題,為了評價提出的軟件缺陷預測模型的有效性,本文選用了7 個缺陷預測模型進行比較:基于線性回歸的組合規則缺陷模型(LRCR)、基于梯度增強回歸組合規則的缺陷模型(GRCR)、基于線性回歸的缺陷預測模型(LR)、基于多層感知機回歸的缺陷預測模型(MLP)、基于基因編程的缺陷預測模型(GP)、基于負二項回歸的缺陷預測模型(NBR)、基于零膨脹泊松回歸的缺陷預測模型(ZIP)。對比實驗數據來源于Rathore等[8]文中提供的實驗數據。

在實驗研究中,由于密度峰值聚類算法需要預先指定截距,Rodriguez 等[17]經過實驗研究將截距的選取范圍鎖定在1%~2%,因此本實驗采用2%作為截距。同時在回歸模型的選擇上,本實驗采用了嶺回歸作為學習器。

在訓練集和測試集的劃分方面,本實驗采用sklearn中提供的數據劃分方法train_test_split,將數據按照7∶3的比例方式隨機劃分訓練數據和測試數據。實驗在以下配置的臺式機上運行:操作系統為Win10 64位,CPU為Intel?Core?i7-6700CPU @3.40 GHz 3.41 GHz,內存4 GB。

2.5 結果分析

(1)針對研究問題(a)

本實驗在promise數據集上對特征選擇模型進行了實驗研究,使用平均絕對誤差作為評估指標。表2記錄了各個特征選擇模型在10組實驗數據中分別取得的實驗結果。

表2 基于平均絕對誤差的特征選擇模型的性能

在10 組實驗數據中,PNSDL 特征選擇方法取得了7次勝利,平均誤差相較于其余4種特征選擇模型最優,在誤差率方面,本文特征選擇模型相比于RFE、chi2、TBFS、L1BFS來講分別提升了11.3%、4.5%、4.4%和5.4%。不難看出,本文模型相較于其余4種特征選擇模型來講具有更好的數據適用性,提取出的有效特征更加有效,可以在預測中取得更好的效果。

(2)針對研究問題(b)

實驗在promise數據集上對本文模型的整體性能進行了實驗研究,使用平均絕對誤差作為評估指標,并將本文模型與7種基準方法進行了比較。表3給出了這些方法在平均絕對誤差指標上的結果。

表3 中,第一列為項目名稱,第二列為本文模型在平均絕對誤差指標下取得的結果,其余列為7種預測方法在平均絕對誤差指標下取得的結果。在每一行中,最好的結果被加粗顯示。10 個項目中,PNSDL 預測模型取得7次勝利,并且10次項目的平均誤差相對于其余模型中效果最佳,最大誤差相比于其余模型最小,最小誤差也低于其余模型。本文模型相比于其余模型在平均絕對誤差的指標下,效果最好。在算法誤差改善方面(見表4),PNSDL 相比于LRCR、GRCR、LR、MLP、GP、NBR、ZIP分別提升了10.36%、28.74%、13.51%、36.61%、25.30%、60.14%、54.72%。

表3 基于平均絕對誤差的各預測模型的性能

表4 PNSDL相比于其他算法誤差改善率%

綜上,本文模型在進行缺陷預測的同時,也進行有效的特征提取。每次完成預測后剩余的特征數均小于數據的總特征數,證明在軟件缺陷預測中,冗余特征和無關特征影響軟件缺陷預測模型的性能。本文模型移除這些特征,有效地提高了模型的預測性能。

3 結束語

為提升軟件缺陷預測精準度,本文提出了回環軟件缺陷數量預測模型。

(1)通過采用回環特征選擇的方法,選擇的特征更加有效,相比于實驗中對比的4 種特征提取方法,此方法對于不同的數據具有更好的適用性。

(2)考慮到產生軟件模塊缺陷之間特征的關聯性,采用反距離加權集成的方法,有效地提高了軟件缺陷數量預測的準確性,更加有利于對模塊進行排序。

實驗結果表明,相比于原有的軟件缺陷數量預測模型,軟件缺陷數目預測準確性方面有明顯的提高。

在后續的工作中,將進一步提升軟件缺陷預測模型的穩定性,降低預測結果和真實值之間的誤差,并進一步優化模型,使其適用于跨項目軟件缺陷預測。

主站蜘蛛池模板: 无码在线激情片| 久久国产精品国产自线拍| 福利一区三区| 一区二区三区四区精品视频| 自拍中文字幕| 免费AV在线播放观看18禁强制| 亚洲精品在线91| 最新国产精品第1页| 亚洲日韩在线满18点击进入| 国产精品污污在线观看网站| 亚洲免费人成影院| 美女被躁出白浆视频播放| 日韩在线影院| 精品无码国产自产野外拍在线| 国产欧美高清| 中文天堂在线视频| 无码免费视频| 色综合综合网| 无遮挡国产高潮视频免费观看| 久久国产黑丝袜视频| 中文字幕无码电影| 国产美女在线免费观看| 免费看黄片一区二区三区| 露脸国产精品自产在线播| 无码福利视频| 欧美啪啪网| 久久久久亚洲Av片无码观看| 亚洲无码精品在线播放| 精品三级网站| 国产交换配偶在线视频| 2019国产在线| 国产一级在线观看www色| 国产不卡国语在线| 国产在线视频导航| 国产福利小视频高清在线观看| 国产啪在线| 亚洲天堂自拍| 国产午夜一级淫片| 亚洲精品视频网| 日本少妇又色又爽又高潮| 一级成人欧美一区在线观看| 亚洲综合香蕉| 97成人在线视频| 无码区日韩专区免费系列| 精品在线免费播放| 亚洲综合香蕉| 在线免费看黄的网站| 香蕉视频在线观看www| 免费在线成人网| 国产日韩欧美一区二区三区在线 | 成年人国产网站| 亚洲免费毛片| 日本精品视频| 成人国产精品2021| 漂亮人妻被中出中文字幕久久| 国产区人妖精品人妖精品视频| 国产成人亚洲精品无码电影| 女人18毛片久久| 婷婷亚洲视频| 不卡的在线视频免费观看| 亚洲男人天堂久久| 不卡的在线视频免费观看| 成人精品亚洲| 亚洲无码四虎黄色网站| 国产 在线视频无码| 久久精品视频亚洲| 婷婷亚洲综合五月天在线| 欧美特黄一级大黄录像| 尤物视频一区| 国产一级在线播放| 亚洲 欧美 日韩综合一区| 国产精品所毛片视频| 四虎成人在线视频| 国产精品xxx| 免费观看国产小粉嫩喷水| 福利一区在线| 国产精品福利尤物youwu| AV天堂资源福利在线观看| 国产又粗又爽视频| 在线精品自拍| 国产精品一区在线观看你懂的| 97人人做人人爽香蕉精品|