一种软件缺陷预测方法技术

技术编号:30825343 阅读:29 留言:0更新日期:2021-11-18 12:20
一种软件缺陷预测方法,首先对采集样本数据中的不平衡数据和脏数据处理形成信息决策表,采用等频率间隔划分方法对信息决策表进行离散化处理,采用基于信息熵属性约简的算法对全体样本进行属性约简,去掉冗余属性,降低样本维度,其次利用基于粒距动态改变惯性权重ω的改进粒子群算法搜索SVM模型最优参数组合(C,σ),最后基于最优参数建立支持向量机软件缺陷预测模型,使用该模型在NASA软件度量数据集上进行缺陷预测;本发明专利技术通过粗糙集对原样本集进行属性约减,仅保留了少量特征属性,不但可提高软件缺陷预测性能,而且可以大大减少采样工作量,提高工作效率。提高工作效率。提高工作效率。

【技术实现步骤摘要】
一种软件缺陷预测方法


[0001]本专利技术涉及一种缺陷预测,具体是一种软件缺陷预测方法,属于软件工程


技术介绍

[0002]软件缺陷,根据ISO 9000的定义“未满足与预期或者规定用途有关的要求”,是导致软件系统出错、失效、崩溃甚至机毁人亡的潜在根源。软件缺陷预测技术是根据历史数据以及已经发现的缺陷等软件度量数据预测哪些模块有出错倾向,对软件开发者合理配置资源,从而降低研发成本、缩短产品开发周期和提高软件质量起到重要作用。
[0003]软件缺陷预测本质上是一个模式识别的过程,它的核心是分类,目前用于软件缺陷预测的方法有Bayes分类器、分类回归树、聚类分析、神经网络等。由于软件缺陷受到多种复杂度度量属性的综合作用,至今尚没有一种软件缺陷预测的通用的分类模型。
[0004]近年来,用支持向量机(SupportVector Machine,SVM)来实现基于分类问题的预测已经成为研究热点。支持向量机(SVM)是一种通用的前馈神经网络,其核心是经验风险最小化原则,有效地解决了小样本、高维数、非线性等学习问题,由Vapnik在1992年首次提出,可以用于模式分类和非线性回归,各国学者开始用支持向量机(SVM)进行软件可靠性方面的预测。国际上,Gray等人利用支持向量机(SVM)对软件缺陷进行预测取得了不错的效果;Mishra等人提出模糊支持向量机(SVM)用于软件可靠性预测;国内崔正斌等人提出了遗传优化支持向量机(SVM)软件可靠性模型;张艳等人将支持向量机(SVM)回归模型用于测控软件故障预测
[0005]但是作为一种新的学习机器,支持向量机(SVM)也存在一些有待完善的地方,例如参数选取的问题,数据量过大时,支持向量机(SVM)的训练时间过长、速度变慢的问题。

技术实现思路

[0006]本专利技术的目的是提供一种软件缺陷预测方法,不但可提高软件缺陷预测性能,而且可以大大减少采样工作量,提高工作效率。
[0007]为了实现上述目的,本专利技术提供一种软件缺陷预测方法,包括以下步骤:
[0008]步骤1:数据预处理
[0009]步骤1

1:软件缺陷样本数据采集;
[0010]步骤1

2:对采集到的样本数据进行清理,形成信息决策表S<U,C
RS
∪D>,其中,U为论域,表示全体样本,C
RS
为条件属性集,D为决策属性集;
[0011]步骤1

3:采用等频率间隔划分方法对信息决策表S<U,C
RS
∪D>进行离散化处理;
[0012]步骤1

4:采用粗糙集约简的算法对全体样本U进行属性约简得到样本集;
[0013]步骤2:对属性约简后的样本集进行归一化,并将样本集划分为训练样本集和测试样本集两部分;
[0014]步骤3:利用基于粒距动态改变惯性权重ω的改进粒子群算法搜索支持向量机模
型的最优参数组合(C,σ);
[0015]步骤4:基于最优参数组合(C,σ)重新建立并训练支持向量机模型,其中C为支持向量机的惩罚因子,σ为支持向量机的核参数;
[0016]步骤5:对测试样本进行预测。
[0017]本专利技术步骤1

2中,对样本数据进行清理具体如下:对不平衡数据和脏数据预处理,删除全体样本中的“重复数据”和“矛盾数据”,信息决策表S<U,C
RS
∪D>是由随机提取的50%的有缺陷样本和50%的无缺陷样本组成。
[0018]本专利技术步骤1

3中等频率间隔划分方法具体是:将所有M个属性值按照顺序排列,然后划分成K个区间段,每个区间段包含属性的个数为M/K个。
[0019]本专利技术步骤1

4中,采用粗糙集约简的算法对全体样本U进行属性约简具体如下:
[0020]由式I(B,D)=H(D)

