[发明专利]基于互信息的软件缺陷数据特征选择方法在审
申请号: | 201610004279.X | 申请日: | 2016-01-04 |
公开(公告)号: | CN105701013A | 公开(公告)日: | 2016-06-22 |
发明(设计)人: | 李克文;邹晶杰 | 申请(专利权)人: | 中国石油大学(华东) |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 266580 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 互信 软件 缺陷 数据 特征 选择 方法 | ||
技术领域
本发明属于软件工程领域,具体涉及一种基于互信息的软件缺陷数据特征选择方 法。
背景技术
目前,软件系统规模日益增大并且其逻辑复杂性也日益增强,伴随着软件中存在 缺陷的模块数增加,这势必威胁软件的可靠性,影响软件质量,造成不可估量的损失。软件 缺陷预测技术是指导和评估软件测试工作的一种重要的途径,但是高维的软件特征增加了 软件模块分类过程的时间和空间复杂度,且影响分类精度的提高。
特征选择(FeatureSelection)也称特征子集选择(FeatureSubsetSelection, FSS),或属性选择(AttributeSelection),是指从全部特征中选取一个最优特征子集,使 构造出来的模型更好。但在实际应用中,特征数量往往较多,其中可能存在不相关的特征, 特征之间也可能存在相互依赖,容易导致如下的后果:特征个数越多,分析特征、训练模型 所需的时间就越长。特征个数越多,容易引起“维度灾难”,模型也会越复杂,其推广能力会 下降。例如,2004年,美国宇航局公开了软件数据集(NASAMDP),他们从源代码中提取的各 种软件特征,主要包括三大类--LOC,McCabe和Halstead。在每一类软件特征中,除了基本特 征是从源代码中直接抽取,其他的特征都是由这些基本特征值间接计算获得。且有实验证 明,只需要三个重要的软件特征就可以预测软件模块是否含有缺陷。可见,每一类软件特征 中,存在着较多的冗余特征。特征选择能剔除不相关(irrelevant)或冗余(redundant)的特 征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。
基于互信息(mutualinformation)的特征选择方法在特征选择方面表现出良好 的性能,因无需根据分类器的分类结果评判所选特征好坏,具有运算速度快的特点。但是, 目前基于互信息的特征选择方法大部分是在平衡数据集上的操作,针对现实生活中大量存 在的不平衡数据集,基于互信息的特征选择方法不能很好的发挥其作用。因此,本发明以软 件缺陷数据为研究对象,提出基于互信息的针对不平衡数据的特征选择方法。
发明内容
本发明的目的是克服软件缺陷数据存在的不平衡性,提供一种基于互信息的软件 缺陷数据特征选择方法,以选择出最优特征子集。
为实现上述目的,本发明技术方案主要包括以下三个步骤:
A.从软件数据集中获取数据,并做预处理
(1)收集软件数据包括软件特征数据、软件模块数据,做预处理。并将软件模块数 据分为训练集和测试集以备训练和测试。本发明采用十次交叉验证,将数据集分成十份,其 中九份做训练,一份做准确度测试。
(2)根据已有经验知识将特征集分类,得到三个特征集,分别是LOC类,McCabe类和 Halstead类(分别简写为L,M,H)。
(3)根据九份训练集数据,用公式(1)求出软件模块的不平衡系数p。
公式(1)
B.利用互信息理论去除冗余软件特征
(1)充分考虑数据集的不平衡性,引入不平衡系数,根据公式(2)计算出三个特征 集中每个特征fi与类y1和y2的相关性μ(fi),根据相关性大小按降序排列,只取三个特征集 中的相关性排名前70%的特征,此时,特征集总剩余t个特征。
μ(fi)=logp×MI(fi,y1)+MI(fi,y2)公式(2)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国石油大学(华东),未经中国石油大学(华东)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610004279.X/2.html,转载请声明来源钻瓜专利网。