发明名称 基于改进的支持向量机的软件缺陷优先级预测方法
摘要 基于改进的支持向量机的软件缺陷优先级预测方法主要采用一种改进的支持向量机模型为缺陷优先级的预测建模,对缺陷报告的处理优先级进行判断和预测,步骤1)选取状态为已解决的,已关闭的,已确定的错误报告做为训练数据;步骤2)提取出我们需要的特征;步骤3)对所有样本赋以一个抽样权重在此样本上用支持向量机训练一个分类器对样本分类,步骤4)用得到的错误率去更新分布权值向量:对错误分类的样本分配更大的权值,正确分类的样本赋予更小的权值。步骤5)就这样依次迭代,最后我们得到的强分类器就是多个弱分类器的加权和。本发明用机器学的发法训练出分类器,从而使缺陷优先级的确定自动化,减少人员和成本的消耗。
申请公布号 CN102637143B 申请公布日期 2014.12.10
申请号 CN201210057888.3 申请日期 2012.03.07
申请人 南京邮电大学 发明人 张卫丰;常成成;周国强;张迎周;周国富;王慕妮;许碧欢;陆柳敏;顾赛赛
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种基于改进的支持向量机的软件缺陷优先级预测方法,其特征在于该方法分为两大部分:一、数据分析步骤11)收集错误报告数据集;步骤12)对错误报告进行分析,提取其中的产品,组件,版本,平台,操作系统,缺陷状态,错误解决状况,优先级,严重程度,主题,详细描述的信息;步骤13)把主题和详细描述中的停用词去掉,把所有单词转换成其基本形式,生成样本;步骤14)对每个样本标记上优先级,在这里,优先级分为五个等级:P1,P2,P3,P4,P5,其中P1的优先级最高,依次递减;二、变换支持向量机的参数,针对同一训练集训练出不同的分类器,然后把这些分类器集合起来,步骤21)先对所有样本赋以一个抽样权重,开始的时候权重都一样即认为均匀分布,也就是训练集如果有N个样本,每个样本的分布概率为1/N;步骤22)调整高斯宽度σ,采用径向基函数RBF内核,其中径向基函数RBF是高斯函数,形式为<img file="FDA0000569396470000011.GIF" wi="435" he="135" />其中x<sub>c</sub>为核函数中心,σ为函数的宽度参数,共同控制了函数的径向作用范围;在训练过程中通过调整可以获得适当精确的支持向量机分类器;步骤23)如果σ大于已设定的高斯宽度值,就使用支持向量机训练弱学习机,否则,转到步骤27);步骤24)计算弱学习机的错误率,如公式2,如果错误率大于50%,降低σ,再转到步骤23);<img file="FDA0000569396470000012.GIF" wi="228" he="140" />要求i满足y<sub>i</sub>≠h<sub>t</sub>(x<sub>i</sub>)   公式2其中ε<sub>t</sub>表示弱学习机的错误率;N表示样本个数;t表示第t个训练周期,则<img file="FDA0000569396470000015.GIF" wi="53" he="67" />表示第i个样本在第t个训练周期数的权重;x<sub>i</sub>表示样本属性组成的向量,y<sub>i</sub>表示该样本的类别标签;h<sub>t</sub>(x<sub>i</sub>)表示第t轮训练得到的弱学习机;步骤25)用得到的错误率计算弱学习机的权值,如公式3;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>&alpha;</mi><mi>t</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>ln</mi><mrow><mo>(</mo><mfrac><mrow><mn>1</mn><mo>-</mo><msub><mi>&epsiv;</mi><mi>t</mi></msub></mrow><msub><mi>&epsiv;</mi><mi>t</mi></msub></mfrac><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000569396470000013.GIF" wi="332" he="141" /></maths>   公式3其中,α<sub>t</sub>表示弱学习机的权值;ε<sub>t</sub>表示弱学习机的错误率,可见,弱学习机的错误率越低,所分得的权值越高;步骤26)更新样本权值,如公式4,再返回步骤22);<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>w</mi><mi>i</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>w</mi><mi>i</mi><mi>t</mi></msubsup><mi>exp</mi><mo>{</mo><mo>-</mo><msub><mi>&alpha;</mi><mi>t</mi></msub><msub><mi>y</mi><mi>i</mi></msub><msub><mi>h</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>}</mo></mrow><msub><mi>C</mi><mi>t</mi></msub></mfrac></mrow>]]></math><img file="FDA0000569396470000014.GIF" wi="546" he="145" /></maths>    公式4此处的C<sub>t</sub>表示归一化常量,而且<img file="FDA0000569396470000021.GIF" wi="242" he="141" />其中,N表示样本的个数;t表示第t个训练周期,则<img file="FDA0000569396470000022.GIF" wi="58" he="75" />表示第i个样本在第t个训练周期数的权值;x<sub>i</sub>表示样本属性组成的向量,y<sub>i</sub>表示该样本的类别标签;α<sub>t</sub>表示弱学习机的权值;h<sub>t</sub>(x<sub>i</sub>)表示第t轮训练周期得到的弱学习机;步骤27)把多个弱分类器进行加权和,就得到了所需的强分类器,如公式5,是误差越大分类器的权值就越小;<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>sign</mi><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><msub><mi>&alpha;</mi><mi>t</mi></msub><msub><mi>h</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000569396470000023.GIF" wi="486" he="140" /></maths>    公式5其中,t表示第t个训练周期;α<sub>t</sub>表示弱学习机的权值;x表示样本属性组成的向量;h<sub>t</sub>(x)表示第t轮训练周期得到的弱学习机;T为总共的训练周期;经过以上方法,就得到了高精确度,且各个错误不相关的分类器。
地址 210003 江苏省南京市新模范马路66号