H(D|B),I(α
PSO
,D|B)=H(D|B)

H(D|B∪{α
PSO
})求得然后令B=B∪{β},重复直到I(B,D)=I(C
RS
,D),此时B就是所求信息决策表S〈U,C
RS
∪D>的一个约简;
[0021]式中:B为初始值是信息决策表S〈U,C
RS
∪D>中C
RS
关于D的核;
[0022]α
PSO
∈C
RS
\B,H(Q|P)为知识Q相对于知识P的条件熵;
[0023]α
PSO
为C
RS
\B的子集。
[0024]本专利技术步骤2中对样本集进行归一化,利用公式(1)归一化到[

1,1]区间:
[0025]x

=(x
i

x
min
)/(x
max

x
min
)
ꢀꢀ
(1)
[0026]式中:x

是归一化后的数据;
[0027]x
i
是原始数据的输入特征;
[0028]x
max
和x
min
分别是原始数据输入特征的最大值和最小值。
[0029]本专利技术步骤3中利用基于粒距动态改变惯性权重ω的改进粒子群(Improved Particle Swarm Optimization,IPSO)算法搜索支持向量机(SVM)模型的最优参数组合(C,σ)具体如下:
[0030]设定支持向量机(SVM)惩罚因子C的取值范围[C
min
,C
max
],支持向量机的核参数σ的取值范围[σ
min

max
],粒子群体大小N,初始化速度和位置,粒子维度D
PSO
=2,最大迭代次数I
PSO
,终止算法的阈值等;粒子按公式(2)和公式(3)来更新自己的速度V
i
和位置X
i
,惯性权重ω按公式(4)

(6)计算:
[0031]V
i
(k+1)=ωV
i
(k)+c1r1(p
i
(k)

X
i
(k))+c2r2(p
g
(k)

X
i
(k))
ꢀꢀ
(2)
[0032]X
i
(k+1)=X
i
(k)+V
i
(k+1)
ꢀꢀ...

【技术保护点】

【技术特征摘要】
1.一种软件缺陷预测方法,其特征在于,包括以下步骤:步骤1:数据预处理步骤1

1:软件缺陷样本数据采集;步骤1

2:对采集到的样本数据进行清理,形成信息决策表S∈U,C
RS
∪D>,其中,U为论域,表示全体样本,C
RS
为条件属性集,D为决策属性集;步骤1

3:采用等频率间隔划分方法对信息决策表S<U,C
RS
∪D>进行离散化处理;步骤1

4:采用粗糙集约简的算法对全体样本U进行属性约简得到样本集;步骤2:对属性约简后的样本集进行归一化,并将样本集划分为训练样本集和测试样本集两部分;步骤3:利用基于粒距动态改变惯性权重ω的改进粒子群算法搜索支持向量机模型的最优参数组合(C,σ),其中C为支持向量机的惩罚因子,σ为支持向量机的核参数;步骤4:基于最优参数组合(C,σ)重新建立并训练支持向量机模型;步骤5:对测试样本进行预测。2.根据权利要求1所述的一种软件缺陷预测方法,其特征在于,所述步骤1

2中,对样本数据进行清理具体如下:对不平衡数据和脏数据预处理,删除全体样本中的“重复数据”和“矛盾数据”,信息决策表S<U,C
RS
∪D>是由随机提取的50%的有缺陷样本和50%的无缺陷样本组成。3.根据权利要求1或2所述的一种软件缺陷预测方法,其特征在于,所述步骤1

3中等频率间隔划分方法具体是:将所有M个属性值按照顺序排列,然后划分成K个区间段,每个区间段包含属性的个数为M/K个。4.根据权利要求1或2所述的一种软件缺陷预测方法,其特征在于,所述步骤1

4中,采用粗糙集约简的算法对全体样本U进行属性约简具体如下:由式I(B,D)=H(D)

H(D|B),I(α
PSO
,D|B)=H(D|B)

H(D|B∪{α
PSO
})求得然后令B=B∪{β},重复直到I(B,D)=I(C
RS
,D),此时B就是所求信息决策表S<U,C
RS
∪D>的一个约简;式中:B为初始值是信息决策表S<U,C
RS
∪D>中C
RS
关于D的核;α
PSO
∈C
RS
\B,H(Q|P)为知识Q相对于知识P的条件熵;α
PSO
为C
RS
\B的子集。5.根据权利要求4所述的一种软件缺陷预测方法,其特征在于,所述步骤2中对样本集进行归一化,利用公式(1)归一化到[

1,1]区间:x

=(x
i

x
min
)/(x
max

x
min
)
ꢀꢀ
(1)式中:x

是归一化后的数据;x
i
是原始数据的输入特征;x
max
和x
min
分别是原始数据输入特征的最大值和最小值。6.根据权利要求4所述的一种软件...

【专利技术属性】
技术研发人员:孟倩
申请(专利权)人:江苏师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1