[發明專利]一種基于特征選擇和集成學習的軟件缺陷個數預測方法有效
| 申請號: | 201710375644.2 | 申請日: | 2017-05-24 |
| 公開(公告)號: | CN107247666B | 公開(公告)日: | 2020-03-10 |
| 發明(設計)人: | 余嘯;劉進;井溢洋;崔曉暉;邱昌 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 魯力 |
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 特征 選擇 集成 學習 軟件 缺陷 個數 預測 方法 | ||
1.一種基于特征選擇和集成學習的軟件缺陷個數預測方法,其特征在于,包括以下步驟:
步驟1,挖掘軟件歷史數據,從中抽取出n個有用的軟件模塊;軟件模塊粒度根據實際應用場景,可設置為文件、包、類或函數;然后標記軟件模塊中缺陷的個數;
步驟2,提取軟件模塊中與軟件缺陷有關的特征,提取了19個屬性特征:加權方法數,繼承樹深度,孩子數,對象類之間的耦合度,類的響應,內聚缺乏度,傳入耦合,傳出耦合,公開方法數,代碼行數,數據訪問度量,聚合度量,功能抽象度量,方法間的內聚度,繼承耦合,方法間耦合,平均方法復雜度,最大McCabe環形復雜度,平均McCabe環形復雜度;這19個特征形成了原始的特征集S={A1,A2,…,A19};在提取n個軟件模塊的特征和缺陷個數后形成了缺陷數據集D={(x1,y1),(x2,y2),…,(xn,yn)},其中xi=(a1,a2,…,a19)是從第i個軟件模塊中提取出的19維的特征向量值,yi是第i個軟件模塊的缺陷個數;
步驟3,首先通過以D為訓練集在原始特征集S上訓練出m個基礎回歸模型h1(x),h2(x),…,hm(x);這些基礎的回歸模型包含了線性回歸、嶺回歸、決策樹回歸、梯度boosting回歸、最近鄰回歸和多層感器知回歸;每個基本的回歸模型預測給定模塊的缺陷個數;然后構建集成回歸模型H(x):
其中并且wi(i=1,…,m)是基礎回歸模型的權重;將權重設置為1/m;由于缺陷數量必須是非負整數,因此對預測的故障個數進行適當的調整:若預測的故障個數為負,則設置為零;若預測的故障數為小數,則四舍五入為整數;
步驟4,利用步驟3中訓練出的集成回歸模型H(x)對缺陷數據集D中的n個軟件模塊進行預測,計算得到該集成回歸模型在缺陷數據集D上的預測準確率;預測準確率采用均方根誤差RMSE表示,計算公式為
其中yi表示對第i個軟件模塊的缺陷個數真實值,表示第i個軟件模塊的缺陷個數預測值;
步驟5,采用基于包裹式的特征選擇方法來濾除不相關和冗余的特征,具體包括:
步驟5.1,從當前特征子集Sk(k為當前特征子集中包含的特征個數)中濾除掉一個特征,由于Sk中的每個特征都是可以被濾除的,所以對當前特征子集Sk濾除掉一個特征后,有k個不同的特征子集Sk-1;
步驟5.2,基于這k個不同的特征子集Sk-1,訓練出k個不同的集成回歸模型,分別計算這k個不同的集成回歸模型對原始缺陷數據集D中n個軟件模塊進行預測時的RMSE值;
步驟5.3,如果基于特征子集Sk-1上訓練得出的擁有最低的RMSE值的集成回歸模型的RMSE值小于在原始特征子集Sk上訓練得到的RMSE值,則說明在特征子集Sk-1上訓練得到的集成回歸模型具有更高的準確率,當前的特征子集Sk-1相比于原始的特征子集Sk更有用;因此,則保留當前的特征子集Sk-1,然后重復步驟5.1、5.2、5.3;如果基于特征子集Sk-1上訓練得出的擁有最低的RMSE值的集成回歸模型的RMSE值大于在原始特征子集Sk上訓練得到的RMSE值,則說明在原始特征子集Sk上訓練得到的集成回歸模型具有更高的準確率,原始的特征集Sk相比于當前的特征子集Sk-1更有用,則停止特征選擇步驟,得到篩選后的特征子集S’;
步驟6,通過以D為訓練集在特征選擇后的特征子集S’上訓練出m個基礎回歸模型h1,h2,…,hm;這些基本的回歸模型包含了在背景技術中介紹的線性回歸、嶺回歸、決策樹回歸、梯度boosting回歸、最近鄰回歸和多層感器知回歸;然后構建集成回歸模型H(x’):
其中并且wi(i=1,…,m)是基礎回歸模型的權重,將權重設置為1/m;由于缺陷數量必須是非負整數,因此對預測的故障個數進行適當的調整:若預測的故障個數為負,則設置為零;若預測的故障數為小數,則四舍五入為整數;
步驟7,預測待預測的軟件模塊的缺陷個數;
步驟7.1,提取待預測的軟件模塊中的特征S’,形成這個軟件模塊的特征向量值x’;
步驟7.2,將步驟7.1得到的待預測的軟件模塊的特征向量值x’帶入到步驟6中訓練的集成回歸模型中,求得該軟件模塊的缺陷個數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710375644.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種C接口函數的測試方法及系統
- 下一篇:自動化dump分析系統及方法





