CN113378884B - 一种基于代价敏感与随机森林的软件缺陷预测方法 - Google Patents
一种基于代价敏感与随机森林的软件缺陷预测方法 Download PDFInfo
- Publication number
- CN113378884B CN113378884B CN202110525086.XA CN202110525086A CN113378884B CN 113378884 B CN113378884 B CN 113378884B CN 202110525086 A CN202110525086 A CN 202110525086A CN 113378884 B CN113378884 B CN 113378884B
- Authority
- CN
- China
- Prior art keywords
- data
- samples
- random forest
- cost
- traind
- 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 79
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000007637 random forest analysis Methods 0.000 title claims abstract description 49
- 230000035945 sensitivity Effects 0.000 title claims abstract description 35
- 238000003066 decision tree Methods 0.000 claims abstract description 49
- 238000005516 engineering process Methods 0.000 claims abstract description 14
- 238000012549 training Methods 0.000 claims description 24
- 238000012360 testing method Methods 0.000 claims description 20
- 230000002950 deficient Effects 0.000 claims description 18
- 238000012216 screening Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000008094 contradictory effect Effects 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 238000002474 experimental method Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (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
本发明公开了一种基于代价敏感与随机森林的软件缺陷预测方法,属于软件缺陷预测领域,在随机森林的基础上引入了代价敏感技术,在构建决策树的分类阶段以及形成的随机森林模型的投票分类阶段,分别引入根据不同对象定义的代价敏感因子,训练出基于代价敏感的改进随机森林模型,然后利用该模型对软件缺陷进行预测,输出预测类别。经实验验证,本发明方法的各项指标都优于传统的随机森林,并且与目前流行的LASSO‑SVM方法相比,该方法在保持较高精确率的同时,使召回率平均提高2.52%,较好的降低了误分类代价,软件缺陷预测的结果更准确。
Description
技术领域
本发明属于软件缺陷预测领域,具体涉及一种基于代价敏感与随机森林的软件缺陷预测方法。
背景技术
随着软件规模越来越庞大,内部逻辑越来越复杂,人工判断软件缺陷变得越来越困难。因此,软件缺陷预测技术变得越来越重要。软件缺陷预测技术指在软件项目开发过程中,根据预测粒度的不同,主要包括模块级、文件级以及变更级缺陷预测技术。本发明是针对模块级软件实体进行的缺陷预测技术研究。模块级软件缺陷预测技术是一种广泛用于软件测试过程中尽可能发现软件项目中缺陷模块的方法和帮助软件测试工程师发现软件项目中缺陷的有效手段,该技术利用现有的软件缺陷公开数据集,训练出缺陷预测模型,进而去预测软件中的模块是否存在缺陷。目前,该技术主要有基于机器学习、基于统计或者基于两者混合的方法。
在软件缺陷预测的环境中,有两种类型的错误。当分类模型将一个无缺陷模块预测为有缺陷模块时,就会发生Type I错误分类。同样的,当一个有缺陷的模块被错误地分类为无缺陷时,就会发生Type II错误分类。显然,Type II会导致更严重的预测错误,因为软件缺陷未被发现,使得软件在投入使用后带来更严重的损害。因此,我们认为Type II的代价是远高于Type I的代价。所以为了避免仅仅出现Type II的错误分类,可以适当提高TypeI的错误分类出现的频率,这种代价转换,在软件缺陷预测领域被认为是值得的,可以有效降低误分类的代价。
发展至今,模块级软件缺陷预测技术已经有了很多成熟的方法,比如基于ID3树的随机森林的软件缺陷预测方法、基于稀疏梯形矩阵的方法、基于代价敏感森林和投票的软件缺陷预测技术、基于LASSO-SVM的预测方法、基于远程度量学习的缺陷预测方法、基于聚类技术的软件缺陷预测方法等。这些方法大多以最小化误分类数量,提高对未知类别模块的预测精度为目标。然而,在软件缺陷预测中,误分类代价比误分类记录的数量更重要。
由于随机森林模型在处理高维数据、检测特征重要性、平衡数据间的误差以及正确率等方面具有很好的优势,使得该模型成为广泛使用的软件缺陷预测方法。但是,由于带标签的数据集少,并且数据集中,存在着严重的类不平衡问题,这使得该模型发生Type II错误分类的概率更高,从而产生了更高的分类代价。
发明内容
本发明提出了一种基于代价敏感与随机森林的软件缺陷预测方法,用以解决由于数据集中严重的类不平衡带来的Type II错误分类出现的高频率问题,使其能够在保持较高精确率的同时,最小化误分类代价。
本发明的技术方案如下:
一种基于代价敏感与随机森林的软件缺陷预测方法,在构建决策树的分类阶段以及形成的随机森林模型的投票分类阶段,分别引入根据不同对象定义的代价敏感因子,训练出基于代价敏感的改进随机森林模型cost-RF,然后利用该模型对软件缺陷进行预测。
优选地,训练cost-RF模型并进行软件缺陷预测的具体步骤如下:
S1.从NASA MDP获取公开的软件缺陷预测真实数据集Data进行数据预处理,产生预处理后的数据集Data′;
S2.根据Data′的大小,将其按照自定义比例随机划分为训练数据集TrainD和测试数据集TestD;
S3.利用Bagging技术,对训练数据集TrainD进行数据扰动,有放回的随机抽取训练数据集TrainD中的样本,将抽取的样本作为训练ID3决策树的训练集TrainD_train,剩下的样本则作为训练集中的测试集TrainD_test;
S4.引入属性扰动,在TrainD_train上进行属性扰动,生成属性扰动后的TrainD_trainM;
S5.使用TrainD_trainM,采用二元切分法,构建ID3决策树;
S6.在ID3决策树中,引入与Data′中不同类别数量相关的代价敏感因子Acost,判断每个样本是否是缺陷模块;
S7.设置最佳模型判别标值,利用TrainD_test筛选整体性能较优的ID3决策树;
S8.引入二次筛选ID3决策树的条件和森林中对ID3决策树的数量限制,构建随机森林;
S9.引入受限于随机森林中对样本预测结果不同的决策树数量和Data′中不同类别的样本数量的代价敏感因子Bcost,判断每个样本是否是缺陷模块;
S10.使用随机森林对TestD中的样本进行预测,判断每个样本是否是缺陷模块。
优选地,步骤S1中,数据预处理包括:删除重复和矛盾数据,采用缺失值所在列的中位数赋值处理某条合理数据的缺失值,赋值处理的具体公式为:
其中,n为数据集Data中的样本总数,dpij为第i个样本的第j个属性。
优选地,步骤S6中,代价敏感因子Acost的公式为:
Acost=(numx+1)/(numy+1)×η±λ (2)
其中,numy是Data′中真实缺陷样本的数量,numx是Data′中真实非缺陷样本的数量,η、λ是辅助参数。
优选地,步骤S7中,最佳模型判别标值根据错误率、召回率、精准率指标的自定义取值设置。
优选地,步骤S8中,二次筛选ID3决策树的条件为:错误率召回率/>和精准率/>其中,numTrees为构建的ID3决策树数量;森林中对ID3决策树的数量numF限制条件为:numTrees为用户指定构建的决策树数量。
优选地,步骤S9中,代价敏感因子Bcost的公式为:
其中,treesx是将样本预测为非缺陷类别的ID3决策树的数量,treesy是将样本预测为缺陷类别的ID3决策树的数量,tx为Data′中真实非缺陷样本的数量,ty为Data′中真实缺陷样本的数量,η、λ、γ为辅助参数。
本发明所带来的有益技术效果:
1.本发明分析了随机森林以及ID3树在使用类别不平衡数据集训练和预测的过程中,易出现分类代价高的问题,充分利用其不受高维数据影响、可以提取重要特征的优势,同时,通过完善数据集、引入筛选条件和对森林中ID3树的数量限制,构建了基于代价敏感与改进随机森林的软件缺陷预测模型;
2.在数据集样本类别不平衡的条件下,本发明两次引入了代价敏感因子,确保在保持较高精确率的同时,使模型的误分类代价得到有效的降低。
附图说明
图1是本发明基于代价敏感与随机森林的软件缺陷预测方法的流程图;
图2是本发明基于代价敏感改进的ID3树原理示意图;
图3是本发明基于代价敏感改进的随机森林原理示意图;
图4是本发明cost-RF模型与一般的ID3树构成的随机森林和LASSO-SVM的实验对比结果图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
如图1所示,本发明提出的一种基于代价敏感与随机森林的软件缺陷预测方法包括如下步骤:
步骤一、从NASA MDP获取公开数据集Data,对其进行数据预处理操作,产生预处理后的数据集Data′。
预处理包括:删除重复和矛盾数据;同时,面对某个合理数据的缺失值问题,为了保证该条数据不失一般性,采用缺失值所在列的中位数赋值处理某条合理数据的缺失值。
假设某个数据集Data中有n个样本,每个样本表示为:di(i=0,1,2,...,n-1),有m(包括标签属性)个属性,每个属性表示为:pj(j=0,1,2,...,m-1),第i个样本的第j个属性表示为:dpij。当某条数据的dpij缺失时,采用公式(1),对dpij进行赋值处理。
步骤二、根据Data′的大小,将其按照自定义比例(一般设为7:3)随机划分为TrainD和TestD。
步骤三、利用Bagging技术,对TrainD进行数据扰动,有放回的随机抽取TrainD中的样本,将抽取的样本作为训练ID3决策树的训练集TrainD_train,剩下的样本则作为训练集中的测试集TrainD_test。
步骤四、引入属性扰动,通过公式(4)四舍五入计算属性扰动后的属性个数ms,在TrainD_train上进行属性扰动,随机选取只包含ms个属性的所有样本,生成属性扰动后的TrainD_trainM。
步骤五、使用TrainD_trainM,采用二元切分法,构建ID3决策树。具体实现如下:
1、在ID3决策树的构建过程中,针对节点上特征属性的选取,首先,遍历此数据集上ms中的一个属性,将样本按遍历的属性值大小排序后,将每一个样本的类别与其相邻的样本进行比对,并使用集合A记录相邻样本类别不同的位置i。然后,如果集合A中的记录数量大于定义的最小检查记录数MIN_TO_CHECK_Value(一般取为10~15),即:
A>MIN_TO_CHECK_Value,我们使用自定义步长Step_Skip(一般取2),遍历集合A;反之,如果A≤MIN_TO_CHECK_Value,则使用固定步长Step_Skip_F(一般取1),遍历A。最后,在此属性下,计算每个属性值的信息增益,选取信息增益最大的属性和属性值进行二元***。在执行下次***之前,删除此属性。以此类推,进行ID3决策树的构建。
2、使用最小节点数和单一类型节点作为ID3树节点停止***的一般性条件。即:设置***阈值ε(一般选取3~6),如果剩余样本数SN≤ε或发现一个节点中的样本为同一类别时,就停止***并将其归为一个叶子节点。
步骤六、在ID3树中引入与Data′中不同类别数量相关的Acost,判断每个样本是否是缺陷模块。
判断每个样本是否是缺陷模块的时候,为了增大预测模块的缺陷倾向,降低误分类代价,引入了根据Data′中不同真实类别数量的比例定义的代价敏感因子Acost,如公式(2),一般分母numy是Data′中真实缺陷样本的数量,分子numx是Data′中真实非缺陷样本的数量,η、λ表示辅助参数。为了不失一般性,我们给分子和分母都加1。
Acost=(numx+1)/(numy+1)×η±λ (2)
步骤七、设置最佳模型判别指标值Ψ也即优劣模型阈值,筛选整体性能较优的ID3决策树。
对构建好的ID3决策树,引入Ψ如公式(5)。
使用TrainD_test测试ID3决策树,得到错误率、召回率、精准率等指标。如果测试指标低于定义的Ψ,则认定此决策树不合格,不能包含在用户指定构建的决策树数量numTrees中。重复步骤五、六、七,直至满足用户指定构建的ID3树数量numTrees。
步骤八、引入二次筛选ID3树的条件和森林中对ID3树的数量限制,构建随机森林。
1、在形成随机森林的过程中,对步骤七中得到的所有合格ID3树进行二次筛选,只有当满足错误率召回率/>和精准率的ID3树,才会被加入到森林中。
2、为了降低随机森林的过拟合问题,对RF中的决策树数量进行限制。最低设为用户定义的训练ID3树的数量numTrees的一半,最高为其总量的五分之四,即森林中的决策树数量需要满足:
步骤九、为了再次增大预测模块的缺陷倾向、降低误分类代价,引入受限于随机森林中对样本预测结果不同的决策树数量和Data′中不同类别的样本数量的代价敏感因子Bcost,判断每个样本是否是缺陷模块。代价敏感因子Bcost的求解如公式(3):
其中,treesx是将样本预测为非缺陷类别的ID3树的数量,treesy是将样本预测为缺陷类别的ID3树的数量,tx为Data′中真实非缺陷样本的数量,ty为Data′中真实缺陷样本的数量,η、λ、γ(γ>0,一般取1)为辅助参数。
步骤十、使用构建的cost-RF对TestD中的样本进行预测,判断每个样本是否是缺陷模块。
如图2所示,基于代价敏感改进的ID3树原理为:首先,使用经过数据扰动和属性扰动后的训练数据集TrainD_trainM作为训练ID3树的输入;其次,使用二元切分法函数BS(tarin),选取信息增益最大的属性和属性值进行二元***,并在执行下次***之前,删除此属性,以此类推,进行ID3树节点的***;然后,在构建ID3树的过程中,使用最小节点数,也即***阈值ε和单一类型子节点作为ID3树节点停止***的一般性条件,当发现剩余样本数SN为同一类别或者SN小于等于***阈值ε(一般选取3~6)时,就停止***并将其全部归为一个叶子节点;然后,在选取叶子节点的类别时,我们引入了与Data′中不同类别数量相关的代价敏感因子Acost,作为叶子节点中缺陷模块的权重,去增大预测为缺陷类别的倾向;接着,使用性能测试函数PT(ID3,test)测试构建的cost-ID3树模型性能,得到性能指标集target,最后,使用指标比对函数Judge(targer,Ψ),将target和引入的最佳模型判别指标值Ψ进行比对,输出合格的基于代价敏感的ID3树cost-ID3。
如图3所示,基于代价敏感改进的随机森林原理为:首先,将上一步骤中构建好的ID3树加入到随机森林之前,使用性能指标函数Ps(trees)对构建合格的ID3树进行二次筛选;其次,使用数量限制函数numLimit()对随机森林中ID3树的数量进行限制;然后,在投票判断样本类别阶段,引入受限于随机森林中对样本预测结果不同的决策树数量和Data′中不同类别的样本数量的代价敏感因子Bcost,作为将样本类别预测为缺陷的决策树数量的权重,增大预测为缺陷类别的倾向;最后,构建基于代价敏感的随机森林cost-RF。
为了充分证明本发明提出软件缺陷预测方法的可行性,进行了两组试验。
实验环境配置:windows10操作***、IntelliJ IDEA 2017.3.2、jdk1.8.0_131。
试验数据:选取了如表1、表2介绍的公开数据集KC3作为实例。
表1预处理后的实验数据集KC3介绍
表2 KC3中部分属性介绍与样本展示
实验一:验证实验
输入:公开数据集KC3、公开数据集划分比例Ex=7:3、用户指定构建的决策树数量numTrees=200。
输出:每个测试模块的预测缺陷标签。
步骤一、删除公开数据集KC3中的重复和矛盾数据,针对样本中的缺失值问题,使用公式(1)处理,预处理后的KC3部分数据展示如表2所示;
步骤二、在数据集KC3的划分上,TrainD的数据量为135和TestD的为59;
步骤三、对TrainD进行数据扰动,得到训练ID3决策树的训练集TrainD_train,测试集TrainD_test;
步骤四、通过公式(4)四舍五入计算属性扰动后的属性个数ms=7,从TrainD_train随机选取只包含ms=7个属性的所有样本,生成训练集TrainD_trainM;
步骤五、设置MIN_TO_CHECK_Value=13,自定义步长Step_Skip=2,固定步长Step_Skip_F=1以及ε=5,构建ID3决策树;
步骤六、设置η=0.5,λ=0.4,将使用公式(2)得到的Acost=159/37×0.5-0.4≈1.75作为缺陷类别的权重,判断每个样本是否是缺陷模块;
步骤七、设置最佳模型判别指标值Ψ如公式(5),筛选整体性能较优的ID3决策树;
步骤八、引入二次筛选ID3树的条件: 和/>和森林中对ID3树的数量限制:根据/>RF中,ID3树的数量为:100≤numF≤160,得到构建的RF;
步骤九、设置γ=1,η=2.5、λ=0.35,将使用公式(3)得到的作为缺陷类别的投票权重,对数据集中的样本进行类别投票;
步骤十、使用构建的改进随机森林模型对TestD中的样本进行预测,判断每个样本是否是缺陷模块。
实验二:对比实验
在相同的实验环境、数据集与数据预处理步骤下,对传统的ID3决策树构成的随机森林以及基于LASSO-SVM的缺陷预测方法形成的模型进行测试。根据正确率、召回率、查准率/精确率、F-Measure指标,验证所提方法的有效性。每一个性能指标值取15次运行结果的平均值。
软件缺陷预测二分类结果如表3所示,评价指标公式分别如(6)、(7)、(8)、(9)所示:
表3软件缺陷预测二分类结果
TP:将正例正确预测为正例;FN:将正例错误预测为负例(Type II错误分类)。
FP:将负例错误预测为正例(Type I错误分类);TN:将负例正确预测为负例。
正确率(Accuracy)是指被正确分类的模块占所有模块的比例。
召回率(Recall)是指所有被正确分类的有缺陷模块占所有真正有缺陷模块的比例。
查准率/精确率(Precision)指所有被正确分类的有缺陷模块占所有预测为有缺陷模块的比例。
F1-Measure是精确率和召回率的加权调和平均,常用于评价分类模型的好坏。
根据实验一,本发明在随机森林的基础上引入了代价敏感技术,就是在本发明中构建的决策树的分类阶段以及形成的随机森林模型的投票分类阶段,分别引入了根据不同对象定义的代价敏感因子,提高预测缺陷类别的权重,降低了Type II错误分类出现的频率,最小化了误分类代价。最终训练出基于代价敏感的改进随机森林模型,根据实验结果,如表4、图4所示,验证了此方法的可行性。
根据实验二,本发明基于代价敏感的改进随机森林cost-RF与传统的ID3树构成的随机森林t-RF以及基于LASSO-SVM的缺陷预测方法形成的模型、在KC3数据集上进行了实验比对,实验结果如表4、图4所示,可以看出,本发明在正确率、查准率、召回率、F-Measure方面都优于传统的ID3树构成的随机森林模型;在召回率、F-Measure方面都较优于基于LASSO-SVM的缺陷预测方法形成的模型,分别高于2.52%、0.78%;但是,正确率、查准率方面较低于LASSO-SVM模型,分别低于0.78%、0.82%。根据上述实验数据表明,本发明可以在保持较高精确率的同时,有效的提高预测缺陷类别的权重,降低Type II错误分类出现的频率,最小化误分类代价。
表4实验结果(%)
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (4)
1.一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,在构建决策树的分类阶段以及形成的随机森林模型的投票分类阶段,分别引入根据不同对象定义的代价敏感因子,训练出基于代价敏感的改进随机森林模型cost-RF,然后利用该模型对软件缺陷进行预测,训练cost-RF模型并进行软件缺陷预测的具体步骤如下:
S1.从NASA MDP获取公开的软件缺陷预测真实数据集Data进行数据预处理,产生预处理后的数据集Data′;
S2.根据Data′的大小,将其按照自定义比例随机划分为训练数据集TrainD和测试数据集TestD;
S3.利用Bagging技术,对训练数据集TrainD进行数据扰动,有放回的随机抽取训练数据集TrainD中的样本,将抽取的样本作为训练ID3决策树的训练集TrainD_train,剩下的样本则作为训练集中的测试集TrainD_test;
S4.引入属性扰动,在TrainD_train上进行属性扰动,生成属性扰动后的TrainD_trainM;
S5.使用TrainD_trainM,采用二元切分法,构建ID3决策树;
S6.在ID3决策树中,引入与Data′中不同类别数量相关的代价敏感因子Acost,判断每个样本是否是缺陷模块;
代价敏感因子Acost的公式为:
Acost=(numx+1)/(numy+1)×η±λ (1)
其中,numy是Data′中真实缺陷样本的数量,numx是Data′中真实非缺陷样本的数量,η、λ是辅助参数;
S7.设置最佳模型判别标值,利用TrainD_test筛选整体性能较优的ID3决策树;
S8.引入二次筛选ID3决策树的条件和森林中对ID3决策树的数量限制,构建随机森林;
S9.引入受限于随机森林中对样本预测结果不同的决策树数量和Data′中不同类别的样本数量的代价敏感因子Bcost,判断每个样本是否是缺陷模块;
代价敏感因子Bcost的公式为:
其中,treesx是将样本预测为非缺陷类别的ID3决策树的数量,treesy是将样本预测为缺陷类别的ID3决策树的数量,tx为Data′中真实非缺陷样本的数量,ty为Data′中真实缺陷样本的数量,η、λ、γ为辅助参数;
S10.使用随机森林对TestD中的样本进行预测,判断每个样本是否是缺陷模块。
2.根据权利要求1所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S1中,数据预处理包括:删除重复和矛盾数据,采用缺失值所在列的中位数赋值处理某条合理数据的缺失值,赋值处理的具体公式为:
其中,n为数据集Data中的样本总数,dpn/2j为第n/2个样本的第j个属性,dpn+1/2j为第n+1/2个样本的第j个属性。
3.根据权利要求2所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S7中,最佳模型判别标值根据错误率、召回率、精准率指标的自定义取值设置。
4.根据权利要求2所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S8中,二次筛选ID3决策树的条件为:错误率召回率/>和精准率/>其中,numTrees为构建的ID3决策树数量;森林中对ID3决策树的数量numF限制条件为:numTrees为用户指定构建的决策树数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110525086.XA CN113378884B (zh) | 2021-05-14 | 2021-05-14 | 一种基于代价敏感与随机森林的软件缺陷预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110525086.XA CN113378884B (zh) | 2021-05-14 | 2021-05-14 | 一种基于代价敏感与随机森林的软件缺陷预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113378884A CN113378884A (zh) | 2021-09-10 |
CN113378884B true CN113378884B (zh) | 2024-01-19 |
Family
ID=77570961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110525086.XA Active CN113378884B (zh) | 2021-05-14 | 2021-05-14 | 一种基于代价敏感与随机森林的软件缺陷预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113378884B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203534A (zh) * | 2016-07-26 | 2016-12-07 | 南京航空航天大学 | 一种基于Boosting的代价敏感软件缺陷预测方法 |
CN111881159A (zh) * | 2020-08-05 | 2020-11-03 | 长沙理工大学 | 一种基于代价敏感极端随机森林的故障检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2633445A4 (en) * | 2010-10-25 | 2014-09-17 | Intelius Inc | COST-SENSITIVE ALTERNATING DECISION TREES FOR COUPLING RECORDINGS |
-
2021
- 2021-05-14 CN CN202110525086.XA patent/CN113378884B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203534A (zh) * | 2016-07-26 | 2016-12-07 | 南京航空航天大学 | 一种基于Boosting的代价敏感软件缺陷预测方法 |
CN111881159A (zh) * | 2020-08-05 | 2020-11-03 | 长沙理工大学 | 一种基于代价敏感极端随机森林的故障检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
"软件静态测试实验教学方案设计";赵卫东;《软件》;第40卷(第6期);第74-77页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113378884A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928764B (zh) | 移动应用众包测试报告自动化评估方法及计算机存储介质 | |
CN111611177B (zh) | 一种基于配置项性能期望的软件性能缺陷检测方法 | |
CN111343147B (zh) | 一种基于深度学习的网络攻击检测装置及方法 | |
CN114722746B (zh) | 一种芯片辅助设计方法、装置、设备及可读介质 | |
CN110515836B (zh) | 一种面向软件缺陷预测的加权朴素贝叶斯方法 | |
CN113177643A (zh) | 一种基于大数据的自动建模*** | |
CN117725437B (zh) | 一种基于机器学习的数据精准匹配分析方法 | |
CN111582315A (zh) | 样本数据处理方法、装置及电子设备 | |
CN114816962A (zh) | 基于attention-lstm的网络故障预测方法 | |
CN113516173B (zh) | 一种基于随机森林与决策树的整车静动态干涉的测评方法 | |
CN114153839A (zh) | 多源异构数据的集成方法、装置、设备及存储介质 | |
CN113378884B (zh) | 一种基于代价敏感与随机森林的软件缺陷预测方法 | |
CN115599698B (zh) | 一种基于类关联规则的软件缺陷预测方法及*** | |
CN115587333A (zh) | 一种基于多分类模型的失效分析故障点预测方法及*** | |
CN115309705A (zh) | 一种自动识别城市信息模型平台基础数据元素的数据集成分类***及其分类方法 | |
CN115904920A (zh) | 一种测试用例推荐方法、装置、终端及存储介质 | |
Zuo et al. | An Improved AdaBoost Tree-Based Method for Defective Products Identification in Wafer Test | |
CN116932487B (zh) | 一种基于数据段落划分的量化式数据分析方法及*** | |
CN112711665B (zh) | 一种基于密度加权集成规则的日志异常检测方法 | |
CN112183576B (zh) | 一种基于不均衡数据集的Time-LSTM分类方法 | |
CN116628526A (zh) | 一种基于采样算法优化与无监督聚类的软件缺陷预测方法 | |
CN113900947A (zh) | 一种面向线性分类器的基于蜕变测试的软件测试方法 | |
Ou et al. | Fault Classification Method of Information System Based on Cascaded Convolutional Neural Network Model | |
CN115563309A (zh) | 一种失效分析故障点预测方法及*** | |
CN116756542A (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 | ||
GR01 | Patent grant |