猜你想搜
申请专利
专利申请
商标代理
知识产权
专利申请流程
商标分类
发明专利申请
怎么申请专利
如何申请专利
专利侵权
专利代理
专利申请费用
实用新型专利申请
知识产权代理
专利转让
商标注册申请
外观设计专利
专利
专利申请网
专利产品
外观专利申请
商标申请
专利网
专利申请代理
商标注册
PCT申请
实用新型专利
专利查询
商标注册流程
商标侵权
申请商标
商标注册费用
商标注册代理
专利检索
商标申请流程
商标注册公司
中国商标
商标
商标注册网
商标注册流程及费用
中国商标注册网
商标网
发明专利
商标转让
专利申请公司
外观专利
专利权
专利申请流程及费用
美国专利申请
PCT专利申请
欧洲专利局
发明专利申请流程
知识产权保护
外观设计专利,外观专利
外观设计专利申请
集成电路布图设计
版权登记流程
软件著作权登记
外观专利名称
外观设计专利保护期限
咨询热线
182-1095-8705 地址:北京市西城区红莲南路57号
电话:182-1095-8705
邮箱:2101183472@qq.com
电话:182-1095-8705
邮箱:2101183472@qq.com
软件缺陷预测专利,一种基于Transformer的软件缺陷预测方法与流程
专利代理 发布时间:2023-04-05 23:42:46 浏览: 次
今天,乐知网小编 给大家分享 软件缺陷预测专利,一种基于Transformer的软件缺陷预测方法与流程。
软件缺陷预测专利,一种基于Transformer的软件缺陷预测方法与流程
本发明涉及软件缺陷预测技术,尤其涉及一种基于transformer的软件缺陷预测方法。
背景技术:
软件缺陷在工业界和学术界,也被称为软件故障或软件错误等。
nasa对软件缺陷的定义是:
软件无法完成预期指定的功能。
软件缺陷在软件开发过程中不可避免产生,根据微软研究院调查发现,每个应用软件在内部测试的时候平均1000行代码会存在10到20个软件缺陷,在已经发布的软件产品中,每1000行代码会存在0.5个软件缺陷。
因此如何帮助测试人员更快更早地发现软件中的缺陷变得更加重要。
但是为了修复已经发布软件产品中的一个软件缺陷,将花费50到200倍的成本。
软件缺陷预测就是为了帮助测试人员进行缺陷测试,发现源代码文件中潜在的软件缺陷,从而更好分配人力、物力进行缺陷修复。
由于nlp技术的快速发展,例如文本分类、舆情分析等都获得了很快的发展,transformer模型由google在2018年提出,成功的应用到nlp的各种任务中。
transformer的提出可以有效的解决传统rnn模型,例如lstm、bi-lstm模型,不能并行的训练。
除此之外transformer是由self-attention机制,成功有效的解决模型无法上下文长期依赖问题。
如何利用机器学习方法来构建软件缺陷预测模型,因为机器学习技术在缺陷预测中已经证实获得比其他模型更好的效果。
缺陷预测预测过程即假定已知一个样本空间x,有n个样本构成,样本空间中的单个样本表示为x(i),x(i)={a1,a2,。。。,ak}即为一个k维的向量,aj表示一个属性的具体取值。
对于监督学习学习而言,必须有一个标签y,令y={y1,y2,。。。yc},c表示标签类别的个数。
对于软件缺陷问题,c的大小为2,也就是一个二分类问题,当标签为0时,预测的模块中不含有软件缺陷,不然当标签为1时,预测的模块中含有软件缺陷。
采用监督的机器学习构建模型时,训练集中的每一个实例用(x(i),y(i))标记,即每一个样本既包含数据的特征又包含具体类别标签。
监督学习模型的目标就是通过学习算法η学习一个函数假设h=f(x),然后使用训练得到的函数假设h对需要预测的数据进行预测。
技术实现要素:
为了解决以上技术问题,本发明提出了一种基于transformer的软件缺陷预测方法,可以很好的捕捉程序的上下文信息,除此之外,可以进行并行训练,大大减小训练时间。
本发明的技术方案是:
一种基于transformer的软件缺陷预测方法,使用transformer中的encoder阶段,然后在编码阶段的最后一个时间步介入到一个二分类的softmax层进行预测。
主要包括 (1)构建抽象语法树; 抽象语法树作为程序的一种中间表示形式,利用抽象语法树实现一种以上源程序处理工具。
(2)transformer网络架构。
包括如下步骤:
1)给定一个java源文件的标记; 2)然后和对应的位置编码信息进行连接; 3)然后这里进行self-attention操作;这里使用一个以上的self-attention操作,从而获得一个multi-headattention,然后和这一层的输入进行一个add操作; 加上一个layernormalization操作,然后加上一层前向网络,使用全连接网络,然后对全连接层也进行layernormalization; 然后把这一层的所有输出进行一个concate连接操作,连接后的向量与输出层进行连接,判断是否是有缺陷。
进一步的,具体的步骤如下所述:
(1)首先借助buginfo工具对每个java源文件进行打标签;
软件缺陷预测专利,一种软件缺陷预测方法及预测系统与流程
本发明涉及一种软件缺陷预测方法及预测系统,属于软件工程领域。
背景技术:
:
软件缺陷预测包括数据预处理、特征提取、训练预测模型、识别四个环节。
其中特征提取是软件缺陷预测中最基本的问题之一。
对于软件缺陷预测而言,提取有效的特征是完成识别的首要任务。
现有的特征提取方法可分为传统维数简约方法和流行学习维数简约方法。
其中,传统维数简约方法:
包括主成分分析(pca)、多维尺度分析(mds)。
流行学习维数简约方法:
包括等距映射法(isomap)、拉普拉斯特征映射(le)、局部保留投影(lpp)等。
(1)主成分分析(pca):
其核心思想是通过把原始样本数据线性映射到低维空间中,使得投影后的数据在新的低维空间中具有各特征线性无关的特性,通过投影后,高维的数据可以映射为低维的数据,从而实现数据简约。
即最终要求满足下式的v:
stv=λv(1)其中st代表总体散度矩阵,λ为v对应的特征值。
(2)多维尺度分析(mds):
通过分析相似数据来挖掘数据中的隐藏结构信息,mds算法的目的是在已知原始样本间距离的情况下,重构低维空间的样本,使得在低维空间的样本的距离和原始样本在高维空间的距离尽可能相同。
低维空间重构样本的距离与高维原始样本距离的误差使用一个误差函数来表示,通过求解该误差函数,可以求出映射之后的数据。
即求解下式,得出映射后的矩阵z:
其中,z={zi,li},i=1,。。。,n,di,j=d(xi,xj)=(xi-xj)t(xi-xj)。
(3)等距映射法(isomap):
是对mds的一种改善,在isomap中,使用测地距离来替代mds中的欧氏距离,这种方式可以获得在全局上最优的几何结构,能够保存低维流行结构。
测地距离的求解分为两种情况来考虑,一种情况是如果两个样本距离很近,即为近邻点,则直接使用欧氏距离来近似测地距离;另一种情况是如果两个样本距离较远,即为非近邻点,则可以使用近邻图上的最短路径来表示。
在求出测地距离后,就可以使用mds方法来进行等距映射,从而获得低维数据表示。
isomap可以反映非线性数据的内在性质,但是该方法没有考虑到数据样本的局部关系,并且在降维时,isomap可能会产生“elbow”现象的误差,导致该缺点的主要原因就是测地距离度量。
(4)拉普拉斯特征映射(le):
从局部来构造数据间的近邻关系,使得在高维空间中局部的结构信息可以在映射后保持,le算法在构造降维目标时,更加直观易懂。
为了使得在高维空间中的近邻样本在投影后的空间中也是近邻的,即保持样本的近邻结构信息,假设y=[y1,y2,。。。,yk]是投影到低维空间的样本,则le算法需要解决的是下面的最小化问题:
其中,w是权重矩阵。
最终可将上式转换为广义特征值问题的求解:
lf=λdf(4)其中,d是对角线矩阵,它的元素是w的每一列的总和或者是w的每一行的总和,即dii=∑jwji,l=d-w是laplacian矩阵,l是一个对称的,半正定的矩阵。
(5)局部保留投影(lpp)方法:
是le算法的线性简约,lpp计算转换矩阵p将高维空间的输入样本x=[x1,x2,。。。,xn]投影到一个低维子空间,使得在这个空间中可以保留输入样本的局部结构,这个转换p可以通过下面的公式得到:
其中yi=ptxi,权重矩阵s是由近邻图构造得来。
最终转换为一个广义特征值求解问题,如下所示:
xlxtp=λxdxtp(6)其中dii=∑js(i,j),d是对角线矩阵,而l=d-s。
对于传统维数简约方法,存在一些不足之处,如主成分分析(pca)方法,其理论完善,并且计算有效,对内部结构是线性结构的数据集具有很好的降维效果,但在面对线性不可分的数据时,pca无法反应数据的非线性性质;而多维尺度分析算法(mds)也不能很好的处理非线性结构的样本数据。
对于流行学习维数简约方法,等距映射法(isomap)虽然可以反映非线性数据的内在性质,但是其与mds相似,都是基于全局的降维算法,该方法没有考虑到数据样本的局部关系,并且在降维时,isomap可能会产生”elbow”现象的误差;拉普拉斯特征映射(le)和局部保留投影(lpp)虽然能够处理样本局部信息,但没有考虑到样本的类别信息。
技术实现要素:
本发明所要解决的技术问题是:
针对现有技术的不足,提供一种用于软件缺陷预测的方法及系统,基于代价敏感的半监督拉普拉斯特征映射方法(cssle),通过该方法可以有效改善特征提取的鉴别性。
为解决以上技术问题,本发明将采取以下的技术方案:
本发明提出一种软件缺陷预测方法,包括以下步骤:
步骤一、将训练样本集进行降维处理,获得投影到低维空间的训练样本数据集,具体包括:
(1)将样本集中的样本分为有标记样本和无标记样本,其中对有标记样本进一步划分为有缺陷样本和无缺陷样本,然后分别构建三类邻接图,具体是:
对于第一类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;对于第二类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;对于第三类邻接图,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边;(2)对于每种邻接图,根据结点之间的连接情况确定样本点之间的距离权重,其中对于第二类邻接图,在计算样本点距离权重时引入代价敏感信息;(3)采用拉普拉斯特征映射算法的原理,根据步骤(2)确定的样本点之间的距离权重以及映射后的样本点之间的距离建立目标函数,将该目标函数转换成广义特征值方程,求解该方程获得特征向量矩阵,进一步获得投影到低维空间的样本集;步骤二、对待测试样本集根据步骤一的流程进行降维处理,得到降维后的测试样本数据集;步骤三、通过朴素贝叶斯分类器,根据步骤一获得的训练样本数据集和步骤二获得的测试样本数据集,训练预测模型并预测测试样本数据集的分类情况,得出软件缺陷预测结果。
进一步的,本发明的软件缺陷预测方法,在步骤一的分步骤(1)中:
训练样本集x={xi,l},其中xi表示训练样本,xi∈rd,d是训练样本的维数,i=1,2,。。。n,n是样本的数量,l是样本的类别标签,l∈{0,-1,1},其中-1表示无标记样本,0表示无缺陷样本,1表示有缺陷样本;同类样本表示两个结点均是有缺陷样本或均是无缺陷样本,异类样本表示两个结点一个是有缺陷样本一个是无缺陷样本。
进一步的,本发明的软件缺陷预测方法,在步骤一的分步骤(2)中确定样本点之间的距离权重具体为:
对于第一类邻接图,若结点i,j有边连接,则权重否则wij=0;t为热核宽度;对于第二类邻接图,若结点i,j有边连接,则权重否则bij=0;其中ca,b为代价敏感参数;对于第三类邻接图,若结点i,j有边连接,则权重否则sij=0。
进一步的,本发明的软件缺陷预测方法,步骤一的分步骤(3)具体如下:
a、建立目标函数:
假设y=[y1,y2,。。。,yn]是投影到低维空间的样本,则需要解决下面的最大化问题:
其中,α表示调节参数,yi、yj均表示映射后的样本点,i=1,2,。。。n,j=1,2,。。。n;b、将步骤a中的目标函数转换成广义特征值的求解问题:
lba=λlta;通过求解该式,求出矩阵a={a1,a2,。。。,ar},其中,λ表示特征值;lb=db-b、lt=dt-t;即其中,即db与dt均是对角矩阵且db与dt的每个对角元素分别是b与t中的每一行或者每一列之和;b是第二类邻接图构建的权重矩阵,τ=w+αs,w是第一类邻接图构建的权重矩阵,s是第三类邻接图构建的权重矩阵;c、根据矩阵a求出投影后的样本y,y为矩阵a中的每一行向量组成的矩阵,即,yi是a的第i行向量,其中,r代表矩阵a中特征向量的数量,表示向量fj的第i个分量,j=1,2,。。。r。
进一步的,本发明的软件缺陷预测方法,在步骤一的分步骤(1)中,根据结点之间的近邻情况建立连接边是采用ε领域法,即:
如果结点i,j满足||xi-xj||2<ε,则在结点i,j间连接一个边,ε为设定值。
进一步的,本发明的软件缺陷预测方法,在步骤一的分步骤(1)中,根据结点之间的近邻情况建立连接边是采用n最近邻法,即:
当结点i是结点j的n近邻结点或者结点j是结点i的n近邻结点,则结点i,j使用一条边连接。
进一步的,本发明的软件缺陷预测方法,在步骤一的分步骤(2)中确定样本点之间的距离权重具体为:
对第一类、第三类的邻接图,如果结点i,j是有边连接的,其权重均设置为1,否则均设置为0;对第二类的邻接图,如果结点i,j是有边连接的,则权重设为ca,b,否则设为0,其中:
ca,b是代价敏感参数。
进一步的,本发明的软件缺陷预测方法,前述代价敏感参数ca,b表示将a类样本错误分类为b类样本的代价,ca,b为实验设定值,其中,当a类样本指有缺陷样本时,b类样本指无缺陷样本;或者当a类样本指无缺陷样本时,b类样本指有缺陷样本。
本发明还提出一种软件缺陷预测系统,包括:
数据预处理模块、降维处理模块、训练预测模块,数据预处理模块,用于获取训练样本数据集和测试样本数据集,将样本集中的样本分为有标记样本和无标记样本,其中对有标记样本进一步划分为有缺陷样本和无缺陷样本;降维处理模块,用于将样本集进行降维处理,获得投影到低维空间的样本数据集;训练预测模块,用于通过朴素贝叶斯分类器,将降维处理后的训练样本数据集和测试样本数据集,训练预测模型并预测测试样本数据集的分类情况,得出软件缺陷预测结果;其中,降维处理模块进一步具体包括:
邻接图构建单元,用于构建三类邻接图,具体包括:
第一构建单元,用于构建第一类邻接图,具体为:
将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;第二构建单元,用于构建第二类邻接图,具体为:
将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;第三构建单元,用于构建第三类邻接图,具体为:
将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边;距离权重计算单元,用于对于每种邻接图,根据结点之间的连接情况确定样本点之间的距离权重,其中对于第二邻接图,在计算样本点距离权重时引入代价敏感信息;拉普拉斯特征映射单元,用于采用拉普拉斯特征映射算法的原理,根据距离权重计算单元确定的样本点之间的距离权重以及映射后的样本点之间的距离建立目标函数,将该目标函数转换成广义特征值方程,求解该方程获得特征向量矩阵,进一步获得投影到低维空间的样本集。
作为上述软件缺陷预测系统进一步的细化方案,距离权重计算单元包括:
第一计算单元,用于计算第一类邻接图中样本点之间的距离权重,具体为:
若结点i,j有边连接,则权重否则wij=0;t为热核宽度;第二计算单元,用于计算第二类邻接图中样本点之间的距离权重,具体为:
若结点i,j有边连接,则权重否则bij=0;其中ca,b为代价敏感参数;第三计算单元,用于计算第三类邻接图中样本点之间的距离权重,具体为:
若结点i,j有边连接,则权重否则sij=0。
本发明采用以上的技术方案,本发明和现有技术相比,可以实现以下的有益效果:
本发明在特征提取时,将半监督学习应用到拉普拉斯特征映射方法中,不仅能够保留样本的局部近邻结构,对样本进行维数简约,去除冗余的特征,还能够利用样本中的类别信息,将有标记样本数据和无标记样本数据共同处理,提高预测模型的鉴别能力。
同时,为了避免将不同类的样本映射到较小的低维邻域中,尤其是将有缺陷样本映射到无缺陷样本邻域中,在le算法计算样本点距离时引入代价敏感信息,以此来提高le的映射精度。
在nasa数据库上的实验验证了本发明所提方法的有效性,并且和其他对比方法相比,在分类性能上有一定的提升。
附图说明图1是本发明的方法流程示意图。
具体实施方式以下将结合附图详细地说明本发明的技术方案。
如图1所示,本发明包括以下步骤:
一、利用训练样本集x构建邻接图:
在x中的样本分为有缺陷样本、无缺陷样本和无标记样本,需要构建三种邻接图a、b、c。
对于邻接图a,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;对于邻接图b,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;对于邻接图c,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边。
有两个方法可以规定两个结点的近邻情况:
(a)ε领域,如果结点i,j满足||xi-xj||2<ε,则可在结点i,j间连接一个边。
(b)n最近邻,结点i,j可以使用一条边连接当结点i是结点j的n近邻结点或者结点j是结点i的n近邻结点,这种关系是对称的。
二、选择权重:
对图a,若结点i,j有边连接,则否则wij=0;对图b,加入代价敏感参数ca,b,若结点i,j有边连接,则否则bij=0;对图c,若结点i,j有边连接,则否则sij=0。
e为自然对底数。
三、建立目标函数:
假设y=[y1,y2,。。。,yk]是投影到低维空间的样本,则需要解决下面的最大化问题:
四、将步骤三中的目标函数可转换成广义特征值的求解问题:
lba=λlta;通过求解该式,可以求出矩阵a={a1,a2,。。。,ar},a中的向量是取广义特征值方程所得的前r个最大特征值所对应的特征向量。
五、根据a可求出投影后的样本y,其中,其中,r代表矩阵a中特征向量的数量,表示向量fj的第i个分量,j=1,2,。。。r。
六、根据步骤一至步骤五,可对测试样本集z进行维数简约,得出降维后的样本集为z。
七、通过朴素贝叶斯(nb)分类器,根据步骤五获得的数据集y和步骤六获得的数据集z,训练预测模型并预测z的分类情况,得出预测效果。
步骤(1)至(7)中:
x={xi,l},i=1,2,。。。,n,其中训练样本xi∈rd,d是训练样本的维数,l是样本的类别标签,l∈{0,-1,1},其中-1表示无标记样本,0表示无缺陷样本,1表示有缺陷样本;α表示调节参数;在求出矩阵a后,就可求出投影后的矩阵y为a中的每一行向量组成的矩阵,即,yi是a的第i行向量。
以下将进一步详细地说明本发明的原理:
1。构建邻接图设样本集x={xi,l},i=1,2,。。。,n,其中xi∈rd,d是样本的维数,l是样本的类别标签,l∈{0,-1,1},其中-1表示无标记样本,0表示无缺陷样本,1表示有缺陷样本,分别构建三种邻接图a、b、c。
在邻接图a中,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于同类样本且近邻则建立连接边;在邻接图b中,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于异类样本且近邻则建立连接边;在邻接图c中,将样本集中的所有样本作为该邻接图的结点,如果有两个结点属于无标记样本且近邻则建立连接边。
有两个方法可以规定两个结点的近邻情况。
(a)ε领域,如果i,j满足||xi-xj||2<ε,则可在结点i,j间连接一个边。
(b)n最近邻,结点i,j可以使用一条边连接当结点i是结点j的n近邻结点或者结点j是结点i的n近邻结点,这种关系是对称的;本发明使用n最近邻方法。
2。选择权重,有两种方法用来选择边的权重:
(a)使用热核,如果结点i,j是有边连接的,则权重为否则为0。
(b)简单定义,如果结点i,j是有边连接的,则权重为1,否则为0。
这种简单的方法可以避免热核宽度t的选择。
另外,在软件缺陷预测中,有两类错误分类:
i类是将有缺陷样本错误分类为无缺陷样本;ii类是将无缺陷样本错误分类为有缺陷样本。
在软件工程实践中,i类错误的代价要大于ii类。
对软件模块进行分类预测时产生的i类错误代价可表示为c1,0,ii类错误代价可表示为c0,1。
根据上述分析可知c1,0>c0,1。
本发明充分利用样本的代价信息,为了避免在降维的过程中把相距较远的异类样本点映射嵌入到一个较小的邻域内。
因为所有的有边连接的结点是互异样本,所以在构建第二类邻接图的距离权重时引入代价敏感因子ca,b,以提高该方法的映射精度。
其中,ca,b表示将a类样本错误分类为b类样本的代价,ca,b为实验设定值。
a类,b类均指的是有缺陷样本或无缺陷样本,a!=b,即:
a类指的是有缺陷样本、b类指无缺陷样本,或者a类指的是无缺陷样本、b类指有缺陷样本。
则三种权重定义如下:
3。构造目标函数为了使得在高维空间中的近邻样本在投影后的空间中也是近邻的,即保持样本的近邻结构信息,并使得同类样本尽量靠近,异类样本尽量分离,假设y=[y1,y2,。。。,yk]是投影到低维空间的样本,则需要解决下面的最大化问题:
4。求出投影后的样本y令τij=wij+αsij,可将目标函数转换为下面的函数求解:
其中,公式(11)可做如下推导,其中,即db与dt均是对角矩阵且db与dt的每个对角元素分别是b与t中的每一行或者每一列之和。
即lb=db-b,lt=dt-t,所以,公式(11)可转换成如下目标函数的求解:
公式(14)可以转换成广义特征值的求解问题如下:
lba=λlta(15)。
通过求解(15),可以求出矩阵a={a1,a2,。。。,ar},a中的向量是取广义特征值方程所得的前r个最大特征值所对应的特征向量。
根据a可求出投影后的样本y,其中,表示向量fj的第i个分量。
作为与本发明提出的一种软件缺陷预测系统,包括:
数据预处理模块、降维处理模块、训练预测模块,其中降维处理模块进一步具体包括:
邻接图构建单元、距离权重计算单元、拉普拉斯特征映射单元,本发明实施例所提供的软件缺陷预测系统是与前述软件缺陷预测方法相对应的,具体的工作原理和使用过程参见前述方法实施例中的相关内容,在此不再赘述。
将本发明所述的方法在nasa数据库上实验,并将实验结果和相关特征提取方法,如pca、le、lpp方法进行对比分析。
nasa数据库含有10个软件工程集,每个工程都是采集于美国nasa航天局的一个软件系统或者子项目。
在本文的实验中,我们将会选择该数据库中的5个工程集(包括cm1、mw1、pc1、pc3、pc4)来做实验。
方法cm1mw1pc1pc3pc4pca0.230。290.230。280.24le0.330。360.320。340.44lpp0.380。430.290。400.46cssle0.520。520.490。480.45表1所有方法分别在nasa数据集5个工程上的pd平均值方法cm1mw1pc1pc3pc4pca0.030。070.030。140.02le0.060。050.020。070.10lpp0.050。070.040。160.13cssle0.080。060.060。040.07表2所有方法分别在nasa数据集5个工程上的pf平均值方法cm1mw1pc1pc3pc4pca0.330。310.290。250.35le0.390。410.420。370.42lpp0.440。430.340。320.41cssle0.510。520.470。540.48表3所有方法分别在nasa数据集5个工程上的f-measure平均值仔细研究以上三个表格所得的结果,可以得出下列几点结论:
(1)本发明提出的方法的预测效果在pd和f-measure这两个指标上普遍要大于所有对比方法,在pf这个指标上普遍要小于所有对比方法,说明本发明提出的方法的预测效果普遍要优于所有对比方法。
(2)本发明所提的cssle方法和le方法相比有显著的提高,这说明引入半监督学习和代价敏感的思想是有效的,通过半监督学习和代价敏感,可以使得经特征提取后的样本更具有鉴别性,从而提高分类效果。
以上所述仅是本发明的部分实施方式,本发明不只应用于软件工程领域,应当指出,对于本 技术领域:
软件缺陷预测专利,基于CNN-SVM的软件缺陷预测方法
技术领域 本发明涉及软件可靠性检测技术,具体涉及一种基于CNN-SVM的软件缺陷预测方法。
背景技术 随着社会信息化持续深入发展,软件在我们的日常生活中变得无处不在、无所不在。
但随之而来的是,软件缺陷导致的软件出错、失效、崩溃等质量问题层出不穷。
软件缺陷是计算机中存在的某种破坏软件和程序正常运行的错误,或者尚未发现的功能缺陷。
提前发现软件缺陷并提供解决方案有助于提高软件质量、降低维护成本并增强用户信任度。
如何有效的进行软件缺陷预测一直是软件工程师研究的重要领域。
其中,基于机器学习的软件缺陷预测方法是技术研究人员研究的热点内容之一。
主要是根据软件历史开发数据中的软件数据特征以及已发现的缺陷,通过机器学习来对目标软件项目中的缺陷数目或缺陷类型等进行预测。
一般可以考虑代码、注释、参数、操作数符、调用关系等因素对软件缺陷的影响,或者基于Halstead度量法、 McCabe度量法去提取软件数据特征信息。
缺陷的产生与各类软件数据特征具有不尽相同的非线性相关性,同时软件数据特征之间也具有一定的相关性。
除此之外,在软件历史开发数据中,缺陷数据数目远小于正常数据,由此带来了样本类不平衡的问题。
目前大多缺陷预测算法都在某一特定数据集上进行实验,其不能保证在各类不同的软件数据上具有一致的效果。
发明内容 本发明的目的在于提出一种基于CNN-SVM的软件缺陷预测方法。
实现本发明目的的技术解决方案为:
一种基于CNN-SVM的软件缺陷预测方法,包括如下步骤:
步骤1,从软件历史开发数据中提取软件数据特征,将获得的数据特征进行归一化处理; 步骤2,对归一化后的缺陷样本的数据特征进行SMOTE样本扩充; 步骤3,构建CNN-SVM模型,正常样本和扩充后的缺陷样本一起输入到 CNN-SVM模型中,先由CNN网络进行卷积、下采样和扁平化处理,完成特征提取后,输入到SVM层进行缺陷预测; 步骤4,采用RMSProp优化器,基于binary_cross_entroy损失函数进行优化拟合,完成CNN-SVM模型的训练; 步骤5,将目标软件缺陷特征输入训练好的CNN-SVM模型,输出预测结果。
进一步的,步骤1,从软件历史开发数据中提取软件数据特征,将获得的数据特征进行归一化处理,具体方法为:
从软件历史开发数据中提取软件数据特征,包括代码结构信息、代码行数信息、数符信息、可读性信息、McCabe度量信息、Halstead度量信息以及缺陷信息; 将获得的数据特征进行归一化处理,公式为:
其中,x 进一步的,步骤2,对归一化后的缺陷样本的数据特征进行SMOTE样本扩充,其中,SMOTE算法是一种合成少数类的随机过采样技术,算法步骤如下:
1)对于每一个缺陷样本x,基于欧式距离计算其到其他样本y中的距离并得到最近的K个样本,称K近邻样本,欧式距离公式如下, 其中,x 2)根据不平衡比率设置采样比例,确定采样倍率N,之后对每个缺陷样本随机选择若干K近邻样本x
软件缺陷预测专利,一种基于Transformer的软件缺陷预测方法与流程 的介绍就聊到这里。
更多关于 软件缺陷预测专利,一种基于Transformer的软件缺陷预测方法与流程 的资讯,可以咨询 乐知网。
(乐知网- 领先的一站式知识产权服务平台,聚焦 专利申请,商标注册 业务)。
关键词: 发明专利申请 如何申请专利