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

文档序号:12124170阅读:来源:国知局

技术特征:

1.一种结合EDSVM的软件缺陷数据关联分类方法,其特征在于:所述方法包括以下步骤:

步骤1:从软件数据集中获取数据,并对数据进行预处理;将数据按照设定比例划分为训练集和测试集;

步骤2:构造分类器,包括规则生成、规则排序,过程如下;

2.1)规则生成:利用Apriori算法限制候选产生发现频繁项集,分析频繁项集,产生每个类的满足置信度和支持度阈值的关联规则,结合相关度,在具有相同前件的所有规则中选择相关度最大的规则:

规则R:的相关度:其中,表示规则的置信度,s(Bi)表示类的支持度;

2.2)规则排序:利用项集类分布规则强度对所得的规则集进行排序,采用懒惰剪枝法对排序后得到的规则集进行剪枝操作;

规则R:的项集类分布规则强度为:

<mrow> <mi>I</mi> <mi>D</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>&DoubleRightArrow;</mo> <msub> <mi>B</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>c</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>&DoubleRightArrow;</mo> <msub> <mi>B</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <mi>C</mi> <mi>L</mi> <mi>S</mi> <mi>u</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>&DoubleRightArrow;</mo> <msub> <mi>B</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&NotEqual;</mo> <mi>i</mi> </mrow> </munder> <mfrac> <mrow> <mi>s</mi> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>C</mi> <mi>L</mi> <mi>S</mi> <mi>u</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>&DoubleRightArrow;</mo> <msub> <mi>B</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,表示规则的置信度,表示规则的类支持度: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)输出测试样例的类别。

2.如权利要求1所述的一种结合EDSVM的软件缺陷数据关联分类方法,其特征在于:所述方法还包括以下步骤:

步骤4:软件缺陷预测,分类结果采用F-score和G-means同时进行验证结果的有效性和精确度,表1为分类器的混淆矩阵;

预测正类预测负类实际正类TPFN实际负类FPTN

表1

查准率:查全率:

F-score是查准率和查全率的调和平均值:

G-means是衡量数据集整体分类性能的评价指标:

<mrow> <mi>G</mi> <mo>-</mo> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mi>s</mi> <mo>=</mo> <msqrt> <mrow> <mfrac> <mrow> <mi>T</mi> <mi>P</mi> </mrow> <mrow> <mi>T</mi> <mi>P</mi> <mo>+</mo> <mi>F</mi> <mi>N</mi> </mrow> </mfrac> <mo>&times;</mo> <mfrac> <mrow> <mi>T</mi> <mi>N</mi> </mrow> <mrow> <mi>F</mi> <mi>P</mi> <mo>+</mo> <mi>T</mi> <mi>N</mi> </mrow> </mfrac> </mrow> </msqrt> <mo>;</mo> </mrow>

其中,TP表示被分类器正确分类的正类数;TN表示被分类器正确分类的负类数;FN表示被分类器错误分类的负类数;FP表示被分类器错误分类的正类数。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1