结合EDSVM的软件缺陷数据关联分类方法与流程

文档序号:12124170阅读:364来源:国知局
本发明属于软件工程领域,主要涉及软件缺陷预测分类问题中结合EDSVM的软件缺陷数据关联分类方法。
背景技术
:关联分类算法即结合关联规则挖掘的分类算法。关联规则挖掘旨在发现数据之间的关系,关联分类算法旨在构造分类器并对新样例进行分类预测;关联规则挖掘是无监督的学习,而关联分类算法是有监督的学习;关联规则挖掘的规则前件可以有任意多个项,并且规则后件也可以有任意多个项;但是关联分类算法只对规则后件为类标签的关联规则感兴趣。关联规则挖掘的步骤是先挖掘频繁模式,后随规则产生;关联分类算法主要包括以下步骤:找出数据中经常出现的属性-值对,即频繁项集;分析得到的频繁项集,产生每个类的关联规则,并取置信度最大的规则;组织规则如对规则进行剪枝,进而进行规则排序,形成基于规则的分类器。传统的关联分类算法通常默认训练的数据集是平衡的,没有大类(样例数多的类)和小类(样例数少的类)之分,所以当传统的分类算法碰到不平衡数据集的时候,小类的规则的置信度通常较小,导致传统的关联分类算法在将规则按照置信度降序排序的阶段,小类的规则优先级较低;而且,算法过程中提取到的小类规则较少,甚至没有,所以该算法对大类就有较高的分类准确率,对小类分类性能则降低。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。软件开发商会通过各种方法提醒软件使用者积极的反馈他们在使用软件过程中遇到的问题和错误,从而在新版本的研究中针对这些问题进行改进。但是在软件开发过程中,软件缺陷大多存在于一小部分模块和代码中。软件缺陷数据集中高风险故障样本数目远多于低风险分故障样本数目,属于不平衡数据集问题。技术实现要素:为了克服现有的软件缺陷数据关联分类方法的软件缺陷数据的小类分类性能较差的不足,本发明提出一种提高软件缺陷数据的小类分类性能的结合EDSVM的软件缺陷数据关联分类方法,以在软件缺陷不平衡训练数据上能产生更多的小类规则,并有效提高小类规则的优先级,从而提高多类不平衡数据的分类性能。实现本发明目的的技术方案具体步骤如下:一种结合EDSVM的软件缺陷数据关联分类方法,包括以下步骤:步骤1:从软件数据集中获取数据,并对数据进行预处理;将数据按照设定比例划分为训练集和测试集;步骤2:构造分类器,包括规则生成、规则排序,过程如下;2.1)规则生成:利用Apriori算法限制候选产生发现频繁项集,分析频繁项集,产生每个类的满足置信度和支持度阈值的关联规则,结合相关度,在具有相同前件的所有规则中选择相关度最大的规则:规则R:的相关度:其中,表示规则的置信度,s(Bi)表示类的支持度;2.2)规则排序:利用项集类分布规则强度对所得的规则集进行排序,采用懒惰剪枝法对排序后得到的规则集进行剪枝操作;规则R:的项集类分布规则强度为:其中,表示规则的置信度,表示规则的类支持度:s(Bi)表示类的支持度;计算项集类分布规则强度,并按此对规则进行排序,在完成对规则集进行懒惰剪枝和排序之后得到的规则集即为分类器;步骤3:结合EDSVM进行分类预测,步骤如下:3.1)在规则集R中找出满足测试样例T的m个规则;3.2)若选出的m个规则相同,则测试样例的类别即为该规则的类别,输出结束;3.3)若选出的m个规则相异,则判断是规则匹配无果还是规则匹配溢出,规则匹配无果跳转3.4),规则匹配溢出跳转3.5);3.4)若规则匹配无果,则在除去规则集R的训练集Q中计算测试样例与SVM分离超平面之间的距离q1,若q1>d,则采用SVM算法进行分类,否则以所有的支持向量作为测试样例的近邻样本,进行KNN分类;3.5)若规则匹配溢出,则在规则集R中计算测试样例与SVM分离超平面之间的距离q2,若q2>d,采用SVM算法进行分类,否则以所有的支持向量作为测试样例的近邻样本,进行KNN分类;3.6)输出测试样例的类别。进一步,所述方法还包括以下步骤:步骤4:软件缺陷预测,分类结果采用F-score和G-means同时进行验证结果的有效性和精确度,表1为分类器的混淆矩阵;预测正类预测负类实际正类TPFN实际负类FPTN表1查准率:查全率:F-score是查准率和查全率的调和平均值:G-means是衡量数据集整体分类性能的评价指标:其中,TP表示被分类器正确分类的正类数;TN表示被分类器正确分类的负类数;FN表示被分类器错误分类的负类数;FP表示被分类器错误分类的正类数。本发明的技术构思为:为提高软件缺陷数据集的小类分类性能,本文提出改进的关联分类算法。在得到软件缺陷数据的频繁项集后,产生每个类的满足置信度和支持度阈值的关联规则,并结合相关度,在具有相同前件的所有规则中选择相关度最大的规则,有效提高了小类规则的选择概率;利用项集类分布规则强度对所得的规则集进行排序,采用懒惰剪枝法对排序后得到的规则集进行剪枝操作,有效提高了小类规则的优先级;针对规则匹配无果和规则匹配溢出问题,结合EDSVM对新样例进行分类。本发明的有益效果为:在软件缺陷不平衡训练数据上能产生更多的小类规则,并有效提高小类规则的优先级,从而提高软件缺陷不平衡数据的分类性能。附图说明图1是结合EDSVM的软件缺陷数据关联分类方法流程图具体实施方式下面结合附图对本发明做进一步说明。参照图1,一种结合EDSVM的软件缺陷数据关联分类方法,包括以下步骤:步骤1:输入训练集和测试集数据。从软件数据集中获取数据,并对数据进行预处理;将数据按照比例划分为训练集和测试集;本发明对数据集进行10折交叉验证实验,其中9份做训练,1份做测试;步骤2:构造分类器,包括规则生成、规则排序,过程如下;2.1)规则生成:利用Apriori算法限制候选产生发现频繁项集,分析频繁项集,产生每个类的满足置信度和支持度阈值的关联规则,结合相关度,在具有相同前件的所有规则中选择相关度最大的规则。规则R:的相关度:其中,表示规则的置信度,s(Bi)表示类的支持度。从相关度的公式可以看出,即使小类规则的置信度和小类的支持度较低,但是得到的相关度却不小,所以利用相关度选择规则,可以有效提高小类的匹配概率。2.2)规则排序:采用懒惰剪枝法对得到的规则进行剪枝操作,利用项集类分布规则强度对剪枝后的规则集进行排序。懒惰剪枝法的基本思想是用训练集样本对生成的每个规则进行测试,丢弃测试过程中出现错误分类的规则,即完成剪枝操作。规则R:的项集类分布规则强度为:其中,表示规则的置信度,表示规则的类支持度:s(Bi)表示类的支持度。根据上述公式可知,小类规则的项集类分布规则强度较大,所以利用该度量对规则进行排序可以有效提高小类规则的优先级。计算项集类分布规则强度,并按此对规则进行排序。在完成对规则集进行懒惰剪枝和排序之后得到的规则集即为分类器;步骤3:结合EDSVM进行分类预测,步骤如下:3.1)在规则集R中找出满足测试样例T的m个规则;3.2)若选出的m个规则相同,则测试样例的类别即为该规则的类别,输出结束;3.3)若选出的m个规则相异,则判断是规则匹配无果还是规则匹配溢出,规则匹配无果跳转3.4),规则匹配溢出跳转3.5);3.4)若规则匹配无果,则在除去规则集R的训练集Q中计算测试样例与SVM分离超平面之间的距离q1,若q1>d,则采用SVM算法进行分类,否则以所有的支持向量作为测试样例的近邻样本,进行KNN分类;3.5)若规则匹配溢出,则在规则集R中计算测试样例与SVM分离超平面之间的距离q2,若q2>d,采用SVM算法进行分类,否则以所有的支持向量作为测试样例的近邻样本,进行KNN分类;3.6)输出测试样例的类别。进一步,所述方法还包括以下步骤:步骤4:软件缺陷预测,分类结果采用F-score和G-means同时进行验证结果的有效性和精确度,表1为分类器的混淆矩阵;预测正类预测负类实际正类TPFN实际负类FPTN表1查准率:查全率:F-score是查准率和查全率的调和平均值:G-means是衡量数据集整体分类性能的评价指标:其中,TP表示被分类器正确分类的正类数;TN表示被分类器正确分类的负类数;FN表示被分类器错误分类的负类数;FP表示被分类器错误分类的正类数。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1