CN109446090A - 基于深度神经网络和概率决策森林的软件缺陷预测模型 - Google Patents
基于深度神经网络和概率决策森林的软件缺陷预测模型 Download PDFInfo
- Publication number
- CN109446090A CN109446090A CN201811282618.6A CN201811282618A CN109446090A CN 109446090 A CN109446090 A CN 109446090A CN 201811282618 A CN201811282618 A CN 201811282618A CN 109446090 A CN109446090 A CN 109446090A
- Authority
- CN
- China
- Prior art keywords
- neural network
- deep neural
- prediction
- decision
- forest
- 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.)
- Pending
Links
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/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于深度神经网络和概率决策森林的静态软件缺陷预测模型。该模型使用概率决策森林为分类器,将深度神经网络的特征学习和概率决策森林相结合进行端到端训练,并提出一套完整、全局的端到端参数优化方法。该模型首先从软件的代码修改中提取传统特征并使用深度神经网络进行高维映射,然后改进了随机森林,提出概率决策森林,并使用概率决策森林进行分类。将概率决策森林中决策树的分裂节点与深度神经网络的输出节点直接相连,使分裂节点由深度神经网络自动学习得到,因此可以使网络的特征学习过程受分类结果所约束。最后,使用集成学习将上述模型集成,并进行缺陷预测。使用该模型可以有效的提高对代码修改进行缺陷预测的准确率。
Description
技术领域
本发明属于静态软件缺陷预测的技术领域,具体涉及一种基于深度神经网络和概率决策森林的软件缺陷预测模型。
背景技术
软件缺陷是指开发人员在进行软件开发过程中,由于开发经验不足、编程失误或者开发过程不合理等原因,而造成的软件中包含许多没有被开发人员发现的缺陷。软件缺陷严重影响了软件质量,包含缺陷的软件在运行过程中可能会产生未知的错误而影响软件的使用,严重时可能会导致软件崩溃或用户信息泄露等问题,从而给企业和用户造成重大的损失。由于软件缺陷的种种危害,进行必要的软件缺陷修复工作迫在眉睫。然而,繁琐的代码审查和调试工作会浪费大量的人力和物力,进而导致软件成本增加、开发周期延长等问题。因此尽早的识别出软件中可能包含的种种缺陷来保证软件质量,在软件开发和维护过程中扮演着重要角色。
软件缺陷预测是进行缺陷识别的一个重要的手段。缺陷预测方法主要有静态缺陷预测和动态缺陷预测,其中,静态缺陷预测具有高效性和及时性等优点,是目前常用的一种手段。静态软件缺陷预测主要是指利用软件开发过程中的历史数据以及现已发现的缺陷,借助机器学习等方法预测软件中是否包含缺陷、缺陷数量或缺陷类型等。静态软件缺陷预测在软件工程领域具有重要意义,有助于产生高质量软件并帮助开发人员节省代码审查时间。
传统的静态缺陷预测模型是基于程序模块的,即预测程序中一个文件、包、类或函数中是否包含缺陷,并根据预测结果将该程序模块标记为有缺陷或无缺陷。这种静态缺陷预测存在许多不足。首先,它无法细粒度的定位缺陷,当预测模型预测出某一程序模块中包含缺陷时,开发人员仍然需要花费大量时间和精力去审查和调试该模块以发现缺陷在模块中的具体位置。其次,一个大型的软件系统往往是由很多开发人员经过多次修改共同完成的,当发现某一程序模块含有缺陷时,无法准确的识别出引入该缺陷的开发人员,从而使代码修复工作变得更加困难。
为克服传统的静态缺陷预测的不足,Audris Mockus等在“Predicting risk ofsoftware changes”一文中首次提出了代码修改缺陷预测的概念,Audris Mockus等根据一系列手动提取的代码修改特征,通过机器学习的方法预测每一次提交的代码修改中是否包含缺陷。其中,代码修改是指软件在开发和维护过程中,由于功能改进、提高性能或版本更新等原因,需要对原有软件进行不断的修改,每次修改后所提交的一系列的代码修改。然而,一些代码修改提交后会使修改后的程序产生缺陷,因此在每次代码修改提交后对所提交的修改进行预测,识别这次代码修改是否包含缺陷。这种代码修改缺陷预测可以及时定位缺陷位置并由相应的开发人员进行修改。Yasutaka Kamei等在“A large-scaleempirical study of just-in-time quality assurance”中首次将代码修改缺陷预测命名为Just-in-time质量保证,并提出了有监督学习模型EALR进行缺陷预测。此后,基于所设计的代码修改特征,越来越多的研究使用机器学习(包括有监督学习和无监督学习)的方法进行缺陷预测,并不断提高预测性能。例如,Yibiao Yang等在“Effort-Aware Just-in-Time Defect Prediction:Simple Unsupervised Models Could Be Better ThanSupervised Models”中首次使用无监督学习的方法进行代码修改缺陷预测,并得出“简单的无监督模型在预测性能上优于有监督模型”的结论。Wei Fu等在“RevisitingUnsupervised Learning for Defect Prediction”中深入分析了Yibiao Yang等人的实验及结果,指出在很多情况下,无监督模型的预测性能远不如有监督模型,并在Yibiao Yang等的无监督模型的基础上设计了有监督模型OneWay,且有效提升了预测性能。Qiao Huang等在“Supervised vs Unsupervised Models:A Holistic Look at Effort-Aware Just-in-Time Defect Prediction”中系统的比较了无监督模型和有监督模型的预测性能,指出最好的无监督模型LT的预测性能不及有监督模型EALR,并提出了有监督模型CBS进一步提高了预测性能。Xinli Yang等在“TLEL:A two-layer ensemble learning approach forjust-in-time defect prediction”中使用了集成学习的方法建立了预测模型TLEL,并取得了较好的预测性能。为了进一步提高预测性能,越来越多的预测模型不断被提出。在这些缺陷预测模型中,最常用的是基于机器学习(Machine Learning,ML)的方法。机器学习方法指建立一个模型,使其能从大量的历史数据中学习到相关的规律和逻辑,然后利用学习出来的规律和逻辑来预测未知事物。例如,当进行代码修改缺陷预测是,利用大量已知的有缺陷和无缺陷的代码修改,分别学习出有缺陷和无缺陷代码修改的规律和逻辑,根据学习出来的规律和逻辑,预测未知的代码修改中是否含有缺陷。当预测代码修改中是否包含缺陷时,采用的是机器学习中的分类方法,如逻辑回归、决策树等。然而,已经提出的基于机器学习的方法均没有实现端到端的联合训练,从而导致预测性能提升有限。
发明内容
本发明的目的是解决缺陷预测中预测性能不足的问题,设计了一个代码修改缺陷预测的模型,提出了一种基于深度神经网络和概率决策森林的软件缺陷预测模型。
该模型首先从软件代码修改中提取传统特征并使用深度神经网络学习出传统特征的高维特征表示,然后使用概率决策森林进行分类,其中概率决策森林中决策树的分裂节点的参数是由上述深度神经网络直接学习到的,即将深度神经网络的输出节点直接和概率决策森林中的分裂节点相连接,从而实现将概率决策森林的分类过程和深度神经网络的特征学习过程相结合进行端到端的训练,实现完整的、联合的、全局的深度学习参数优化,最后使用集成学习的思想将上述模型进行集成,并进行最终的缺陷预测。预测过程是将一系列软件代码修改输入到模型,模型将这些代码修改分成有缺陷的修改和无缺陷的修改两类。
本发明提供的基于深度神经网络和概率决策森林的软件缺陷预测模型包括以下步骤:
步骤1、从软件代码修改中提取一系列人工设计的可用来区分有缺陷修改和无缺陷修改的传统特征;
步骤2、使用深度神经网络对所提取的传统特征进行高维映射,学习出传统特征的高维特征表达;
步骤3、设计一个概率决策森林并作为分类器,并将概率决策森林和深度神经网络的特征学习相结合得到预测模型,对该预测模型进行端到端的训练,进行完整的、联合的、全局的深度学习参数优化。该预测模型可以将深度神经网络学习到的特征输入到概率决策森林中实现分类(分为有缺陷和无缺陷两类),同时,通过分类性能来限制深度神经网络的学习过程,从而使深度神经网络学习出使得分类性能最优的高维特征,因此可以最大限度的提高预测性能;
步骤4、使用集成学习的思想将步骤3中的预测模型进行集成,并进行最终的缺陷预测。
预测过程是将一系列软件代码修改的特征输入到预测模型,预测模型将这些代码修改预测为有缺陷的修改和无缺陷的修改两类。
本发明的具体设计实现方法如下:
第1、步骤1中所述传统特征的提取方法是:
首先,从软件分析版本控制系统中提取所有的代码修改;然后分析修改日志,从所有的代码修改中提取出修复缺陷的代码修改,并使用Sliwerski等人提出的SZZ算法,从修复缺陷的代码修改处开始逐渐向之前的修改回溯,最后识别出有缺陷的代码修改和无缺陷的代码修改两类;然后,深入分析有缺陷和无缺陷的代码修改的源代码、代码修改日志、开发人员等信息,总结出61种代码修改相关的特征;最后,使用特征选择的方法,选择出与区分有缺陷修改和无缺陷代码修改最相关的特征,即形成传统特征。
从软件代码修改中提取一系列传统特征并使用深度神经网络对传统特征进行高维映射
本发明首先从软件代码修改中提取一系列可区分有缺陷修改和无缺陷修改的传统特征,然后使用深度神经网络对传统特征进行高维映射,学习出传统特征的特征表示。
第2、步骤2中所述学习出传统特征的高维特征表达的具体方法是:
用深度神经网络对传统特征进行高维映射。其中,深度学习是机器学习中一个重要的分支,而深度神经网络是深度学习的基础。深度神经网络由输入层、多个隐藏层和输出层组成,其中层与层之间是全连接的,即第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。将传统特征作为输入传入到深度神经网络中,然后经过多个隐藏层后,可得到一组新的高维特征。
第3、步骤3中所述使用概率决策森林做分类器并实现端到端训练的方法是:
当需要对一个代码修改进行分类时,只需要对这个代码修改所对应的特征向量x∈X(X为输入特征空间)分类为y∈Y(Y为输出类别空间)即可。传统的随机森林是由标准的决策树集成的,而一棵标准的决策树是由决策节点(即分裂节点)集合D和预测节点(即叶子节点)集合T构成,此时任意分裂节点d∈D是二值的,即它决定了x经过该节点以后向左子树还是右子树路由,并且这种决策是固定不变的,直到x到达某个叶子节点t∈T为止。与传统随机森林不同,本发明中的预测模型使用了概率决策森林作为最终的分类器。在概率决策森林中,当x到达某一分裂节点d∈D后,继续向左子树或者右子树路由的概率服从伯努利分布,以决策函数φd(x|θ)(θ为需要被学习的网络参数,即网络权重)表示x向左子树路由的概率,则(1-φd(x|θ))为向右子树路由的概率。概率树的叶子节点为一个概率分布ρty,因此最终的分类结果概率为x到达某个叶子节点概率与某个叶子节点中某个类别的概率的乘积,即:
其中,为x到达某一叶子节点的概率(1[·]为判断函数,即条件成立则为1,条件不成立则为0。dl和dr分别代表左子树节点集和右子树节点集),则:
此时,∑yρty=1且
传统的随机森林中,决策函数φd(x|θ)是由某一算法(例如CART算法、ID3算法等)固定得到的,而我们则是使用深度神经网络自动学习得到的。本预测模型中,直接将深度神经网络的输出节点(即上述第2中从传统特征中学习到的高维特征表达)与概率决策森林的分裂节点相连接,这样即可实现决策函数直接由深度神经网络学习得到。其中,决策函数φd(x|θ)的计算公式为:
φd(x|θ)=σ(fd(x;θ))
其中,为sigmoid函数,fd(x;θ)为神经网络的输出值(θ为需要被学习的网络参数,即网络权重)。另外,叶子节点的概率分布ρty同样需要被学习。通过这种方式,即可以将深度神经网络和概率决策森林相结合进行端到端的学习。
综上所述,预测模型中需要训练的参数有两个:分裂节点的分裂参数θ和叶子节点的概率分布ρ。为学习到两个参数的最优值,需定义一个损失函数,并且训练的目标就是使此损失函数的值最小,本预测模型中定义的全局的损失函数为:
L(θ,ρ;x,y)=-logPF(y|x,θ,ρ)。
预测模型示意图如附图2所示,其中模型更新过程为:
(1)为计算θ和ρ,本发明中使用交替迭代更新的方法,首先固定ρ,学习θ。设训练样本集为给定训练集的任意子集B(如一批数据),则基于一批B的损失为:
使用的是随机梯度下降(SGD)的方法更新θ,更新的函数为:
其中,θ(h)是指θ在h时刻的值,α为网络学习率。通过这个公式,预测模型使用反向传播的方法逐步更新参数θ。
(2)然后固定θ,更新ρ。更新过程为:
其中,是一正则化项,并确保且初始值
与更新θ(使用一批数据)不同的是,使用所有的训练集来更新ρ,而不是一批数据。通过这种交替迭代的更新方式,目标函数是收敛的。训练算法如附图3所示。
第4、步骤4中所述使用集成学习的思想将步骤3中的预测模型进行集成并进行缺陷预测的方法是:
集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习模型来完成学习任务,其中的单个模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。本发明中,使用集成方式bootstrap aggregation(bagging)进行集成。bagging方法又称自助聚集,具体是指将原始数据集进行N次随机采样,得到N个子数据集,使用这N个子数据集训练得到N个弱分类器,然后使用弱分类器进行投票,结合成一个强分类器。
本发明中将训练得到的预测模型使用bagging进行集合,得到集合后的具有高预测性能的预测模型,并使用该预测模型进行缺陷预测。预测过程是,将一系列软件代码修改输入到预测模型,预测模型将这些代码修改分成有缺陷的修改和无缺陷的修改两类。集成算法如附图4所示。
本发明的优点和积极效果:
本发明提出一种基于深度神经网络和概率决策森林的软件缺陷预测模型,该预测模型以机器学习相关理论为基础,基于深度神经网络和概率决策森林设计了一个软件缺陷预测模型。该预测模型首次将深度神经网络和概率决策森林相结合进行端到端的训练来进行代码修改软件缺陷预测,并使用集成学习的思想将该预测模型进行集合,集合后的预测模型性能更高。使用集合后的预测模型可以有效的提高代码修改缺陷预测的准确率,可有助于产生高质量软件并帮助开发人员节省代码审计和调试时间,在软件开发和维护中起重要作用。
附图说明
图1为预测模型整体框架图;
图2为深度神经网络和概率决策森林相结合进行端到端训练模型示意图;
图3为训练模型的算法图;
图4为集成模型的算法图;
图5为六个数据集的详细信息图。
具体实施方式
现结合实施例对本发明方法进一步详细说明。
本发明提供了一种基于深度神经网络和概率决策森林的缺陷预测模型,其中附图1即表示该预测模型使用深度神经网络和概率决策森林进行缺陷预测的整体框架结构。
第1、从软件代码修改中提取一系列人工设计的可用来区分有缺陷修改和无缺陷修改的传统特征;
首先,本发明所提取的传统特征主要有14个,具体特征及特征描述如表1所示。这14个特征可以分成五类,分别是代码修改的分散度、代码修改的规模、代码修改的目的、代码修改的历史和开发人员经验。代码修改的分散度作为特征的依据是:一次修改所涉及的修改范围越大,该修改越有可能包含缺陷;代码修改的规模作为特征的依据是:一次修改所涉及的代码行数等规模越大,该修改越有可能包含缺陷;代码修改的目的作为特征的依据是:若此次修改的目的是修复某已存在的缺陷,则该修改再次引入新缺陷的概率越高;修改历史作为特征的依据是:一次修改所涉及的文件的修改历史越复杂,该修改越有可能包含缺陷;开发人员经验作为特征的依据是:一次修改的相关的开发人员的开发经验越少,该修改越有可能包含缺陷。
表1 14个传统特征及其描述
第2、使用深度神经网络对所提取的传统特征进行高维映射,学习出传统特征的高维特征表达;
将提取的14维传统特征输入到深度神经网络中学习出传统特征的高维表达。本发明中,深度神经网络包含四层网络,分别是输入层、两个隐藏层和输出层。其中,输入层包含14个神经元,分别代表14维传统特征,两个隐藏层分别包含1024和2048个神经元,输出层包含2048个神经元,层与层之间采用全连接的方式,即输入层的任意一个神经元一定与隐藏层的任意一个神经元相连,隐藏层的任意一个神经元一定与输出层的任意一个神经元相连。
步骤3、设计一个概率决策森林并作为分类器,并将概率决策森林和深度神经网络的特征学习相结合得到预测模型,对该预测模型进行端到端的训练,进行完整的、联合的、全局的深度学习参数优化;
本发明中,概率决策森林中共集成5棵决策树,每棵决策树的深度是5。
为评估缺陷预测模型(命名为NRF)和集成后的预测模型(命名为E-NRF)的预测性能,本发明在Bugzilla、Columa、Eclipse、Platform、Mozilla和PostgreSQL六个数据集上进行评测,这六个数据集均是目前使用范围广泛的大型软件系统,其描述信息如附图5所示。由附图5可以看出,六个数据集均是不均衡的,即无缺陷的代码修改的数目远大于有缺陷的代码修改的数量。为解决数据不均衡的问题,本发明采用随机下采样的方法。随机下采样算法会随机删除部分无缺陷的代码修改,从而使有缺陷的代码修改的数量和无缺陷的代码修改数量大致相等,进而可以有效的解决数据不平衡问题。另外,由于14个特征的量纲差距较大,为了消除量纲的影响,本发明采用z-score标准化的方法。经过z-score标准化处理后,每一特征值的数据均符合标准正态分布,即均值为0,标准差为1。其中,z-score标准化的公式为:
公式中,fi代表某一特征值,mean(f)和std(f)分别代表特征值的均值和方差,zi代表特征值fi经过z-score标准化后的值。
为了有效的证明NRF和E-NRF的高性能,分别将NRF和E-NRF与目前预测性能较好的EALR、LT、OneWay和CBS四种方法进行比较,可以看出NRF和E-NRF在Recall、Precision、F1-score三个评估准则上均取得了最好的效果。其中,Recall代表召回率,Precision代表准确率,F1-score同时兼顾了Recall和Precision,其计算公式如下所示:
表2、表3和表4表示EALR、LT、OneWay和CBS四种方法以及NRF和E-NRF分别在三个评估准则Recall、Precision和F1-score四个性能指标上的取值(加黑数值是指在某数据集上该性能指标所对应的最高值)。可以看出,本发明中的预测模型NRF和集成后的预测模型E-NRF在所有数据集的所有指标上实现了总体最优。
表2 NRF、E-NRF和四个对比方法在Recall上的取值
Project | EALR | LT | OW | CBS | NRF | E-NRF |
BUG | 0.413 | 0.431 | 0.435 | 0.567 | 0.583 | 0.591 |
COL | 0.409 | 0.621 | 0.680 | 0.525 | 0.548 | 0.681 |
JDT | 0.222 | 0.576 | 0.576 | 0.543 | 0.604 | 0.676 |
MOZ | 0.144 | 0.365 | 0.365 | 0.445 | 0.632 | 0.628 |
PLA | 0.300 | 0.491 | 0.491 | 0.611 | 0.645 | 0.655 |
POS | 0.289 | 0.536 | 0.536 | 0.501 | 0.600 | 0.625 |
AVE | 0.296 | 0.503 | 0.514 | 0.532 | 0.602 | 0.643 |
表3 NRF、E-NRF和四个对比方法在Precision上的取值
Project | EALR | LT | OW | CBS | NRF | E-NRF |
BUG | 0.387 | 0.279 | 0.391 | 0.501 | 0.556 | 0.561 |
COL | 0.333 | 0.240 | 0.273 | 0.460 | 0.443 | 0.458 |
JDT | 0.166 | 0.115 | 0.115 | 0.239 | 0.248 | 0.239 |
MOZ | 0.052 | 0.033 | 0.033 | 0.109 | 0.130 | 0.126 |
PLA | 0.194 | 0.114 | 0.114 | 0.247 | 0.275 | 0.268 |
POS | 0.244 | 0.185 | 0.185 | 0.447 | 0.483 | 0.470 |
AVE | 0.229 | 0.161 | 0.161 | 0.334 | 0.362 | 0.354 |
表4 NRF、E-NRF和四个对比方法在F1-score上的取值
Project | EALR | LT | OW | CBS | NRF | E-NRF |
BUG | 0.396 | 0.338 | 0.408 | 0.532 | 0.568 | 0.575 |
COL | 0.344 | 0.344 | 0.387 | 0.490 | 0.490 | 0.547 |
JDT | 0.169 | 0.191 | 0.191 | 0.331 | 0.351 | 0.353 |
MOZ | 0.076 | 0.061 | 0.061 | 0.175 | 0.216 | 0.210 |
PLA | 0.223 | 0.185 | 0.185 | 0.352 | 0.385 | 0.381 |
POS | 0.258 | 0.274 | 0.274 | 0.472 | 0.534 | 0.536 |
AVE | 0.244 | 0.232 | 0.251 | 0.392 | 0.424 | 0.434 |
Claims (5)
1.一种基于深度神经网络和概率决策森林的软件缺陷预测模型,其特征在于含有以下步骤:
步骤1、从软件代码修改中提取用来区分有缺陷修改和无缺陷修改的传统特征;
步骤2、使用深度神经网络对所提取的传统特征进行高维映射,学习出传统特征的高维特征表达;
步骤3、设计一种概率决策森林作为分类器,并将此概率决策森林和深度神经网络的特征学习相结合得到预测模型,对该预测模型进行端到端的训练,进行完整的、联合的、全局的深度学习参数优化;该预测模型能够将深度神经网络学习到的特征输入到概率决策森林中实现分类,分为有缺陷和无缺陷两类,同时,通过分类性能来限制深度神经网络的学习过程,从而使深度神经网络学习出使得分类性能最优的高维特征,因此可以最大限度的提高预测性能;
步骤4、使用集成学习的思想将步骤3中的预测模型进行集成,并进行最终的缺陷预测。
2.根据权利要求1所述的一种基于深度神经网络和概率决策森林的软件缺陷预测模型,其特征在于:所述预测模型的预测过程是将一系列软件代码修改的特征输入到该预测模型,该预测模型将这些代码修改预测为有缺陷的修改和无缺陷的修改两类。
3.根据权利要求1所述的一种基于深度神经网络和概率决策森林的软件缺陷预测模型,其特征在于:步骤2中所述的高维特征表达比原始特征更有利于最终的预测性能;其中,深度神经网络使用的是四层全连接网络,即深度神经网络由输入层、两个隐藏层和输出层组成,其中层与层之间是全连接;将传统特征作为输入传入到深度神经网络中,然后经过两个隐藏层后,得到高维输出,即一组传统特征的高维特征表达。
4.根据权利要求1所述的一种基于深度神经网络和概率决策森林的软件缺陷预测模型,其特征在于:步骤3中所述使用概率决策森林做分类器并实现深度神经网络和概率决策森林的端到端训练中,提出了一套完整的、联合的、全局的深度学习参数优化方法,该方法是:
改进了传统的随机森林,提出了概率决策森林;即该预测模型中的概率决策森林中决策树的决策节点是一个路径计算函数,即每个样本最终落入到某一叶子结点的概率值;此外,概率决策树中的决策节点和深度神经网络的输出是一一对应的,因此其决策节点并不是由某一算法固定得到的,而是使用神经网络自动学习得到的;由神经网络学习到的特征即为决策树中的相应的决策节点,为实现深度神经网络和概率决策森林的端到端训练,本发明设计了一个全局损失函数,并且训练的目标就是使此损失函数的值最小,这样就能够学习出使得分类性能最优的高维特征从而提高最终的分类性能。
5.根据权利要求1所述的一种基于深度神经网络和概率决策森林的软件缺陷预测模型,其特征在于:步骤4中所述使用集成学习的思想将步骤3中的预测模型进行集成并进行缺陷预测的方法是:集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习模型来完成学习任务,其中的单个模型能够单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测;本发明中,使用集成方式bootstrapaggregation(bagging)进行集成;bagging方法又称自助聚集,具体是指将原始数据集进行N次随机采样,得到N个子数据集,使用这N个子数据集训练得到N个弱分类器,然后使用弱分类器进行投票,结合成一个强分类器;并使用该预测模型进行缺陷预测;预测过程是,将一系列软件代码修改输入到预测模型,预测模型将这些代码修改分成有缺陷的修改和无缺陷的修改两类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811282618.6A CN109446090A (zh) | 2018-10-31 | 2018-10-31 | 基于深度神经网络和概率决策森林的软件缺陷预测模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811282618.6A CN109446090A (zh) | 2018-10-31 | 2018-10-31 | 基于深度神经网络和概率决策森林的软件缺陷预测模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109446090A true CN109446090A (zh) | 2019-03-08 |
Family
ID=65550404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811282618.6A Pending CN109446090A (zh) | 2018-10-31 | 2018-10-31 | 基于深度神经网络和概率决策森林的软件缺陷预测模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446090A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885503A (zh) * | 2019-03-12 | 2019-06-14 | 深圳微品致远信息科技有限公司 | 一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质 |
CN109977028A (zh) * | 2019-04-08 | 2019-07-05 | 燕山大学 | 一种基于遗传算法和随机森林的软件缺陷预测方法 |
CN111078544A (zh) * | 2019-12-04 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 一种软件缺陷预测方法、装置、设备及存储介质 |
CN111523647A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 网络模型训练方法及装置、特征选择模型、方法及装置 |
CN111832230A (zh) * | 2020-07-20 | 2020-10-27 | 南京信大气象科学技术研究院有限公司 | 基于相关性分析和数据均衡的能见度分层预测模型 |
WO2020233021A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 基于智能决策的测试结果分析方法及相关装置 |
CN112183749A (zh) * | 2020-10-26 | 2021-01-05 | 天津大学 | 基于有导向模型变异的深度学习库测试方法 |
CN112765034A (zh) * | 2021-01-26 | 2021-05-07 | 四川航天系统工程研究所 | 基于神经网络的软件缺陷预测方法 |
CN113411205A (zh) * | 2021-05-18 | 2021-09-17 | 郑州埃文计算机科技有限公司 | 一种基于决策树的ip应用场景划分方法 |
CN114490163A (zh) * | 2022-03-28 | 2022-05-13 | 北京天维信通科技有限公司 | 一种故障自愈方法、装置及电子设备 |
CN114820039A (zh) * | 2022-04-01 | 2022-07-29 | 上海维智卓新信息科技有限公司 | 商业门店选址方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679191A (zh) * | 2013-09-04 | 2014-03-26 | 西交利物浦大学 | 基于静态图片的自动套牌车检测方法 |
US20150254832A1 (en) * | 2014-03-06 | 2015-09-10 | Kla-Tencor Corporation | Composite Defect Classifier |
CN107943704A (zh) * | 2017-12-04 | 2018-04-20 | 扬州大学 | 一种基于深度森林网络的软件缺陷预测方法 |
CN108491766A (zh) * | 2018-03-05 | 2018-09-04 | 中山大学 | 一种端到端的基于深度决策森林的人群计数方法 |
CN108647138A (zh) * | 2018-02-27 | 2018-10-12 | 中国电子科技集团公司电子科学研究院 | 一种软件缺陷预测方法、装置、存储介质及电子设备 |
-
2018
- 2018-10-31 CN CN201811282618.6A patent/CN109446090A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679191A (zh) * | 2013-09-04 | 2014-03-26 | 西交利物浦大学 | 基于静态图片的自动套牌车检测方法 |
US20150254832A1 (en) * | 2014-03-06 | 2015-09-10 | Kla-Tencor Corporation | Composite Defect Classifier |
CN107943704A (zh) * | 2017-12-04 | 2018-04-20 | 扬州大学 | 一种基于深度森林网络的软件缺陷预测方法 |
CN108647138A (zh) * | 2018-02-27 | 2018-10-12 | 中国电子科技集团公司电子科学研究院 | 一种软件缺陷预测方法、装置、存储介质及电子设备 |
CN108491766A (zh) * | 2018-03-05 | 2018-09-04 | 中山大学 | 一种端到端的基于深度决策森林的人群计数方法 |
Non-Patent Citations (4)
Title |
---|
PETER KONTSCHIEDER ET AL.: ""Deep Neural Decision Forests"", 《2015 IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION》 * |
SHUO WANG ET AL.: ""Using Class Imbalance Learning for Software Defect Prediction"", 《IEEE TRANSACTIONS ON RELIABILITY》 * |
XINLI YANG ET AL.: ""Deep Learning for Just-In-Time Defect Prediction"", 《2015 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY》 * |
YUN ZHANG ET AL.: ""Combined classifer for cross-project defect prediction: an extended empirical study"", 《FRONTIERS OF COMPUTER SCIENCE》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885503A (zh) * | 2019-03-12 | 2019-06-14 | 深圳微品致远信息科技有限公司 | 一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质 |
CN109977028A (zh) * | 2019-04-08 | 2019-07-05 | 燕山大学 | 一种基于遗传算法和随机森林的软件缺陷预测方法 |
WO2020233021A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 基于智能决策的测试结果分析方法及相关装置 |
CN111078544A (zh) * | 2019-12-04 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 一种软件缺陷预测方法、装置、设备及存储介质 |
CN111078544B (zh) * | 2019-12-04 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 一种软件缺陷预测方法、装置、设备及存储介质 |
CN111523647A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 网络模型训练方法及装置、特征选择模型、方法及装置 |
CN111523647B (zh) * | 2020-04-26 | 2023-11-14 | 南开大学 | 网络模型训练方法及装置、特征选择模型、方法及装置 |
CN111832230A (zh) * | 2020-07-20 | 2020-10-27 | 南京信大气象科学技术研究院有限公司 | 基于相关性分析和数据均衡的能见度分层预测模型 |
CN112183749B (zh) * | 2020-10-26 | 2023-04-18 | 天津大学 | 基于有导向模型变异的深度学习库测试方法 |
CN112183749A (zh) * | 2020-10-26 | 2021-01-05 | 天津大学 | 基于有导向模型变异的深度学习库测试方法 |
CN112765034A (zh) * | 2021-01-26 | 2021-05-07 | 四川航天系统工程研究所 | 基于神经网络的软件缺陷预测方法 |
CN112765034B (zh) * | 2021-01-26 | 2023-11-24 | 四川航天系统工程研究所 | 基于神经网络的软件缺陷预测方法 |
CN113411205A (zh) * | 2021-05-18 | 2021-09-17 | 郑州埃文计算机科技有限公司 | 一种基于决策树的ip应用场景划分方法 |
CN113411205B (zh) * | 2021-05-18 | 2023-02-28 | 郑州埃文计算机科技有限公司 | 一种基于决策树的ip应用场景划分方法 |
CN114490163B (zh) * | 2022-03-28 | 2022-08-05 | 北京天维信通科技有限公司 | 一种故障自愈方法、装置及电子设备 |
CN114490163A (zh) * | 2022-03-28 | 2022-05-13 | 北京天维信通科技有限公司 | 一种故障自愈方法、装置及电子设备 |
CN114820039A (zh) * | 2022-04-01 | 2022-07-29 | 上海维智卓新信息科技有限公司 | 商业门店选址方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446090A (zh) | 基于深度神经网络和概率决策森林的软件缺陷预测模型 | |
Deng et al. | Differential evolution algorithm with wavelet basis function and optimal mutation strategy for complex optimization problem | |
Salmeron et al. | Learning fuzzy cognitive maps with modified asexual reproduction optimisation algorithm | |
CN113990495B (zh) | 一种基于图神经网络的疾病诊断预测系统 | |
CN105589806B (zh) | 一种基于SMOTE+Boosting算法的软件缺陷倾向预测方法 | |
Stach et al. | A survey of fuzzy cognitive map learning methods | |
CN105653450A (zh) | 基于改进遗传算法与Adaboost结合的软件缺陷数据特征选择方法 | |
CN109242149A (zh) | 一种基于教育数据挖掘的学生成绩早期预警方法及系统 | |
CN109102107A (zh) | 一种基于物流仿真的多行车间设备布局方法 | |
CN105929690A (zh) | 一种基于分解多目标进化算法的柔性车间鲁棒调度方法 | |
CN104809476A (zh) | 一种基于分解的多目标进化模糊规则分类方法 | |
CN107944479A (zh) | 基于半监督学习的疾病预测模型建立方法及装置 | |
CN110399286A (zh) | 一种基于独立路径的测试数据自动生成方法 | |
CN110580213A (zh) | 一种基于循环标记时间点过程的数据库异常检测方法 | |
Zhang et al. | Water pipe failure prediction using AutoML | |
Shrimali et al. | Interpretive structural modeling of identified barriers to lean implementation in SMEs | |
Cai et al. | Training deep convolution network with synthetic data for architectural morphological prototype classification | |
Bui et al. | Application of Particle Swarm Optimization to Create Multiple-Choice Tests. | |
Müller et al. | An interactive explanatory AI system for industrial quality control | |
Khor | A data mining approach using machine learning algorithms for early detection of low-performing students | |
CN111651271B (zh) | 基于法律数据的多任务学习语义标注方法和装置 | |
Ozbey et al. | The determination and analysis of factors affecting to student learning by artificial intelligence in higher education | |
CN113743461B (zh) | 无人机集群健康度评估方法及装置 | |
CN109447498B (zh) | 一种轨道交通系统成本关联多域影响要素大数据驱动分析方法 | |
Islam et al. | An error-proof approach for decision making using DEMATEL |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190308 |