【技术实现步骤摘要】
一种软件缺陷预测规则的筛选方法及系统
[0001]本专利技术涉及关联规则筛选
,尤其涉及一种软件缺陷预测规则的筛选方法及系统。
技术介绍
[0002]软件缺陷以一种静态形式存在于软件内部,是软件开发过程中人为错误的结果。软件作为思维的产物不可避免地受到开发人员自身、所使用的编程语言特点及软件运行环境等多方面的影响。但是,由于人所具有的思维定势以及编程语言自身的特性,使得软件缺陷出现具有一定的统计规律。
[0003]软件缺陷预测技术通过各种分类器模型判断软件模块的缺陷倾向,基于关联规则算法的缺陷预测技术目前已用于软件缺陷预测领域。关联规则挖掘是从事务集合中挖掘出满足支持度和置信度最低要求的所有规则,这类规则也称强关联规则。
[0004]大多数经典关联分类算法采用单支持度和置信度挖掘规则以降低算法的复杂度、规则数和整体准确度为目标,未考虑类不平衡对关联分类算法的影响。而且,由于关联规则通过使用者人为设置支持度阈值与置信度阈值,这使得中间生成了大量的频繁项集生成导致大量冗余关联规则的生成,这对于关联规则算法在 ...
【技术保护点】
【技术特征摘要】
1.一种软件缺陷预测规则的筛选方法,其特征在于,包括如下步骤:获取历史软件缺陷数据,构建样本集;基于样本集执行如下步骤,进行迭代训练和测试:将样本集划分为训练集和测试集;基于关联规则算法,根据三个支持度阈值从训练集中生成频繁项集,根据不同长度的频繁项集的提升度阈值,筛选出频繁项集并转化为关联规则,得到关联规则集合;从关联规则集合中提取类关联规则,根据选择的预测指标对测试集进行预测,根据预测结果计算分类性能指标;迭代训练和测试结束后,取分类性能指标最优时的类关联规则,作为软件缺陷预测规则。2.根据权利要求1所述的软件缺陷预测规则的筛选方法,其特征在于,所述样本集中每条样本包括多个软件缺陷度量元和1个缺陷标签;所述从关联规则集合中提取类关联规则,包括:从关联规则集合中获取后件是缺陷标签的关联规则;根据类关联规则的长度和双置信度,去除冗余的类关联规则。3.根据权利要求1所述的软件缺陷预测规则的筛选方法,其特征在于,所述样本集根据缺陷标签被划分为有缺陷数据集和无缺陷数据集;所述迭代训练和测试,是采用M次K折交叉验证方法,进行M
×
K次迭代训练和测试,每次训练和测试过程中,分别将有缺陷数据集和无缺陷数据集划分为K折,训练集包括K
‑
1折有缺陷数据集和K
‑
1折无缺陷数据集,测试集中包括1折有缺陷数据集和1折无缺陷数据集。4.根据权利要求3所述的软件缺陷预测规则的筛选方法,其特征在于,所述三个支持度阈值分别对含有有缺陷标签的频繁项集、含有无缺陷标签的频繁项集和仅有软件缺陷度量元的频繁项集进行设置。5.根据权利要求1所述的软件缺陷预测规则的筛选方法,其特征在于,所述不同长度的频繁项集的提升度阈值,通过下式计算得到:lift(Set
n
)=1+θ
ipv
×
(n
‑
1)其中,θ
ipv
表示提升度阈值递增步长,n表示频繁项集的长度,Set
n
表示长度为n的频繁项集,n>1...
【专利技术属性】
技术研发人员:武文韬,王世海,刘斌,杨勋利,朱文婧,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。