CN116662160B - 基于代价敏感宽度学习的软件缺陷预测方法及处理装置 - Google Patents
基于代价敏感宽度学习的软件缺陷预测方法及处理装置 Download PDFInfo
- Publication number
- CN116662160B CN116662160B CN202310502274.XA CN202310502274A CN116662160B CN 116662160 B CN116662160 B CN 116662160B CN 202310502274 A CN202310502274 A CN 202310502274A CN 116662160 B CN116662160 B CN 116662160B
- Authority
- CN
- China
- Prior art keywords
- software defect
- defect prediction
- data set
- cost
- width learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000007547 defect Effects 0.000 title claims abstract description 231
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 title claims abstract description 31
- 230000002950 deficient Effects 0.000 claims abstract description 72
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims abstract description 62
- 238000012549 training Methods 0.000 claims abstract description 31
- 238000010606 normalization Methods 0.000 claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000003062 neural network model Methods 0.000 claims abstract description 14
- 230000002441 reversible effect Effects 0.000 claims abstract description 10
- 238000013528 artificial neural network Methods 0.000 claims abstract description 8
- 210000002569 neuron Anatomy 0.000 claims description 51
- 230000004913 activation Effects 0.000 claims description 24
- 210000000225 synapse Anatomy 0.000 claims description 20
- 239000012528 membrane Substances 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 12
- 230000001242 postsynaptic effect Effects 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000003068 static effect Effects 0.000 claims description 10
- 230000009466 transformation Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010304 firing Methods 0.000 claims description 4
- 230000036279 refractory period Effects 0.000 claims description 4
- 238000005316 response function Methods 0.000 claims description 4
- 230000000946 synaptic effect Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
- G06F18/15—Statistical pre-processing, e.g. techniques for normalisation or restoring missing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
- G06F2218/02—Preprocessing
- G06F2218/04—Denoising
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了基于代价敏感宽度学习的软件缺陷预测方法及处理装置,属于软件缺陷预测领域,所述方法包括:构建软件缺陷预测数据集,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,引入脉冲神经网络,对数据集归一化预处理和线性编码,将数据集转化为脉冲序列,通过脉冲神经网络模型获取输出脉冲序列,然后进行反向解码,获取软件缺陷特征的连续输出值,将获取软件缺陷特征的连续输出值输入代价敏感宽度学习软件缺陷预测模型中进行训练,将待预测数据集输入代价敏感宽度学习软件缺陷预测模型,输出预测结果。本申请通过代价敏感宽度学习软件缺陷预测模型提高了软件缺陷预测的精度和可靠性,缩短了训练时间、提高了精度。
Description
技术领域
本申请涉软件缺陷预测技术领域,具体说是一种基于代价敏感宽度学习的软件缺陷预测方法及处理装置。
背景技术
在软件开发过程中,出现缺陷是无法避免的,软件规模越大,缺陷的数量就越多。面对功能需求的不断增加,动辄上万行代码的大中型程序成为主流,如何自动化寻找这些大规模程序中多个缺陷的缺陷位置,成为人们追求的目标。针对多缺陷定位问题,有研究提出根据测试数据的执行结果将缺陷程序划分为不同部分,随后通过开发人员人工检查代码,手动确定缺陷位置,该方法不仅消耗大量时间,而且需要花费较多的人力。在此基础上,有研究人员提出分解多缺陷定位问题,然后通过单缺陷定位方法来解决问题,但是仍需要技术人员全程交互指导识别缺陷。
为了提升定位方法的自动化,提高多缺陷定位效率,有研究人员通过借助遗传规划,在无技术人员参与指导情况下,针对Unix工具集中的92个缺陷,自行推导出30个不同的语句怀疑度计算公式,通过理论分析后,发现其中4个具有很好的缺陷定位效果。在此研究的基础上,有研究提出使用遗传算法来进行缺陷程序中多缺陷位置的定位,该算法将多缺陷定位问题转化为遗传算法能够处理的搜索优化问题,不仅实现了方法的自动化,而且提升了缺陷定位速度,提高了缺陷定位精度,整体性能优于之前的多缺陷定位方法,但是仍然存在诸如参数设置繁琐,算法规则复杂等问题。
软件缺陷预测通过设计一个鲁棒的机器学习模型,可准确判断待预测软件模块中是否存在缺陷程序,进而为合理分配测试资源以及提高软件可靠性提供指导。软件缺陷预测是一个代价敏感学习问题,即将有缺陷程序错判为无缺陷程序造成的代价大于将无缺陷程序错判为有缺陷程序造成的代价。
有研究指出,缺陷定位效果受缺陷位置以及缺陷类型的影响,已有的许多多缺陷定位方法在面对大型程序中多类型和多数量的缺陷时性能下降严重,无法得出有价值的缺陷定位信息,因此,寻求高效的定位多缺陷的方法成为亟待解决的问题。
发明内容
为了克服目前多缺陷定位方法在面对大型程序中多类型和多数量的缺陷时性能下降严重,无法得出有价值的缺陷定位信息的问题,本申请提供了基于代价敏感宽度学习的软件缺陷预测方法及处理装置,采用了如下的技术方案:
第一方面,本申请提供了基于代价敏感宽度学习的软件缺陷预测方法,包括:
步骤S1,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与类似软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
步骤S2,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
步骤S3,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;
步骤S4,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;
步骤S5,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;
步骤S6,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;
步骤S7,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;
步骤S8,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果。
进一步地,所述步骤S2中的采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,具体表现为:
采用代价敏感学习算法对所述软件缺陷预测数据集中的有缺陷实例和无缺陷实例分配不一样的误分类代价,添加代价敏感矩阵,给予软件缺陷预测数据集中无缺陷实例与有缺陷实例不同的误分类惩罚力度,使用“0”和“1”分别指代无缺陷实例与有缺陷实例;
假设Cij表示将第i类实例分类为第j类的分类代价,Cij值越大,表明该错误分类所带来的损失越大;错误分类的损失代价大于正确分类的损失代价,由于正确的分类是不会带来损失的,所以C00=C11=0,各个分类代价之间存在着如下的大小关系:C10>C01>C00=C11=0,其中,C00为实际无缺陷、预测无缺陷,C11为实际有缺陷、预测有缺陷,C10为实际有缺陷、预测无缺陷,C01为实际无缺陷、预测有缺陷。
进一步地,所述步骤S3中的对所述第一数据集进行归一化预处理,采用z-score对所述第一数据集进行归一化预处理。
进一步地,对所述第一数据集进行归一化预处理是对数据进行标准化处理,消除软件缺陷特征不同特征数据集之间的差异,使得数据易于比较和处理。采用z-score对所述第一数据集进行归一化预处理,使得经过归一化处理后的软件缺陷特征不同特征数据集均值为0,标准差为1。
进一步地,所述步骤S4中的对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列,具体表现为:
通过采用第二数据集中的实数向量映射到二进制脉冲序列的方式将第二数据集中的连续值转化为离散值,以适应脉冲神经网络模型的输入格式。
进一步地,所述步骤S5将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列,具体表现为:
脉冲响应神经元模型当中的神经元输入是沿着突触向神经元进行传输的脉冲序列,所有的脉冲在到达神经元之后都会在其内部完成突触后电位的产生,这部分突触后电位在相应的突触权值影响下的总和就是膜电位值的重要组成部分;
假设神经元有N个输入突触,第i个突触有Gi个脉冲输入,这些脉冲输入到达神经元的时间集合记为 表示突触i的第g个脉冲的发放时间,神经元在时间t的膜电位V(t)可以表示为:
其中,wi是神经元第i个输入突触的权值,tf表示第f个脉冲的发放时间,不应期函数ρ表示膜电位的复位过程,脉冲响应函数ε表示脉冲对突触后神经元膜电位的响应,t表示任意一个假定时间。
进一步地,所述步骤S7中的将所述第三数据集输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,具体表现为:
给定一个训练集{X,Y},以及Mi个特征节点;特征映射层中第i个特征节点Zi可以表示为:
Zi=φi(XWi+bi),i=1,2,...,p
其中权重Wi和偏差项bi是具有合适维数的随机矩阵,X为输入的数据,φi为所选激活函数;对于特征节点组的表示,可以将Zp=(Z1,Z2,...,Zp)作为特征映射层的特征节点组,并将Zp进一步连接到增强节点组在增强层,Zp需要经历一个类似的变换;不同的是,激活方式采用非线性激活,第j个增强节点的输出可以表示为:
其中Hj表示增强层的非线性激活输出,它从特征节点组集合Zp并通过激活函数εj的非线性变换得到的。权重Wj和偏差项bj是具有合适维数的随机矩阵。接着,增强层的激活输出可进一步表示为
为了保证训练时数据的稀疏性,引入岭回归算法来微调特征映射层和增强层的权重,最终,代价敏感宽度学习软件缺陷预测模型的输出采用以下形式:
Y=(Z1,Z2,...,Zp,H1,H2,...,Hq)Wq
=(Zp,Hq)Wq
其中Zp为特征节点,Hq为增强节点,Wq为权重;Zp为特征节点组,Hq为增强节点组。
进一步地,特征节点为输入的软件缺陷预测数据映射的特征,映射的特征被增强为随机生成权重的增强节点,映射的特征和增强节点连接到代价敏感宽度学习软件缺陷预测模型的输出端,特征映射层和增强层的对应输出权重通过梯度下降方法的伪逆得出。
进一步地,增强节点的输出权重代表着增强节点的好坏程度,输出权重越大,表明增强节点在对数据进行非线性变换时更贴合真实数据,预测更加准确。
第二方面,本申请还提供了基于代价敏感宽度学习的软件缺陷预测装置,包括:软件缺陷预测数据集获取模块,软件缺陷预测数据集划分模块,归一化处理模块,输入脉冲序列获取模块,输出脉冲序列获取模块,输出脉冲序列反向解码模块,代价敏感宽度学习软件缺陷预测模型训练模块,代价敏感宽度学习软件缺陷预测模型训练模块;
软件缺陷预测数据集获取模块,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与类似软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
软件缺陷预测数据集划分模块,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
归一化处理模块,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;
输入脉冲序列获取模块,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;
输出脉冲序列获取模块,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;
输出脉冲序列反向解码模块,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;
代价敏感宽度学习软件缺陷预测模型训练模块,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;
代价敏感宽度学习软件缺陷预测模型,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果。
第三方面,本申请提供了一种电子设备,包括:
一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行如第一方面所述的方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
第五方面,本申请提供了一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面所述的方法。
在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
与现有技术相比,本申请实施例主要有以下有益效果:
1.本申请采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,代价敏感学习算法通过考虑分类错误的代价来优化模型预测的准确性,从而提高软件缺陷预测的精度和可靠性。
2.本申请通过对第一数据集中的软件缺陷特征进行归一化预处理,可以提高代价敏感宽度学习软件缺陷预测模型的性能和训练速度。
3.本申请通过采取引入脉冲神经网络对数据进行线性编码方式不仅能够有效地降低数据的维度,而且还可以很好地处理动态数值信号和噪声问题。
4.本申请在进行软件缺陷预测的过程中采用代价敏感宽度学习软件缺陷预测模型,可以通过增加隐藏层的宽度以提高模型的表达能力。
5.在代价敏感宽度学习软件缺陷预测模型中可以很轻易地实现输入样本、特征节点和增强节点的增量学习算法,不需要重新训练已有的结构和参数,只需要计算新增部分的参数,从而大大缩短训练时间并能保证较高的精度。
附图说明
图1为本申请实施例可以应用于其中的示例性***架构图。
图2是本申请基于代价敏感宽度学习的软件缺陷预测方法流程图。
图3是本申请基于代价敏感宽度学习的软件缺陷预测方法的整体框架图。
图4是本申请基于代价敏感宽度学习的软件缺陷预测方法的运行流程图。
图5是本申请基于代价敏感宽度学习的软件缺陷预测方法的构建软件缺陷预测数据集流程图。
图6是本申请基于代价敏感宽度学习的软件缺陷预测的宽度学习软件缺陷预测模型训练示意图。
图7是本申请基于代价敏感宽度学习的软件缺陷预测的宽度学习软件缺陷预测模型运行流程图。
图8是本申请基于代价敏感宽度学习的软件缺陷预测的宽度学习软件缺陷预测模型运行流程图。
图9是本申请基于代价敏感宽度学习的软件缺陷预测的宽度学习软件缺陷预测模型运行流程图。
图10是本申请基于代价敏感宽度学习的软件缺陷预测的装置示意图。
图11是本申请基于代价敏感宽度学习的软件缺陷预测的原型工具框架图。
图12是本申请基于代价敏感宽度学习的软件缺陷预测的工具装置模块关系图。
图13是本申请实施例的计算机设备示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构10可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于代价敏感宽度学习的软件缺陷预测方法一般由服务器/终端设备执行,相应地,基于代价敏感宽度学习的软件缺陷预测装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,图中示出了本申请的基于代价敏感宽度学习的软件缺陷预测方法流程图,基于代价敏感宽度学习的软件缺陷预测方法的整体框架如图3所示,运行流程图如图4所示,所述方法包括以下步骤:
步骤S1,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与类似软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
所述步骤S1中构建软件缺陷预测数据集的流程图请参考图5:
S101,从现有的软件历史仓库中抽取历史软件模块;
S102,从所述历史软件模块中提取程序代码的静态属性;
S103,设计出与类似软件缺陷具有强相关性的软件缺陷度量元;
S104,实现对软件缺陷预测数据集的构建。
步骤S2,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
所述步骤S2中的采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,具体表现为:
采用代价敏感学习算法对所述软件缺陷预测数据集中的有缺陷实例和无缺陷实例分配不一样的误分类代价,添加代价敏感矩阵,给予软件缺陷预测数据集中无缺陷实例与有缺陷实例不同的误分类惩罚力度,使用“0”和“1”分别指代无缺陷实例与有缺陷实例;
假设Cij表示将第i类实例分类为第j类的分类代价,Cij值越大,表明该错误分类所带来的损失越大;错误分类的损失代价大于正确分类的损失代价,由于正确的分类是不会带来损失的,所以C00=C11=0,各个分类代价之间存在着如下的大小关系:C10>C01>C00=C11=0,其中,C00为实际无缺陷、预测无缺陷,C11为实际有缺陷、预测有缺陷,C10为实际有缺陷、预测无缺陷,C01为实际无缺陷、预测有缺陷。
步骤S3,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集。
解释:归一化预处理使得在节点间传递标准化的输入数据,避免了数据在训练过程中出现梯度***或者梯度消失的问题,使得网络的训练效果得到改进,归一化预处理增强了不同特征之间的可比性,提升了网络的泛华能力。
所述步骤S3中的对所述第一数据集进行归一化预处理,采用z-score对所述第一数据集进行归一化预处理。
对所述第一数据集进行归一化预处理是对数据进行标准化处理,消除软件缺陷特征不同特征数据集之间的差异,使得数据易于比较和处理。采用z-score对所述第一数据集进行归一化预处理,使得经过归一化处理后的软件缺陷特征不同特征数据集均值为0,标准差为1。
步骤S4,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列。
所述步骤S4中的对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列,具体表现为:
通过采用第二数据集中的实数向量映射到二进制脉冲序列的方式将第二数据集中的连续值转化为离散值,以适应脉冲神经网络模型的输入格式。
在一种可能的实施方式中,在对第二数据集进行线性编码,把第二数据集转化为输入脉冲序列的过程中,通过设置阈值过滤脉冲序列中的噪声,减少脉冲序列输入脉冲神经网络模型时对脉冲神经元的影响。
步骤S5,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列。
所述步骤S5将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列,具体表现为:
脉冲响应神经元模型当中的神经元输入是沿着突触向神经元进行传输的脉冲序列,所有的脉冲在到达神经元之后都会在其内部完成突触后电位的产生,这部分突触后电位在相应的突触权值影响下的总和就是膜电位值的重要组成部分;
假设神经元有N个输入突触,第i个突触有Gi个脉冲输入,这些脉冲输入到达神经元的时间集合记为 表示突触i的第g个脉冲的发放时间,神经元在时间t的膜电位V(t)可以表示为:
其中,wi是神经元第i个输入突触的权值,tf表示第f个脉冲的发放时间,不应期函数ρ表示膜电位的复位过程,脉冲响应函数ε表示脉冲对突触后神经元膜电位的响应,t表示任意一个假定时间。
步骤S6,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据。
步骤S7,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型。
代价敏感宽度学习软件缺陷预测模型训练具体请参考图6,运行流程图如图7,主要步骤如下:
步骤401,利用输入的软件缺陷预测数据映射的特征作为网络的特征节点;
步骤402,映射的特征被增强为随机生成权重的增强节点;
步骤403,映射的特征和增强节点连接到代价敏感宽度学习软件缺陷预测模型的输出端;
步骤404,特征映射层和增强层的对应输出权重通过梯度下降方法的伪逆得出。
其中,增强节点的输出权重代表着增强节点的好坏程度,输出权重越大,表明增强节点在对数据进行非线性变换时更贴合真实数据,预测更加准确。
所述步骤S7中的将所述第三数据集输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,具体表现为:
给定一个训练集{X,Y},以及Mi个特征节点;特征映射层中第i个特征节点Zi可以表示为:
Zi=φi(XWi+bi),i=1,2,...,p
其中权重Wi和偏差项bi是具有合适维数的随机矩阵,X为输入的数据,φi为所选激活函数;对于特征节点组的表示,可以将Zp=(Z1,Z2,...,Zp)作为特征映射层的特征节点组,并将Zp进一步连接到增强节点组在增强层,Zp需要经历一个类似的变换;不同的是,激活方式采用非线性激活,第j个增强节点的输出可以表示为:
其中Hj表示增强层的非线性激活输出,它从特征节点组集合Zp并通过激活函数εj的非线性变换得到的。权重Wj和偏差项bj是具有合适维数的随机矩阵。接着,增强层的激活输出可进一步表示为
为了保证训练时数据的稀疏性,引入岭回归算法来微调特征映射层和增强层的权重,最终,代价敏感宽度学习软件缺陷预测模型的输出采用以下形式:
Y=(Z1,Z2,...,Zp,H1,H2,...,Hq)Wq
=(Zp,Hq)Wq
其中Zp为特征节点,Hq为增强节点,Wq为权重;Zp为特征节点组,Hq为增强节点组。
步骤S8,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果。
在一种可能的实施方式中,继续参考图8,图8是本申请实施例的基于代价敏感宽度学习的软件缺陷预测方法框架图,运行流程图如图9所示,具体步骤如下:
步骤1,从现有的软件历史仓库中抽取软件模块。
步骤2,从历史软件模块中提取程序代码的静态属性,设计出有效的软件缺陷度量元,构建软件缺陷预测的数据集。
步骤3,将软件缺陷预测的数据集输入到代价敏感宽度学习软件缺陷预测模型中进行训练。
步骤4,将新的程序模块进行软件度量及预处理后,输入到训练好的代价敏感宽度学习软件缺陷预测模型中,代价敏感宽度学习软件缺陷预测模型就可以将其进行分类,分成有缺陷模块或无缺陷模块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-On ly Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
继续参考图10,本实施例所述的基于代价敏感宽度学习的软件缺陷预测装置包括:软件缺陷预测数据集获取模块101,软件缺陷预测数据集划分模块102,归一化处理模块103,输入脉冲序列获取模块104,输出脉冲序列获取模块105,输出脉冲序列反向解码模块106,代价敏感宽度学习软件缺陷预测模型训练模块107,代价敏感宽度学习软件缺陷预测模型训练模块1008;
软件缺陷预测数据集获取模块101,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与类似软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
软件缺陷预测数据集划分模块102,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
归一化处理模块103,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;
输入脉冲序列获取模块104,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;
输出脉冲序列获取模块105,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;
输出脉冲序列反向解码模块106,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;
代价敏感宽度学习软件缺陷预测模型训练模块107,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;
代价敏感宽度学习软件缺陷预测模型108,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果。
在一种可能的实施方式中,基于代价敏感宽度学习的软件缺陷预测处理装置原型工具框架图如图11所示,工具装置模块关系图如图12所示,主要模块如下:
模块1,数据处理模块。从现有的软件历史仓库中抽取软件模块,从历史软件模块中提取程序代码的静态属性,设计出有效的软件缺陷度量元,构建软件缺陷预测的数据集,对数据集进行数据预处理解决数据不平衡问题。
模块2,训练模块。将处理后的数据集输入到一个基于宽度学习构建的软件缺陷预测模型中进行训练。
模块3,预测模块。将待预测软件模块进行数据处理后输入缺陷预测模型进行预测,分为有缺陷模块和无缺陷模块。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图13,图13为本实施例计算机设备基本结构框图。
所述计算机设备13包括通过***总线相互通信连接存储器13a、处理器13b、网络接口13c。需要指出的是,图中仅示出了具有组件13a-13c的计算机设备13,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器13a至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器13a可以是所述计算机设备13的内部存储单元,例如该计算机设备13的硬盘或内存。在另一些实施例中,所述存储器13a也可以是所述计算机设备13的外部存储设备,例如该计算机设备13上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器13a还可以既包括所述计算机设备13的内部存储单元也包括其外部存储设备。本实施例中,所述存储器13a通常用于存储安装于所述计算机设备13的操作***和各类应用软件,例如基于代价敏感宽度学习的软件缺陷预测方法及处理装置的程序代码等。此外,所述存储器13a还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器13b在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器13b通常用于控制所述计算机设备13的总体操作。本实施例中,所述处理器13b用于运行所述存储器13a中存储的程序代码或者处理数据,例如运行所述基于代价敏感宽度学习的软件缺陷预测方法及处理装置的程序代码。
所述网络接口13c可包括无线网络接口或有线网络接口,该网络接口13c通常用于在所述计算机设备13与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有基于代价敏感宽度学习的软件缺陷预测方法及处理装置的程序,所述基于代价敏感宽度学习的软件缺陷预测方法及处理装置可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于代价敏感宽度学习的软件缺陷预测方法及处理装置的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (6)
1.一种基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,包括:
步骤S1,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
步骤S2,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
步骤S3,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;
步骤S4,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;
步骤S5,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;
步骤S6,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;
步骤S7,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;
步骤S8,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果;
所述步骤S5将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列,具体表现为:
脉冲响应神经元模型当中的神经元输入是沿着突触向神经元进行传输的脉冲序列,所有的脉冲在到达神经元之后都会在其内部完成突触后电位的产生,这部分突触后电位在相应的突触权值影响下的总和就是膜电位值的重要组成部分;
神经元有N个输入突触,第i个突触有Gi个脉冲输入,这些脉冲输入到达神经元的时间集合记为 表示突触i的第g个脉冲的发放时间,神经元在时间t的膜电位V(t)可以表示为:
其中,wi是神经元第i个输入突触的权值,tf表示第f个脉冲的发放时间,不应期函数ρ表示膜电位的复位过程,脉冲响应函数ε表示脉冲对突触后神经元膜电位的响应,t表示任意一个假定时间;
所述步骤S7中的将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,具体表现为:
给定一个训练集{X,Y},以及Mi个特征节点;特征映射层中第i个特征节点Zi可以表示为:
Zi=φi(XWi+bi),i=1,2,...,p
其中权重Wi和偏差项bi是具有合适维数的随机矩阵,X为输入的数据,φi为所选激活函数;对于特征节点组的表示,可以将Zp=(Z1,Z2,...,Zp)作为特征映射层的特征节点组,并将Zp进一步连接到增强节点组在增强层,Zp需要经历一个变换;激活方式采用非线性激活,第j个增强节点的输出可以表示为:
其中Hj表示增强层的非线性激活输出,它从特征节点组集合Zp并通过激活函数εj的非线性变换得到的;权重Wj和偏差项bj是具有合适维数的随机矩阵;接着,增强层的激活输出可进一步表示为
为了保证训练时数据的稀疏性,引入岭回归算法来微调特征映射层和增强层的权重,最终,代价敏感宽度学习软件缺陷预测模型的输出采用以下形式:
Y=(Z1,Z2,...,Zp,H1,H2,...,Hq)Wq
=(Zp,Hq)Wq
其中Zp为特征节点,Hq为增强节点,Wq为权重;Zp为特征节点组,Hq为增强节点组。
2.根据权利要求1的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S2中的采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,具体表现为:
采用代价敏感学习算法对所述软件缺陷预测数据集中的有缺陷实例和无缺陷实例分配不一样的误分类代价,添加代价敏感矩阵,给予软件缺陷预测数据集中无缺陷实例与有缺陷实例不同的误分类惩罚力度,使用“0”和“1”分别指代无缺陷实例与有缺陷实例;
Cij表示将第i类实例分类为第j类的分类代价,Cij值越大,表明错误分类所带来的损失越大;错误分类的损失代价大于正确分类的损失代价,由于正确的分类是不会带来损失的,所以C00=C11=0,各个分类代价之间存在着如下的大小关系:C10>C01>C00=C11=0,其中,C00为实际无缺陷、预测无缺陷,C11为实际有缺陷、预测有缺陷,C10为实际有缺陷、预测无缺陷,C01为实际无缺陷、预测有缺陷。
3.根据权利要求2的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S3中的对所述第一数据集进行归一化预处理,采用z-score对所述第一数据集进行归一化预处理。
4.基于代价敏感宽度学习的软件缺陷预测处理装置,用于实现权利要求1-3的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述处理装置包括:软件缺陷预测数据集获取模块,软件缺陷预测数据集划分模块,归一化处理模块,输入脉冲序列获取模块,输出脉冲序列获取模块,输出脉冲序列反向解码模块,代价敏感宽度学习软件缺陷预测模型训练模块,代价敏感宽度学习软件缺陷预测模型;
软件缺陷预测数据集获取模块,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;
软件缺陷预测数据集划分模块,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;
归一化处理模块,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;
输入脉冲序列获取模块,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;
输出脉冲序列获取模块,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;
输出脉冲序列反向解码模块,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;
代价敏感宽度学习软件缺陷预测模型训练模块,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;
代价敏感宽度学习软件缺陷预测模型,将待预测数据集经过步骤S2-S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果;
所述输出脉冲序列获取模块中的将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列,具体表现为:
脉冲响应神经元模型当中的神经元输入是沿着突触向神经元进行传输的脉冲序列,所有的脉冲在到达神经元之后都会在其内部完成突触后电位的产生,这部分突触后电位在相应的突触权值影响下的总和就是膜电位值的重要组成部分;
神经元有N个输入突触,第i个突触有Gi个脉冲输入,这些脉冲输入到达神经元的时间集合记为 表示突触i的第g个脉冲的发放时间,神经元在时间t的膜电位V(t)可以表示为:
其中,wi是神经元第i个输入突触的权值,tf表示第f个脉冲的发放时间,不应期函数ρ表示膜电位的复位过程,脉冲响应函数ε表示脉冲对突触后神经元膜电位的响应,t表示任意一个假定时间;
所述代价敏感宽度学习软件缺陷预测模型训练模块中的将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,具体表现为:
给定一个训练集{X,Y},以及Mi个特征节点;特征映射层中第i个特征节点Zi可以表示为:
Zi=φi(XWi+bi),i=1,2,...,p
其中权重Wi和偏差项bi是具有合适维数的随机矩阵,X为输入的数据,φi为所选激活函数;对于特征节点组的表示,可以将Zp=(Z1,Z2,...,Zp)作为特征映射层的特征节点组,并将Zp进一步连接到增强节点组在增强层,Zp需要经历一个变换;激活方式采用非线性激活,第j个增强节点的输出可以表示为:
其中Hj表示增强层的非线性激活输出,它从特征节点组集合Zp并通过激活函数εj的非线性变换得到的;权重Wj和偏差项bj是具有合适维数的随机矩阵;接着,增强层的激活输出可进一步表示为
为了保证训练时数据的稀疏性,引入岭回归算法来微调特征映射层和增强层的权重,最终,代价敏感宽度学习软件缺陷预测模型的输出采用以下形式:
Y=(Z1,Z2,...,Zp,H1,H2,...,Hq)Wq
=(Zp,Hq)Wq
其中Zp为特征节点,Hq为增强节点,Wq为权重;Zp为特征节点组,Hq为增强节点组。
5.一种电子设备,其特征在于,包括:
一个或多个处理器、存储器,以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行如权利要求1至3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310502274.XA CN116662160B (zh) | 2023-05-06 | 2023-05-06 | 基于代价敏感宽度学习的软件缺陷预测方法及处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310502274.XA CN116662160B (zh) | 2023-05-06 | 2023-05-06 | 基于代价敏感宽度学习的软件缺陷预测方法及处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662160A CN116662160A (zh) | 2023-08-29 |
CN116662160B true CN116662160B (zh) | 2024-07-02 |
Family
ID=87714380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310502274.XA Active CN116662160B (zh) | 2023-05-06 | 2023-05-06 | 基于代价敏感宽度学习的软件缺陷预测方法及处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662160B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356641A (zh) * | 2022-03-04 | 2022-04-15 | 中南大学 | 一种增量式的软件缺陷预测方法、***、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929268B2 (en) * | 2018-09-26 | 2021-02-23 | Accenture Global Solutions Limited | Learning based metrics prediction for software development |
-
2023
- 2023-05-06 CN CN202310502274.XA patent/CN116662160B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356641A (zh) * | 2022-03-04 | 2022-04-15 | 中南大学 | 一种增量式的软件缺陷预测方法、***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116662160A (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Fast economic dispatch in smart grids using deep learning: An active constraint screening approach | |
CN106095942B (zh) | 强变量提取方法及装置 | |
CN112863683B (zh) | 基于人工智能的病历质控方法、装置、计算机设备及存储介质 | |
CN115618269B (zh) | 基于工业传感器生产的大数据分析方法及*** | |
CN113505537A (zh) | 楼宇能耗检测方法、装置、计算机设备和存储介质 | |
CN110232128A (zh) | 题目文本分类方法及装置 | |
CN117093477A (zh) | 一种软件质量评估方法、装置、计算机设备及存储介质 | |
CN113239702A (zh) | 意图识别方法、装置、电子设备 | |
CN113807728A (zh) | 基于神经网络的绩效考核方法、装置、设备及存储介质 | |
CN116703466A (zh) | 基于改进灰狼算法的***访问量预测方法及其相关设备 | |
CN117234844A (zh) | 云服务器异常管理方法、装置、计算机设备及存储介质 | |
CN116662160B (zh) | 基于代价敏感宽度学习的软件缺陷预测方法及处理装置 | |
CN116777646A (zh) | 基于人工智能的风险识别方法、装置、设备及存储介质 | |
CN116843395A (zh) | 一种业务***的告警分级方法、装置、设备及存储介质 | |
CN116089605A (zh) | 基于迁移学习和改进词袋模型的文本情感分析方法 | |
CN113010687B (zh) | 一种习题标签预测方法、装置、存储介质以及计算机设备 | |
CN116562952A (zh) | 虚假交易订单检测方法及装置 | |
CN113627514A (zh) | 知识图谱的数据处理方法、装置、电子设备和存储介质 | |
CN111242449A (zh) | 一种企业情报流失预测方法 | |
CN116541766B (zh) | 脑电数据修复模型的训练方法、脑电数据修复方法及装置 | |
CN116340864B (zh) | 一种模型漂移检测方法、装置、设备及其存储介质 | |
CN117056782A (zh) | 一种数据异常识别方法、装置、设备及其存储介质 | |
CN116167872A (zh) | 异常医疗数据检测方法、装置及设备 | |
CN117609013A (zh) | 基于模糊加权宽度学习的软件缺陷预测方法及装置 | |
CN116866202A (zh) | 网络流量预测方法和装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |