基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法及装置制造方法及图纸

技术编号:38424878 阅读:14 留言:0更新日期:2023-08-07 11:23
本申请提供了一种基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法及装置,所述方法包括:获取软件缺陷预测数据集,将软件缺陷预测数据集按比例划分为训练数据集和待预测数据集,构造代价敏感与局部几何保持宽度学习模型,通过训练数据集训练价敏感与局部几何保持宽度学习模型,使用训练完成的代价敏感与局部几何保持宽度学习模型对待预测数据集进行软件缺陷预测,获取软件缺陷预测结果。本申请通过将类内局部保持散度矩阵和误分类代价矩阵融入宽度学习框架中,既有效解决了数据集类不平衡问题,又挖掘了数据集的局部几何结构特征和整体流行信息,以提升分类性能,并且使用宽度学习系统大大缩短训练时间并能保证较高的精度。较高的精度。较高的精度。

【技术实现步骤摘要】
基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法及装置


[0001]本申请涉及软件缺陷预测
,具体说是一种基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法及装置。

技术介绍

[0002]随着软件规模的扩大和复杂度的不断提高,软件的质量问题成为了关注的焦点,软件缺陷是软件质量的对立面,威胁着软件质量。因此,如何在软件开发的早期挖掘出缺陷模块成为一个亟需解决的问题。软件缺陷预测技术能够在软件开发过程中使用软件模块的度量元数据来提前发现与锁定缺陷模块,从而合理地分配有限资源,为软件质量提供保障。
[0003]软件缺陷预测主要是依据软件度量元来预测和度量软件模块中有可能存在的缺陷。具体来说,就是对软件的历史数据和代码进行分析,找寻缺陷分布的规律,来建立缺陷预测模型对软件缺陷进行预测,从而提升软件质量和测试效率。
[0004]随着机器学习的发展,很多可靠的模型应用于软件缺陷预测领域,对提高软件的质量起到了至关重要作用。这些研究成果可以进一步减小测试开发工程师的工作难度,提高他们的工作效率,他们可以通过预测结果来进一步给软件开发工程师提出改进的方向。机器学习是众多学者研究的领域,它的研究意义是可以使用历史数据来提高系统的性能。众多学者基于机器学习来建立缺陷预测模型,通过软件模块的逻辑复杂度和结构复杂度对所建立的模型进行训练,并利用该模型预测软件模块是否存在缺陷。使用机器学习来进行软件缺陷预测的方法很有效,常用的机器学习分类算法包括决策树算法、关联规则、逻辑回归、贝叶斯网络、支持向量机、字典学习、遗传算法以及神经网络算法等。然而众多机器学习方法应用于软件缺陷预测之中,忽略了软件缺陷数据集本身存在的类不平衡问题。
[0005]深度学习作为近几年国内研究的热点,同样被用于软件缺陷预测的研究。有研究者利用多层受限玻尔兹曼机,构建深度置信网络,以此来提取源代码中的语法语义特征;更有学者利用卷积神经网络提取、精炼特征,并结合静态代码度量,使用逻辑回归进行分类。研究表明,使用深度学习方法能够有效提高软件缺陷预测的精度,但较高的精度需要深度模型不得不持续地增加网络层数或者调整参数个数,以及深度网络的结构复杂并且涉及到大量的超参数,这种复杂性使得在理论上分析深层结构变得极其困难。
[0006]因此,如何克服上述存在的技术问题和缺陷成为需要重点解决的问题。

技术实现思路

[0007]为了克服目前存在的软件缺陷预测效果差、效率低和数据集类不平衡的问题,本申请提供了基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法及装置,采用了如下的技术方案:
[0008]第一方面,本申请提供了基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法,包括:
[0009]步骤S1,构建软件缺陷预测数据集;
[0010]步骤S2,基于获取的所述软件缺陷预测数据集,将所述软件缺陷预测数据集按比例划分为训练数据集和待预测数据集;
[0011]步骤S3,构造代价敏感与局部几何保持宽度学习模型;构造代价敏感与局部几何保持宽度学习模型的具体步骤包括:
[0012](1)引入局部保持散度矩阵概念,获取数据集中同类别内节点之间的测地线距离,即样本间的距离度量,使用测地线距离构造一个新的局部几何保持连接图,挖掘数据在高维核空间下的局部内在几何信息,从而反应高维数据的流形信息,将局部几何保持连接图引入到类内散度矩阵中,设计为类内局部保持散度矩阵;
[0013](2)采用代价敏感学习算法思想,使对误分类代价较高的类别产生偏置,解决数据集类不平衡问题,根据数据中有缺陷样本和无缺陷样本实例的比例,对有缺陷样本和无缺陷样本分配不一样的误分类代价,获取误分类代价矩阵;
[0014](3)将所述类内局部保持散度矩阵和所述误分类代价矩阵融入宽度学习框架中,获取代价敏感与局部几何保持宽度学习模型。
[0015]步骤S4,将训练数据集输入代价敏感与局部几何保持宽度学习模型,对所述代价敏感与局部几何保持宽度学习模型进行训练,获取训练完成的所述代价敏感与局部几何保持宽度学习模型;
[0016]步骤S5,使用训练完成的所述代价敏感与局部几何保持宽度学习模型对所述待预测数据集进行软件缺陷预测,获取软件缺陷预测结果。
[0017]进一步地,所述步骤S1中的构建软件缺陷预测数据集,包括:
[0018]从历史软件模块中提取程序代码的静态属性,设计出有效的软件缺陷度量元,包括代码结构信息、代码行数信息、数符信息、可读性信息、McCabe度量信息、Halstead度量信息以及缺陷信息,构建软件缺陷预测的数据集。
[0019]进一步地,所述步骤S3中构建类内局部保持散度矩阵,具体方法为:
[0020]设有训练数据集其中x
i
为训练集中第i个样本,y
i
∈{0,1}为样本的类别标签,l为样本的个数;为待预测数据集,其中x
j
为待预测数据集中第j个样本,y
j
∈{0,1}为样本的类别标签,样本的个数为u;
[0021]利用训练数据集在高维核空间下的局部内在几何信息,使用测地线距离构造局部几何保持连接图G
w
;局部几何保持连接图G
w
=(V,E),其中结点集V={x1,...,x
l
,x
l+1
,...,x
l+u
},边集E可表示为一个邻接矩阵,由于高斯过程能够表示任意非线性函数和函数的联合分布,适于预测输入数据与输出数据之间的关系,所以使用高斯函数定义该邻接矩阵的元素如式(1)所示:
[0022][0023]其中,为热核函数,t为一个常数,KNN()表示K近邻函数;距离度量函数d(x
i
,y
j
)由式(2)、式(3)计算得到:
[0024]d(x
i
,x
j
)=min{d
x
(x
i
,x
j
),d
x
(x
i
,x
j
)+d
x
(x
i
,x
j
)}(2)
[0025][0026]其中,d
x
(x
i
,y
j
)为图G
w
中边长,d
g
(x
i
,y
j
)为结点x
i
和x
j
之间的测地线距离;
[0027]则类内局部保持散度矩阵定义为:
[0028][0029]其中,D
w
为对角阵,D
w
表示为L
w
=D
w

