[發明專利]一種基于特征提取和Stacking集成學習的軟件缺陷預測方法有效
| 申請號: | 202111106611.0 | 申請日: | 2021-09-22 |
| 公開(公告)號: | CN113837266B | 公開(公告)日: | 2022-05-20 |
| 發明(設計)人: | 崔夢天;吳克奇;李衛榜;王琳;姜玥;羅洪 | 申請(專利權)人: | 西南民族大學 |
| 主分類號: | G06K9/62 | 分類號: | G06K9/62;G06F11/36 |
| 代理公司: | 成都華風專利事務所(普通合伙) 51223 | 代理人: | 杜朗宇 |
| 地址: | 610000 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 特征 提取 stacking 集成 學習 軟件 缺陷 預測 方法 | ||
本發明公開了一種基于特征提取和Stacking集成學習的軟件缺陷預測方法,包括:(1)利用核主成分分析對原始數據集進行特征提取,得到降維后的缺陷數據集DS′;(2)利用本發明提出的協同過濾算法為新的軟件缺陷數據推薦適用的抽樣方法,使用推薦的抽樣算法在缺陷數據集DS′上進行不平衡處理,得到不平衡處理后的缺陷數據集DS″;(3)使用K?Means算法對缺陷數據集DS″進行聚類,對于偏離主流類別的異常值進行剔除,得到缺陷數據集DS″′;(4)構建基于Stacking集成學習的軟件缺陷預測模型,為第一層的基學習器和第二層的元學習器選擇合適的分類器,構建出性能良好的軟件缺陷預測模型;(5)在處理后的缺陷數據集DS″′上使用集成后的模型與基模型和主流集成模型進行對比,以此驗證本發明提出的集成預測模型的性能優劣。研究結果表明,本發明提出的KSSDP集成預測模型比基模型和主流集成模型的性能更好。
技術領域
本發明涉及軟件缺陷領域,具體涉及一種基于特征提取和Stacking集成學習的軟件缺陷預測方法。
背景技術
開源軟件作為軟件產業未來發展的主要趨勢之一,如何保證其質量始終是業內關注且至關重要的問題。開源軟件的開放性和基于社區的共享性使得源碼中經常包含很多漏洞,導致缺陷處理的成本大幅增加,阻礙了開源軟件的應用推廣。因此,在軟件開發前期就識別并控制缺陷的引入因素,對制定有效的缺陷預防措施、降低缺陷引入率和保證軟件質量有著十分重要的現實意義。目前主流的缺陷預測技術是利用機器學習中的一些經典分類算法及其改進算法來找出存在缺陷的模塊,主要存在如下的局限性:(1)針對大部分缺陷數據集都存在高維數據和冗余特征等問題,現有的模型使用特征選擇的方法進行降維,會丟失較多的原始數據特征,對后續的缺陷預測造成不良影響,例如準確率會降低、F-Measure值不高等問題。(2)目前為軟件缺陷數據集選擇適用的抽樣方法,大多都是憑專家的經驗和抽樣方法的平均性能進行人工選取,這也使得抽樣方法選取的效率不高,過于依賴專家經驗。(3)目前進行軟件缺陷預測,大多都是采用單一預測模型對軟件缺陷進行預測。由于缺陷數據的特征復雜多變,單一預測模型自身也存在一定的局限性,當缺陷數據的特征比較復雜時,可能導致預測效果不佳。
發明內容
要解決的技術問題
為克服現有缺陷預測方法的不足,本發明提出一種基于特征提取和Stacking集成學習的軟件缺陷預測方法,從而解決現有技術中存在的前述問題。
技術方案
一種基于特征提取和Stacking集成學習的軟件缺陷預測方法,其特征在于步驟如下:
步驟1:對原始數據集進行特征提取,通過核主成分分析(KPCA)對原始缺陷數據集DS進行特征提取,以降低數據集的特征維數,將原始缺陷數據集DS的維數降到10維,得到降維后的缺陷數據集DS′;
步驟2:對缺陷數據集DS′進行不平衡處理,本發明提出面向軟件缺陷數據的協同過濾抽樣推薦方法,首先進行抽樣方法排序,用戶根據缺陷數據的特征選擇分類算法,以度量指標accuracy為依據,利用主流抽樣方法在歷史缺陷數據上進行采樣,使用選擇的分類算法在歷史缺陷數據上對主流抽樣方法進行排序,得到主流抽樣方法的性能排序,然后進行數據相似性挖掘,當新缺陷數據和歷史缺陷數據屬于同一個項目,計算新缺陷數據和歷史缺陷數據之間的杰卡德(Jaccard)相似系數,把杰卡德相似系數作為新缺陷數據和歷史缺陷數據之間的相似性得分,當新缺陷數據和歷史缺陷數據屬于不同項目,對新缺陷數據和歷史缺陷數據進行特征提取,并進行歸一化,然后計算新缺陷數據和歷史缺陷數據之間的歐式距離,把歐式距離的倒數作為新缺陷數據和歷史缺陷數據之間的相似性得分,最后進行基于用戶的推薦,將抽樣方法排名和數據相似性的信息結合起來,利用協同過濾算法為新的軟件缺陷數據推薦適用的抽樣方法,使用推薦的抽樣算法在缺陷數據集DS′上進行不平衡處理,得到不平衡處理后的缺陷數據集DS″;
步驟3:對缺陷數據集DS″中的異常值進行檢測并剔除,使用K-Means算法對缺陷數據集DS″進行聚類,對于偏離主流類別的異常值進行剔除,得到缺陷數據集DS″′;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西南民族大學,未經西南民族大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111106611.0/2.html,轉載請聲明來源鉆瓜專利網。





