[发明专利]基于类不平衡学习和遗传算法的包裹式特征选择的软件缺陷预测方法有效
申请号: | 201610422657.6 | 申请日: | 2016-06-16 |
公开(公告)号: | CN106126413B | 公开(公告)日: | 2019-02-19 |
发明(设计)人: | 陈翔;田丹;陆凌姣;王莉萍;吉人;魏世鑫 | 申请(专利权)人: | 南通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 谈杰 |
地址: | 226019*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于类不平衡学习和遗传算法的包裹式特征选择的软件缺陷预测方法,属于软件质量保障领域。包括如下步骤:(1)挖掘软件项目的版本控制系统和缺陷跟踪系统,从中抽取程序模块;通过对程序模块进行类型标记和软件度量,可以生成缺陷预测数据集D;(2)对缺陷预测数据集执行两阶段包裹式特征选择方法,先得到最优特征子集FS',再基于最优特征子集FS',对数据集D进行预处理并形成预处理后的数据集D';(3)借助决策树这一分类方法,基于预处理后的数据集D'构建出缺陷预测模型。本发明一方面可以有效识别并移除缺陷预测数据集内的冗余特征和无关特征,另一方面可以有效缓解缺陷预测数据集内的类不平衡问题,最终可有效提高缺陷预测模型的性能。 | ||
搜索关键词: | 基于 阶段 包裹 特征 选择 软件 缺陷 预测 方法 | ||
【主权项】:
1.一种基于类不平衡学习和遗传算法的包裹式特征选择的软件缺陷预测方法,其特征在于包括如下步骤:(1)挖掘软件项目的版本控制系统和缺陷跟踪系统,从中抽取程序模块;所述程序模块的粒度根据缺陷预测的目的设置为文件、包、类或函数;随后对上述每个程序模块,通过分析缺陷跟踪系统内的缺陷报告信息进行标记;最后基于软件代码复杂度或软件开发过程分析,设计出与软件缺陷存在相关性的度量元,并借助这些度量元完成对每个程序模块的度量;通过对程序模块进行类型标记和软件度量,生成缺陷预测数据集D;(2)对缺陷预测数据集D执行两阶段包裹式特征选择方法,该方法在第一阶段基于类不平衡学习缓解数据集内存在的类不平衡问题,随后在第二阶段基于遗传算法找出最优特征子集; 两阶段包裹式特征选择方法可以从原有特征集FS中移除原有数据集内的冗余特征和无关特征,得到最优特征子集FS';基于最优特征子集FS',对数据集D进行预处理并形成预处理后的数据集D',即保留最优特征子集FS'中的特征;上述步骤(2)中执行两阶段包裹式特征选择方法包括如下步骤:2‑1)在缺陷预测数据集中,有缺陷模块的数量要远少于无缺陷模块的数量,因此在第一阶段用类不平衡学习方法SMOTE合成新的少数虚拟的有缺陷模块,即每一次从有缺陷模块中随机选择模块a,并从该模块a的最近邻中随机选择一个模块b,然后在模块a和模块b之间构成的连线上随机选择1点,作为新合成的虚拟的有缺陷模块;若原有缺陷预测数据集D中的无缺陷模块的实例数为nmax,有缺陷模块的实例数为nmin,则应用SMOTE方法后会额外合成nmin个有缺陷模块样本,最终形成预处理后的数据集D1;2‑2)在第二阶段,基于数据集D1,采用一种针对缺陷预测问题定制的遗传算法,从原有特征集FS中移除原有数据集内的冗余特征和无关特征,选出最优特征子集FS',形成预处理后的数据集D';(3)采用决策树分类方法,基于预处理后的数据集D’构建出缺陷预测模型。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610422657.6/,转载请声明来源钻瓜专利网。