W
w
为G
w
的类内拉普拉斯矩阵,f为目标决策函数。
[0030]进一步地,所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法,其特征在于,包括:步骤S1,构建软件缺陷预测数据集;步骤S2,基于获取的所述软件缺陷预测数据集,将所述软件缺陷预测数据集按比例划分为训练数据集和待预测数据集;步骤S3,构造代价敏感与局部几何保持宽度学习模型;构造代价敏感与局部几何保持宽度学习模型的具体步骤包括:(1)引入局部保持散度矩阵概念,获取数据集中同类别内节点之间的测地线距离,即样本间的距离度量,使用测地线距离构造一个新的局部几何保持连接图,挖掘数据在高维核空间下的局部内在几何信息,从而反应高维数据的流形信息,将局部几何保持连接图引入到类内散度矩阵中,设计为类内局部保持散度矩阵;(2)采用代价敏感学习算法思想,使对误分类代价较高的类别产生偏置,解决数据集类不平衡问题,根据数据中有缺陷样本和无缺陷样本实例的比例,对有缺陷样本和无缺陷样本分配不一样的误分类代价,获取误分类代价矩阵;(3)将所述类内局部保持散度矩阵和所述误分类代价矩阵融入宽度学习框架中,获取代价敏感与局部几何保持宽度学习模型。步骤S4,将训练数据集输入代价敏感与局部几何保持宽度学习模型,对所述代价敏感与局部几何保持宽度学习模型进行训练,获取训练完成的所述代价敏感与局部几何保持宽度学习模型;步骤S5,使用训练完成的所述代价敏感与局部几何保持宽度学习模型对所述待预测数据集进行软件缺陷预测,获取软件缺陷预测结果。2.根据权利要求1的基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法,其特征在于,所述步骤S1中的构建软件缺陷预测数据集,包括:从历史软件模块中提取程序代码的静态属性,设计出有效的软件缺陷度量元,包括代码结构信息、代码行数信息、数符信息、可读性信息、McCabe度量信息、Halstead度量信息以及缺陷信息,构建软件缺陷预测的数据集。3.根据权利要求1的基于代价敏感与局部几何保持宽度学习的软件缺陷预测方法,其特征在于,所述步骤S3中的构建类内局部保持散度矩阵,具体方法为:设有训练数据集其中x
i
为训练集中第i个样本,y
i
∈{0,1}为样本的类别标签,l为样本的个数;为待预测数据集,其中x
j
为待预测数据集中第j个样本,y
j
∈{0,1}为样本的类别标签,样本的个数为u;利用训练数据集在高维核空间下的局部内在几何信息,使用测地线距离构造局部几何保持连接图G
w
;局部几何保持连接图G
w
=(V,E),其中结点集V={x1,...,x
l
,x
l+1
,...,x
l+u
},边集E可表示为一个邻接矩阵,由于高斯过程能够表示任意非线性函数和函数的联合分布,适于预测输入数据与输出数据之间的关系,所以使用高斯函数定义该邻接矩阵的元素如式(1)所示:
其中,为热核函数,t为一个常数,KNN()表示K近邻函数;距离度量函数d(x
i
,y
j
)由式(2)、式(3)计算得到:d(x
i
,x
j
)=min{d
x
(x
i
,x
j
),d
x
(x
i
,x
j
)+d
x
(x
i
,x
j
)}(2)其中,d
x
(x
i
,y
j
)为图G
w
中边长,d
g
(x
i
,y
j
)为结点x
i
和x
j

【专利技术属性】
技术研发人员:贾俊亮崔智莹曹鹤玲李磊廖天力楚永贺赵晨阳刘广恩王峰王盼盼李庆宇
申请(专利权)人:河南工业大学
类型:发明
国别省市:

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

1