CN117472789A - 基于集成学习的软件缺陷预测模型构建方法和装置 - Google Patents
基于集成学习的软件缺陷预测模型构建方法和装置 Download PDFInfo
- Publication number
- CN117472789A CN117472789A CN202311823565.5A CN202311823565A CN117472789A CN 117472789 A CN117472789 A CN 117472789A CN 202311823565 A CN202311823565 A CN 202311823565A CN 117472789 A CN117472789 A CN 117472789A
- Authority
- CN
- China
- Prior art keywords
- base
- learner
- learners
- prediction model
- training
- 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.)
- Granted
Links
- 230000007547 defect Effects 0.000 title claims abstract description 121
- 238000010276 construction Methods 0.000 title claims abstract description 35
- 238000012549 training Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 abstract description 15
- 230000008901 benefit Effects 0.000 abstract description 6
- 238000013522 software testing Methods 0.000 abstract description 3
- 230000000295 complement effect Effects 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 33
- 238000013135 deep learning Methods 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000003066 decision tree Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000007635 classification algorithm Methods 0.000 description 7
- 238000012216 screening Methods 0.000 description 7
- 230000002950 deficient Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007477 logistic regression Methods 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于集成学习的软件缺陷预测模型构建方法和装置,涉及软件测试技术领域。本发明通过训练集对多个初始的学习器进行初步训练,得到具有一定缺陷预测能力的基学习器,再利用每个基学习器对训练集中每个样本数据进行预测,得到的预测结果能够真实评估每个基学习器对软件缺陷的预测能力,以及各基学习器之间的差异。因此基于测试集的预测结果选择的基学习器构成集成学习器相比依赖经验选择基学习器更为有效,从而发挥出不同模型之间的互补性优势,以对抗不平衡样本导致的过拟合或欠拟合问题,提高缺陷预测的性能。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种基于集成学习的软件缺陷预测模型构建方法。
背景技术
软件缺陷预测是一种通过历史软件项目的软件缺陷数据,辨别软件系统中的目标待测实例是否包含缺陷的技术。通过在软件开发生命周期的早期阶段预测识别有缺陷的实例进行缺陷定位和修复,可以降低由软件缺陷带来的产品风险和后期维护成本。
软件缺陷预测是一个二分类问题,主流的缺陷预测技术通常采用单一学习器,由于缺陷数据集常存在类不平衡问题(即软件项目数据中无缺陷模块的样本数远大于有缺陷模块的样本数),单一学习器容易欠拟合或者过拟合,当缺陷数据的特征比较复杂时,导致预测性能下降。
集成学习通过策略结合多个学习算法或模型,可以充分利用不同模型之间的互补性,改善由于数据不平衡和复杂特征对预测结果的影响。但选择合适的基学习器构成集成学习大多凭借专家经验,未经过科学验证,基学习器的组合之间不能发挥出最佳的互补优势,导致由此构成的集成学习器预测性能有限。
发明内容
本发明提供一种基于集成学习的软件缺陷预测模型构建方法、装置、电子设备以及介质,以解决依赖专家经验所构成的集成学习器预测性能有限,无法有效解决缺陷数据集的类不平衡问题。
本发明通过下述技术方案实现:
本发明的第一方面,提供了一种基于集成学习的软件缺陷预测模型构建方法,所述方法包括:
获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
通过所述训练集训练得到N个基学习器;
基于N个所述基学习器对所述训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
基于所述预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
通过预设结合策略融合M个所述目标基学习器,得到软件缺陷预测模型。
本发明的基于集成学习的软件缺陷预测模型构建方法,通过训练集对多个初始的学习器进行初步训练,得到具有一定缺陷预测能力的基学习器,再利用每个基学习器对训练集中每个样本数据进行预测,得到的预测结果能够真实评估每个基学习器对软件缺陷的预测能力,以及各基学习器之间的差异因此基于训练集的预测结果选择的目标基学习器构成最终集成学习模型相比依赖经验选择更加准确,由此筛选出预测性能好以及差异大的基学习器的组合能够最大程度发挥不同模型之间的互补性,以对抗不平衡样本导致的过拟合或欠拟合问题,提高缺陷预测的性能。基于对预测结果的统计选择目标基学习器可实现为自动化的过程,相比依赖人工经验筛选需要反复进行试错验证,构建集成学习的实际效率更高。
在一种实施方式中,所述通过所述训练集训练得到N个基学习器之前,所述方法还包括:
对所述训练集中的样本数据进行过采样处理,得到训练样本数据;
通过所述训练集训练得到N个基学习器,包括:通过所述训练样本数据训练基学习器池,得到N个基学习器。
在一种实施方式中,所述基于所述预测结果从N个基学习器中确定M个目标基学习器,包括:
基于所述预测结果确定两两基学习器之间的双重错误不合值,所述双重错误不合值计算为:
其中,是第i个基学习器和第j个基学习器之间的双重错误不合值,/>是第i个基学习器和第j个基学习器都预测错误的样本的数量,/>是第i个基学习器预测正确但第j个基学习器预测错误的样本的数量,/>是第i个基学习器预测错误但第j个基学习器预测正确的样本的数量;
基于所述双重错误不合值确定每个基学习器的多样性:
将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个所述基学习器的双重错误不合值;所述基学习器的双重错误不合值越小,则该基学习器的多样性越大;
基于所述多样性从N个基学习器中确定M个目标基学习器,其中,M个所述目标基学习器的多样性均大于N个所述基学习器中剩余的基学习器的多样性。
在一种实施方式中,所述基于所述双重错误不合值确定每个基学习器的多样性,包括:
步骤S1,将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个所述基学习器的双重错误不合值;所述基学习器的双重错误不合值越小,则该基学习器的多样性越大;
步骤S2,将多样性最大的基学习器确定为候选基学习器,并将所述候选基学习器从步骤S1中的基学习器中排除,得到剩余基学习器集合;
步骤S3,对所述剩余基学习器集合重复执行步骤S1-步骤S2,直到候选基学习器的数量达到M,则将M个所述候选基学习器确定为目标基学习器。
在一种实施方式中,所述目标基学习器的数量占所述基学习器数量的30%,即M=0.3N。
在一种实施方式中,所述预设结合策略包括:平均法、投票法或学习法。
本发明的第二方面,提供了一种软件缺陷预测方法,方法包括:通过基于集成学习的软件缺陷预测模型对软件系统中的目标待测实例进行预测,所述软件缺陷预测模型是采用本发明上述任一实施例中所述的基于集成学习的软件缺陷预测模型构建方法所构建得到的。
本发明的第三方面,提供了一种基于集成学习的软件缺陷预测模型构建装置,所述装置包括:
数据获取模块,用于获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
训练模块,用于通过所述训练集训练得到N个基学习器;
预测模型构建模块,用于基于N个所述基学习器对所述训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
所述预测模型构建模块,还用于基于所述预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
所述预测模型构建模块,还用于通过预设结合策略融合M个所述目标基学习器,得到软件缺陷预测模型。
本发明的第四方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施例中所述的基于集成学习的软件缺陷预测模型构建方法,或上述实施例中所述的软件缺陷预测方法。
本发明的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一实施例中所述的基于集成学习的软件缺陷预测模型构建方法,或上述实施例中所述的软件缺陷预测方法。
本发明与现有技术相比,具有如下的优点和有益效果:
基于每个基学习器对训练集中每个样本数据的预测结果筛选基学习器,预测结果能够直接反映每个基学习器对于预测软件缺陷的预测性能和各自之间的差异,相比依赖经验,能够更精确地进行筛选。
基于对预测结果的统计选择目标基学习器可实现为自动化的过程,相比依赖人工经验筛选需要反复进行试错验证,构建集成学习的实际效率更高。
通过对训练集进行过采样,改善训练样本的不平衡性,提高基学习器的性能,有利于目基学习器的筛选以及最终构成的集成缺陷预测模型的性能。
基于双重不合值评估基学习器之间的多样性,双重不合值相比其他多样性指标具有更广的表示域,更能反映出不同基学习器之间的多样性差异,保证所选择出的基学习器所构成集成学习的组合具有优异的互补性。
通过循环迭代的方式在剩余基学习器集合中选出多样性最大的基学习器,保证每次从基学习器集合中选出的目标基学习器的多样性都是剩余集合中最大的,即充分保证了构成集成学习的基学习器组合的多样性最好,从而最大程度消除由于样本不平衡对预测结果的影响。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1是本发明实施例的一种基于集成学习的软件缺陷预测模型构建方法流程图;
图2是本发明实施例的一种基于多样性确定目标基学习器的方法流程图;
图3是本发明实施例的一种基于集成学习的软件缺陷预测模型构建的框图;
图4是本发明实施例的一种电子设备的结构示意图。
实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于或设备固有的其它步骤或单元。
在本申请的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本申请的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
本发明的实施例提供一种基于集成学习的软件缺陷预测模型构建方法,适用软件缺陷预测,有利于解决软件样本数据类不平衡问题,提高集成学习器的预测性能。
如图1所示,图1是本发明实施例的一种基于集成学习的软件缺陷预测模型构建方法的流程示意图,该方法包括:
步骤S101,获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
步骤S102,通过训练集训练得到N个基学习器;
步骤S103,基于N个基学习器对训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
步骤S104,基于预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
步骤S105,通过预设结合策略融合M个目标基学习器,得到软件缺陷预测模型。
上述步骤S101中,软件缺陷样本可以直接从已公开的软件缺陷数据库中获取,例如NASA MDP(Massive Data Pipeline)和PROMISE数据集,也可以通过人工收集。可采集的软件缺陷样本数据的特点往往是缺陷数据远小于非缺陷数据,且不同实例的特征差异较大,给准确预测造成困难。
其中,样本数据包括代码行数、注释行数、判定密度、参数个数、公有方法个数、方法间耦合度、Halstead 复杂度、圈复杂度等静态代码参数。
训练集用于对初始基学习器进行训练,初始基学习器即还未经过软件缺陷样本训练的基学习器。初始基学习器可以是目前可用的所有的学习器,例如常用的机器学习分类算法:逻辑回归(Logistic Regression,LR)、朴素贝叶斯(Naïve Bayes, NB)、K最近邻(KNearest Neighbor, KNN)、决策树(Decision Tree, DT)、支持向量机(Support VectorMachine, SVM))等及其改进算法,常用的深度学习算法:多层感知机(MultilayerPerceptron, MLP)、卷积神经网络(Convolution Neural Network, CNN)等。以上仅列举部分可用模型作为示例,软件缺陷预测是一个二分类问题,原则上所有可处理二分类问题的算法模型均可作为初始的基学习器参与训练,但考虑到实际的应用问题,不可能对无限基学习器进行训练,因此优选地通过人工筛选的方式确定合适数量的模型作为初始基学习器,构成基学习器池,排除明显对于软件缺陷预测无效的模型,提高集成学习器的构建效率。
步骤S102中,用同一个训练集对每个初始基学习器进行训练,得到训练好的N个基学习器,N的值与开始设定的初始基学习器数量有关,可以理解的是,N的值不超过初始基学习器的数量。
在本发明的一些实施方式中,训练好的基学习器数量等于训练的初始基学习器的数量,即不对训练过的初始基学习器进行筛选。
在本发明的一些实施方式中,训练好的基学习器数量小于或等于训练的初始基学习器的数量,即训练过的始基学习器经过了筛选,例如将预测AUC(ROC曲线下面积)低于某个设定阈值的基学习器排除在外,不参与后续步骤。在该实施例中,可通过训练集对基学习器的预测AUC进行验证,将明显不符合要求的基学习器在该步骤中排除。
在一种实施方式中,还可以将采集的样本数据划分为训练集和测试集,训练集用于对基学习器进行训练,测试集用于训练好的基学习器进行预测,评估预测性能。可以理解的是,划分数据集采用本领域常规的方法,遵循基本的样本集划分规则,因此得到的训练集和测试集延续了缺陷样本数据的不平衡性。
在步骤S103中,用训练得到的N个基学习器对训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果。步骤S102中对每个基学习器进行了初步的训练,因此每个基学习器具备了一定的缺陷预测能力,N个基学习器对训练集中的每个样本数据进行预测,即每个基学习器都对训练集中的每个样本数据进行一次预测,若训练集的样本数量为T,则每个基学习器对于T个样本都有一个预测结果,共得到T个预测结果,N个基学习器对训练集中的每个样本数据进行预测共得到N*T个预测结果,每个预测结果都与一个样本数据和一个基学习器一一对应。
预测结果包括两类:预测正确和预测错误。预测正确即基学习器的预测结果与该样本标签相同,标签为缺陷数据,则预测结果也为缺陷数据,预测错误即将标签为缺陷数据的样本数据预测为正常数据或将标签为正常数据的样本数据预测为缺陷数据。预测结果的情况真实反映了每个基学习器的预测性能,根据每个基学习器预测结果中预测正确数量和预测错误的样本分布可以评估该基学习器的独立预测能力。显然筛选出独立预测能力高的基学习器进行集成学习有利于最终的模型的预测能力。
两个基学习器预测结果中预测正确和预测错误的样本分布差异可以评估该两个基学习模型之间的差异,也即基学习器间的多样性。两个基学习器的预测结果包括4类:同一个样本被基学习器A和基学习器B都预测正确、同一个样本被基学习器A预测正确但被基学习器B预测错误、同一个样本被基学习器A预测错误但被基学习器B预测正确、同一个样本被基学习器A和基学习器B都预测错误。以上类型可通过如表1所示的列联表(contingencytable)来表示,表1中,T11是被基学习器A和基学习器B都预测正确的样本的数量,T10是被基学习器A预测正确但被基学习器B预测错误的样本的数量、T01是被基学习器A预测错误但被基学习器B预测正确的样本的数量、T00是被基学习器A和基学习器B都预测错误的样本的数量。训练集样本总数为:T= T11+ T10+ T01+ T00。
表1 列联表
基学习器B预测正确(1) | 基学习器B预测错误(0) | |
基学习器A预测正确(1) | T11 | T10 |
基学习器A预测错误(0) | T01 | T00 |
步骤S104中,基于预测结果从N个基学习器中选择M个目标基学习器,N个基学习器经过相同的训练样本集训练,再对相同预测集进行预测得到的结果可以真实反映每个基学习器对于软件缺陷预测的能力,以及每个基学习器间的多样性,通过对预测结果的统计直观地反映不同基学习器的性能,因此基于预测结果选择目标基学习器构成集成学习模型相比于依赖经验具有更强的科学性,所选择出的目标基学习器可靠性更高,使得集成的基学习器具有更好的预测性能。且基于对预测结果的统计选择目标基学习器可实现为自动化的过程,相比人工经验筛选需要反复进行试错验证,构建集成学习的实际效率更高。
基于预测结果从N个基学习器中选择M个目标基学习器,简单地,可从N个基学习器中选择M个对训练集预测AUC高的前M个目标学习器,AUC即接受者操作特征ROC曲线下面积。AUC越接近1.0,模型性能越好。AUC常用于评价不平衡数据集上模型性能。或者基于基学习器间的多样性选择多样性好(即差异性大)的基学习器构成最终的集成学习器,从而充分利用不同模型之间的互补性,防止过拟合或欠拟合,从而提高预测性能。
基学习器的多样性由每个基学习器对测试样本的预测结果的分布体现,多样性大小可通过以下指标衡量。
(1)双重错误度量值(Double Fault Measure)
(1)
参见表1所示,表示第i个基学习器和第j个基学习器都做出错误预测的样本数,T是测试样本总数,DF表示两个基学习器都做出错误预测的样本数比率。DF值域为[0,1],该值越小,两个基学习器间的多样性越大。
(2)双重错误分类值(Double Fault Misclassification)
(2)
参见表1所示,表示第i个基学习器和第j个基学习器都做出错误预测的样本数,T是测试样本总数,/>表示第i个基学习器和第j个基学习器都做出正确预测的样本数,则DFM表示两个基学习器都做出错误预测的样本数占两个基学习器预测有错误样本数的比率。MDF值域为[0,1],该值越小,两个基学习器间的多样性越大。
多样性指标由两两基学习器预测结果分布差异得到,量化的多样性指标的值可由上述公式(1)中的双重错误度量值或公式(2)中双重错误分类值代替。每个基学习器通过与其他N-1基学习器两两比较得到N-1个多样性指标值(双重错误度量值或双重错误分类值),该N-1个多样性指标值综合反映了该基学习器在基学习器集合中的多样性,可通过求N-1个多样性指标值的总体值或平均值代表该基学习器在基学习器集合中的多样性。从中选择出多样性较好的基分类器组成集成学习器,作为软件缺陷预测模型。
构成集成学习的基学习器多样性好,则系统健壮性更强。不同的模型针对不同特性的数据具备不同的预测性能,多样性好的系统能应对不同特性的数据集,整体预测性能更优秀,整体健壮性更强。
在上述相关的实施例中,M的数量根据预测结果所反映的情况来确定,例如择优选择占比靠前30%的数量,或者根据实际应用情况确定,如根据硬件设备的性能、内存等确定合适数目的目标基学习器,或者预设固定数目的基学习器,优选为2~4个,集成学习基学习器的构成相对灵活,本发明不对此作特殊限定。
在本发明的一些实施方式中,通过双重错误不合值(Double FaultDisagreement,DFD)度量基学习器间的多样性,双重错误不合值表示为:
(3)
参见表1所示,是第i个基学习器和第j个基学习器都预测错误的样的本数量,/>是第i个基学习器预测正确但第j个基学习器预测错误的样本的数量,/>是第i个基学习器预测错误但第j个基学习器预测正确的样本的数量,/>表示两个基学习器都做出错误预测的样本数与两个基学习器仅有一个预测错误样本数的比率,DFD值域为[0,∞),该值越小,两个基学习器间的多样性越大。
基于双重错误不合值确定每个基学习器的多样性:
将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个基学习器的双重错误不合值;基学习器的双重错误不合值越小,则该基学习器的多样性越大;
基于所述多样性从N个基学习器中确定M个目标基学习器,其中,M个所述目标基学习器的多样性均大于N个所述基学习器中剩余的基学习器的多样性。
可选的,在本实施例中,上述平均值可替换为该基学习器与其它基学习器两两之间双重错误不合值中的最大值、求和、加权和及其他等同方式。
在本实施例中,定义了双重错误不合值来表示基学习器的多样性,相比于公式(1)中的双重错误度量值和公式(2)中双重错误分类值,双重错误不合值(DFD)的域为[0,∞),而双重错误度量值(DF)和双重错误分类值(DFM)的域均局限在[0,1],可见双重错误不合值(DFD)具有更广的表示域,值域越大对数据变化越敏感。在进行多样性比较的时候,能更为显著地体现不同基学习器之间的差异,有利于准确地进行筛选。
在本发明的一些实施方式中,如图2所示,图是本发明实施例的一种基于多样性选择目标基学习器的方法的流程示意图,包括:
步骤S201,将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个基学习器的双重错误不合值;每个所述基学习器的双重错误不合值越小,则该基学习器的多样性越大;
步骤S202,将多样性最大的基学习器确定为候选基学习器,并将候选基学习器从步骤S1中的目标基学习器中排除,得到剩余基学习器集合;
步骤S203,对剩余基学习器集合重复执行步骤S1-步骤S2,直到候选基学习器的数量达到M,则将M个候选基学习器确定为目标基学习器。
在该实施方式的步骤S201中与上一实施例确定目标基学习器的方法相同,不同的是在本实施方式中将选出的目标基学习器从基学习器集合中排除,在剩下的基学习器集合中重新基于两两基学习器之间的双重错误不合值确定每个基学习器的多样性,保证每次从基学习器集合中选出的目标基学习器的多样性是剩余集合中最大的,即充分保证了构成集成学习的基学习器组合的多样性最好,从而最大程度消除由于样本不平衡对预测结果的影响。
在步骤S105中,通过预设的结合策略将筛选出的M个目标基学习器进行融合,得到最终的软件缺陷预测模型。结合策略可采用常规的集成技术,如平均法、投票法或学习法。可以理解的是,通过本发明任一实施方式构建出的软件缺陷预测模型,也即由选择出的目标基学期器通过结合策略融合而成的集成学习器,它可以作为最终的预测模型,用于对软件是否存在缺陷进行预测,也可以经过联合训练后再投入使用。通过本发明的方法所构成的集成学习器由优异的基学习器组成,并非意味着必然具有最佳的预测能力,因此在一些实施方式中,该集成学习器还需经过诸如整体训练或联合训练或微调等方式继续优化模型参数。
本发明提出双重错误不合值计算不同基学习器间的多样性,选择出多样性较好基学习器,利用集成学习把将其进行综合集成,生成预测模型,根据预测模型预测软件模块是否存在缺陷。该方法能较准确地预测缺陷,提高软件测试工作效率,降低软件产品质量风险,从而更好地满足用户和客户需求,提高产品满意度。
在本发明的一些实施方式中,如图3所示,图3是本发明一种基于集成学习的软件缺陷预测模型构建的框图。本实施例与其他实施例的不同之处在于:在使用训练集训练基学习器池得到N个训练好的基学习器之前,对训练集进行过采样处理,得到训练样本数据,利用训练样本数据对基学习器池进行训练得到N个训练好的基学习器。其中,过采样处理采用SMOTE过采样或Adasyn过采样,基学习器池中为初始基学习器,即未经过样本数据训练的基学习器。
由于软件缺陷样本数据通常为不平衡数据,样本数据中的正样本数量与负样本数量的比值小于1/4,由此得到的训练集和测试集也为不平衡样本,训练集用于对基学习器进行训练,测试集用于对集成学习器进行测试。通过对训练集进行过采样,改善正负训练样本的不平衡度,可以提高基学习模型的预测性能,有利于后续进行基学习器筛选,且使得最终构成的集成学习器也具有更高的预测性能。
在本发明的一些实施方式中,目标基学习器的数量占基学习器数量的30%,即M=0.3N。
为验证通过本发明的方法构建的集成学习预测模型在软件缺陷预测上的优势,通过下述实施例构建缺陷预测模型,并在在6个NASA、PROMISE缺陷数据集上进行仿真实验。
本发明的一种完整的基于集成学习的软件缺陷预测模型构建方法示意图,包括以下步骤:
步骤S301,获得真实的历史数据集,按照7:3比例将其划分为训练数据集(training dataset)和测试数据集(test dataset),
步骤S302,针对数据集的不平衡性,对训练数据集进行SMOTE过采样处理。
步骤S303,利用步骤S302得到的训练数据训练基学习器池(C1,C2,…,CN)中的N个基学习器,用训练好的N个基学习器分别对测试数据集中的每个样本进行预测,得到每个基学习器对每个样本的预测结果;
S304,通过下式计算两两基学习器双重错误不合值(DFD)
其中,是第i个基学习器和第j个基学习器都预测错误的样本数量,/>是第i个基学习器预测正确但第j个基学习器预测错误的样本的数量,/>是第i个基学习器预测错误但第j个基学习器预测正确的样本的数量,/>表示两个基学习器都做出错误预测的样本数与两个基学习器仅有一个预测错误样本数的比率,DFD值域为[0,∞),该值越小,两个基学习器间的多样性越大。
步骤S304,通过下式度量每个基学习器的多样性:
其中,表示第i个基学习器的双重错误不合值,/>是第i个基学习器和第j个基学习器之间的双重错误不合值,N是基学习器集合中基学习器的数量。基学习器的双重错误不合值越小,则该基学习器的多样性越大。
步骤S305,将多样性最大的基学习器确定为候选基学习器,并将候选基学习器从步骤S304中的基学习器集合中排除,得到剩余基学习器集合;
步骤S306,对剩余基学习器集合重复执行步骤S304-S305,直到选出多样性较好的前30%个(不为整数时,四舍五入取整)基学习器构建集成学习器。
步骤S307,将选出的基学习器构建为集成学习器。
利用上述构建的集成学习器(DFD)在6个缺陷数据集上同类5类常用机器学习分类算法(逻辑回归(Logistic Regression,LR)、朴素贝叶斯(Naïve Bayes, NB)、K最近邻(KNearest Neighbor, KNN)、决策树(Decision Tree, DT)、支持向量机(Support VectorMachine, SVM))、2类深度学习算法(多层感知机(Multilayer Perceptron, MLP)、卷积神经网络(Convolution Neural Network, CNN))、及2类常用集成学习算法(随机森林(Random Forest, RF)、极端梯度提升(eXtreme Gradient Boosting,XGB))共9个对比模型进行性能比较。比较过程及对比结果如下:
1、实验数据集:选取两个公共软件缺陷数据库(即NASA ,PROMISE)的6个软件缺陷数据集,其具体信息如表2所示。其中缺陷样本率=缺陷样本数/总样本数*100%。缺陷样本比率不小于25%的数据集为平衡数据集,反之为不平衡数据集。6个实验数据集除Xalan-2.6外,其他5个均为不平衡数据集。
表2 公共数据集信息
数据库 | 软件项目 | 度量元个数 | 总样本数 | 缺陷样本数 | 缺陷样本率 |
Promise | Ant-1.7 | 20 | 745 | 166 | 22.28% |
Promise | Camel-1.6 | 20 | 965 | 108 | 11.19% |
Promise | Xalan-2.6 | 20 | 885 | 410 | 46.33% |
NASA | KC1 | 21 | 2109 | 326 | 15.46% |
NASA | PC3 | 37 | 1009 | 138 | 12.69% |
NASA | JM1 | 21 | 9591 | 1759 | 18.34% |
2、根据混淆矩阵计算AUC、G-Mean、F1、MCC和Balance五种指标的值。表4至表8分别给出了各种预测模型针对五种性能指标对比结果。表中的第一列表示不同的数据集,第二至十列表示九个对比模型各自的预测性能,最后一列显示本发明所提技术在不同数据集上的预测性能。另外,表中最后一行(平均)表示各个模型在所有数据集上的预测性能的平均值。表中带下划线数据表示9类已有模型性能最优者,带下划线且加粗数据表示包含该发明方法后的10类模型中性能最优者。
3、在6个实验数据集上,分别验证了5类常用机器学习分类算法、2类深度学习算法及2类常用集成学习算法及本发明提出的集成学习器的AUC性能。
AUC(Area Under Curve)为ROC曲线下面积。ROC曲线(receiver operatingcharacteristic curve):以真阳性率(TPR)为纵坐标,假阳性率(FPR)为横坐标绘制的曲线。TPR、FPR基于分类混淆矩阵表3计算得到,如式下式所示:
表3 混淆矩阵
预测阳性 | 预测阴性 | |
真实阳性 | 真阳性True Positive (TP) | 假阴性False Negative (FN) |
真实阴性 | 假阳性False Positive (FP) | 真阴性True Negative (TN) |
AUC值可通过对ROC横轴做积分求得,其值域为[0.5, 1]。AUC=0.5时,此时模型的性能类似于随机预测。AUC越接近1.0,分类方法性能越好。由于ROC曲线对正负样本的分布不敏感,AUC适合作为二分类问题不平衡数据集的评估指标,如表4所示是各预测模型针对AUC指标的对比结果。
表4 数据集 AUC值比较
LR | NB | KNN | DT | SVM | MLP | CNN | RF | XGB | DFD | |
Ant-1.7 | 0.8318 | 0.7864 | 0.7727 | 0.7750 | 0.7614 | 0.8318 | 0.7909 | 0.8659 | 0.7159 | 0.9704 |
Camel-1.6 | 0.5665 | 0.6515 | 0.5140 | 0.5897 | 0.6210 | 0.5309 | 0.6665 | 0.5790 | 0.5890 | 0.9667 |
Xalan-2.6 | 0.6849 | 0.7051 | 0.6992 | 0.7449 | 0.7064 | 0.7149 | 0.7546 | 0.7977 | 0.7205 | 0.9803 |
KC1 | 0.7148 | 0.7338 | 0.6769 | 0.6745 | 0.7543 | 0.7319 | 0.7601 | 0.7189 | 0.7297 | 0.9747 |
PC3 | 0.7495 | 0.5964 | 0.6688 | 0.7770 | 0.5988 | 0.5314 | 0.8119 | 0.8539 | 0.6928 | 0.9721 |
JM1 | 0.5251 | 0.5409 | 0.5886 | 0.5908 | 0.5755 | 0.5957 | 0.6081 | 0.6330 | 0.6436 | 0.9565 |
平均 | 0.6788 | 0.6690 | 0.6534 | 0.6920 | 0.6696 | 0.6561 | 0.7320 | 0.7414 | 0.6819 | 0.9701 |
通过表4比较得出,DFD方法的AUC性能不仅优于常用的分类机器学习算法及深度学习算法,并且优于性能较好的集成学习算法。本发明所提供的模型在所有数据集上获得的AUC平均值为0 .9701,远远高于9个对比模型中最优的AUC平均值(RF:0.7414)。
4、在6个实验数据集上,分别验证了5类常用机器学习分类算法、2类深度学习算法及2类常用集成学习算法及本发明提出的集成学习器的几何平均G-Mean性能,如表5所示。G-Mean计算如下所示。G-Mean同时考虑了TP和TN的分类精确度,只有当TP和TN的分类精确度都高时,G-Mean的值才会高,因此常用来评价不平衡数据上算法的性能。
表5 数据集G-Mean比较
LR | NB | KNN | DT | SVM | MLP | CNN | RF | XGB | DFD | |
Ant-1.7 | 0.8312 | 0.7846 | 0.7726 | 0.7749 | 0.7602 | 0.8557 | 0.7749 | 0.8650 | 0.7152 | 0.9498 |
Camel-1.6 | 0.5631 | 0.6219 | 0.5032 | 0.5884 | 0.6181 | 0.5536 | 0.4743 | 0.5747 | 0.5687 | 0.9430 |
Xalan-2.6 | 0.6848 | 0.7042 | 0.6989 | 0.7446 | 0.7060 | 0.7176 | 0.8159 | 0.7974 | 0.7204 | 0.9645 |
KC1 | 0.7146 | 0.7282 | 0.6758 | 0.6709 | 0.7540 | 0.6989 | 0.7169 | 0.7182 | 0.7222 | 0.9260 |
PC3 | 0.7451 | 0.5787 | 0.6673 | 0.7769 | 0.5878 | 0.2737 | 0.7666 | 0.8519 | 0.6808 | 0.9527 |
JM1 | 0.3852 | 0.4678 | 0.5818 | 0.5776 | 0.5285 | 0.4043 | 0.5615 | 0.6282 | 0.6240 | 0.9211 |
平均 | 0.6540 | 0.6476 | 0.6499 | 0.6889 | 0.6591 | 0.5840 | 0.6850 | 0.7392 | 0.6719 | 0.9429 |
通过表5比较得出,DFD方法的G-Mean性能不仅优于常用的分类机器学习算法及深度学习算法,并且优于性能较好的集成学习算法。本发明所提供的模型在所有数据集上获得的G-Mean平均值为0 .9429,远远高于9个对比模型中最优的G-Mean平均值(RF:0.7392)。
5、在6个实验数据集上,分别验证了5类常用机器学习分类算法、2类深度学习算法及2类常用集成学习算法及本发明提出的集成学习器的F1性能,如表6所示。
F1是查准率precision和查全率recall的调和平均值。只有当recall和precision都尽可能高的情况下F1才会高。F1值较高时,说明模型性能较好。F1常用于评价不平衡数据集上算法的性能,计算如下所示:
表6 数据集F1比较
LR | NB | KNN | DT | SVM | MLP | CNN | RF | XGB | DFD | |
Ant-1.7 | 0.8105 | 0.7487 | 0.7720 | 0.7944 | 0.7361 | 0.7739 | 0.7569 | 0.8357 | 0.7547 | 0.9703 |
Camel-1.6 | 0.6696 | 0.8286 | 0.6572 | 0.6711 | 0.7128 | 0.6838 | 0.7312 | 0.6861 | 0.7503 | 0.9683 |
Xalan-2.6 | 0.6935 | 0.7117 | 0.7100 | 0.7564 | 0.7174 | 0.7436 | 0.7402 | 0.8116 | 0.7282 | 0.9664 |
KC1 | 0.7291 | 0.8286 | 0.7416 | 0.7623 | 0.7956 | 0.6612 | 0.7446 | 0.7214 | 0.8349 | 0.9726 |
PC3 | 0.7431 | 0.5536 | 0.7758 | 0.8279 | 0.7740 | 0.8776 | 0.7864 | 0.8389 | 0.8500 | 0.9828 |
JM1 | 0.0556 | 0.7650 | 0.7057 | 0.7315 | 0.7772 | 0.7429 | 0.7261 | 0.7340 | 0.7965 | 0.9645 |
平均 | 0.6169 | 0.7394 | 0.7271 | 0.7573 | 0.7522 | 0.7472 | 0.7476 | 0.7713 | 0.7858 | 0.9708 |
通过表6比较得出,DFD方法的F1性能不仅优于常用的分类机器学习算法及深度学习算法,并且优于性能较好的集成学习算法。本发明所提供的模型在所有数据集上获得的F1平均值为0 .9708,远远高于9个对比模型中最优的F1平均值(XGB:0.7858)。
6、在6个实验数据集上,分别验证了5类常用机器学习分类算法、2类深度学习算法及2类常用集成学习算法及本发明提出的集成学习器的MCC性能,如表7所示。
马修斯相关系数(Matthews Correlation Coefficient,MCC)是一种常用于评估分类模型性能的指标。它可以衡量模型的真实预测情况,不受样本不平衡影响,取值范围从-1到1,值越大表示模型性能越好。
表7 数据集MCC比较
LR | NB | KNN | DT | SVM | MLP | CNN | RF | XGB | DFD | |
Ant-1.7 | 0.5960 | 0.5069 | 0.4924 | 0.5111 | 0.4633 | 0.5069 | 0.3643 | 0.6572 | 0.4051 | 0.9160 |
Camel-1.6 | 0.1054 | 0.3788 | 0.0226 | 0.1404 | 0.1956 | 0.1252 | 0.2531 | 0.1269 | 0.1672 | 0.9069 |
Xalan-2.6 | 0.3776 | 0.5301 | 0.4258 | 0.5233 | 0.4557 | 0.4475 | 0.5653 | 0.6573 | 0.4480 | 0.9340 |
KC1 | 0.3414 | 0.4468 | 0.2927 | 0.3018 | 0.4295 | 0.3448 | 0.3708 | 0.3453 | 0.4550 | 0.8945 |
PC3 | 0.2821 | 0.1081 | 0.2019 | 0.3475 | 0.1213 | 0.1988 | 0.2688 | 0.4374 | 0.2739 | 0.9161 |
JM1 | 0.0701 | 0.1476 | 0.1486 | 0.1633 | 0.1985 | 0.1727 | 0.2218 | 0.2249 | 0.3006 | 0.8843 |
平均 | 0.2954 | 0.3531 | 0.2640 | 0.3312 | 0.3107 | 0.2993 | 0.3407 | 0.4082 | 0.3416 | 0.9086 |
通过表7比较得出,DFD方法的MCC性能不仅优于常用的分类机器学习算法及深度学习算法,并且优于性能较好的集成学习算法。本发明所提供的模型在所有数据集上获得的MCC平均值为0 .9086,远远高于9个对比模型中最优的MCC平均值(RF:0.4082)。
7、在6个实验数据集上,分别验证了5类常用机器学习分类算法、2类深度学习算法及2类常用集成学习算法及本发明提出的集成学习器的Balance性能,如表7所示。
平衡系数Balance是通过计算点(Recall,PFR)到点(1,0)的欧氏距离得到,因为点(Recall=1,PFR=0)是检测到所有缺陷而没有遗漏的理想点,如下式所示。
表8 数据集Balance比较
LR | NB | KNN | DT | SVM | MLP | CNN | RF | XGB | DFD | |
Ant-1.7 | 0.8185 | 0.7580 | 0.7711 | 0.7736 | 0.7454 | 0.7580 | 0.7218 | 0.8417 | 0.7084 | 0.9523 |
Camel-1.6 | 0.5561 | 0.5411 | 0.4880 | 0.5853 | 0.6101 | 0.4970 | 0.6801 | 0.5653 | 0.5260 | 0.9385 |
Xalan-2.6 | 0.6708 | 0.5830 | 0.6590 | 0.7014 | 0.6483 | 0.6708 | 0.7517 | 0.7277 | 0.7094 | 0.9615 |
KC1 | 0.7134 | 0.6973 | 0.6711 | 0.6563 | 0.7516 | 0.6666 | 0.7213 | 0.7145 | 0.6830 | 0.9182 |
PC3 | 0.7315 | 0.5610 | 0.6645 | 0.7768 | 0.5760 | 0.2929 | 0.7165 | 0.8383 | 0.6562 | 0.9341 |
JM1 | 0.2929 | 0.3737 | 0.5654 | 0.5473 | 0.4453 | 0.3010 | 0.5762 | 0.6134 | 0.5663 | 0.9176 |
平均 | 0.6305 | 0.5857 | 0.6365 | 0.6735 | 0.6295 | 0.5311 | 0.6946 | 0.7168 | 0.6416 | 0.9370 |
通过表8比较得出,DFD方法的Balance性能不仅优于常用的分类机器学习算法及深度学习算法,并且优于性能较好的集成学习算法。本发明所提供的模型在所有数据集上获得的Balance平均值为0 .9370,远远高于9个对比模型中最优的Balance平均值(RF:0.7168)。
综上所述,本发明从公开历史软件数据中获取原始数据集,并将原始数据集划分为训练数据集和测试数据集;根据基学习器间的多样性特性,基于双重错误不合值DFD选择数个具备较强多样性的基学习器构建集成学习;对于一个给定的输入实例,集成学习器对输入实例进行缺陷预测,从而建立软件缺陷预测模型。该方法充分利用了基学习器的多样性特征,充分发挥基学习器的局部分类能力,优化软件缺陷预测模型,提高软件缺陷预测模型的预测性能。另外,该方法利用集成学习减小软件缺陷预测过程中的数据不平衡问题对预测模型性能的影响。通过实验证明,本发明提出的基于集成学习的软件缺陷预测模型性能优良,在6个数据集上(其中5个为不平衡数据集)的AUC、G-Mean、F1、MCC及Balance性能指标均优于基模型和主流集成模型。
本发明的第二方面,提供一种软件缺陷预测方法,该方法包括:通过基于集成学习的软件缺陷预测模型对软件系统中的目标待测实例进行预测,所述软件缺陷预测模型是采用本发任一项实施方式所述的基于集成学习的软件缺陷预测模型构建方法所构建得到的。
本发明的第三方面,提供一种基于集成学习的软件缺陷预测模型构建装置,该装置包括:
数据获取模块,获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
训练模块,用于通过训练集训练得到N个基学习器;
预测模型构建模块,用于基于N个基学习器对所述训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
所述预测模型构建模块,还用于基于预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
所述预测模型构建模块,还用于通过预设结合策略融合M个目标基学习器,得到软件缺陷预测模型。
本发明的第四方面,提供一种电子设备,如图4所示,图4为本发明的一种电子设备的结构示意图,该电子设备包括处理器40、存储器41、输入装置42、输出装置43以及通信装置44;计算机设备中处理器40的数量可以是一个或多个,以图4中一个处理器40为例;电子设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,以实现本发明上述任一实施例的基于集成学习的软件缺陷预测模型构建方法,或软件缺陷预测方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收样本、指令、参数等外部数据,输出装置43用于输出数据处理的中间结果、最终结果、反馈信息等。
本发明的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现本发明任一实施例的基于集成学习的软件缺陷预测模型构建方法,或软件缺陷预测方法。存储介质可以是ROM/RAM、磁碟、光盘等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于集成学习的软件缺陷预测模型构建方法,其特征在于,所述方法包括:
获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
通过所述训练集训练得到N个基学习器;
基于N个所述基学习器对所述训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
基于所述预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
通过预设结合策略融合M个所述目标基学习器,得到软件缺陷预测模型。
2.根据权利要求1所述的基于集成学习的软件缺陷预测模型构建方法,其特征在于,所述通过所述训练集训练得到N个基学习器之前,所述方法还包括:
对所述训练集中的样本数据进行过采样处理,得到训练样本数据;
通过所述训练集训练得到N个基学习器,包括:通过所述训练样本数据训练基学习器池,得到N个基学习器。
3.根据权利要求1的所述基于集成学习的软件缺陷预测模型构建方法,其特征在于,基于所述预测结果从N个基学习器中确定M个目标基学习器,包括:
基于所述预测结果确定两两基学习器之间的双重错误不合值,所述双重错误不合值计算为:
;
其中,是第i个基学习器和第j个基学习器之间的双重错误不合值,/>是第i个基学习器和第j个基学习器都预测错误的样本的数量,/>是第i个基学习器预测正确但第j个基学习器预测错误的样本的数量,/>是第i个基学习器预测错误但第j个基学习器预测正确的样本的数量;
基于所述双重错误不合值确定每个基学习器的多样性:
将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个所述基学习器的双重错误不合值;所述基学习器的双重错误不合值越小,则该基学习器的多样性越大;
基于所述多样性从N个基学习器中确定M个目标基学习器,其中,M个所述目标基学习器的多样性均大于N个所述基学习器中剩余的基学习器的多样性。
4.根据权利要求3所述的基于集成学习的软件缺陷预测模型构建方法,其特征在于,所述基于所述双重错误不合值确定每个基学习器的多样性,包括:
步骤S1,将每个基学习器与其它基学习器两两之间双重错误不合值的平均值确定为每个所述基学习器的双重错误不合值;所述基学习器的双重错误不合值越小,则该基学习器的多样性越大;
步骤S2,将多样性最大的基学习器确定为候选基学习器,并将所述候选基学习器从步骤S1中的基学习器中排除,得到剩余基学习器集合;
步骤S3,对所述剩余基学习器集合重复执行步骤S1-步骤S2,直到所述候选基学习器的数量达到M,则将M个所述候选基学习器确定为目标基学习器。
5.根据权利要求1-4中任一项所述的基于集成学习的软件缺陷预测模型构建方法,其特征在于,所述目标基学习器的数量占所述基学习器数量的30%,即M=0.3N。
6.根据权利要求1-4中任一项所述的基于集成学习的软件缺陷预测模型构建方法,其特征在于,所述预设结合策略包括:平均法、投票法或学习法。
7.一种软件缺陷预测方法,其特征在于,通过基于集成学习的软件缺陷预测模型对软件系统中的目标待测实例进行预测,所述软件缺陷预测模型是采用如权利要求1-6中任一项所述的基于集成学习的软件缺陷预测模型构建方法所构建得到的。
8.一种基于集成学习的软件缺陷预测模型构建装置,其特征在于,所述装置包括:
数据获取模块,用于获取训练集,所述训练集包括软件的缺陷样本数据和非缺陷样本数据;
训练模块,用于通过所述训练集训练得到N个基学习器;
预测模型构建模块,用于基于N个所述基学习器对所述训练集中的每个样本数据进行预测,得到每个基学习器对每个样本数据的预测结果;
所述预测模型构建模块,还用于基于所述预测结果从N个基学习器中确定M个目标基学习器,其中M<N;
所述预测模型构建模块,还用于通过预设结合策略融合M个所述目标基学习器,得到软件缺陷预测模型。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的基于集成学习的软件缺陷预测模型构建方法,或权利要求7所述的软件缺陷预测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的基于集成学习的软件缺陷预测模型构建方法,或权利要求7所述的软件缺陷预测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311823565.5A CN117472789B (zh) | 2023-12-28 | 2023-12-28 | 基于集成学习的软件缺陷预测模型构建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311823565.5A CN117472789B (zh) | 2023-12-28 | 2023-12-28 | 基于集成学习的软件缺陷预测模型构建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472789A true CN117472789A (zh) | 2024-01-30 |
CN117472789B CN117472789B (zh) | 2024-03-12 |
Family
ID=89640075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311823565.5A Active CN117472789B (zh) | 2023-12-28 | 2023-12-28 | 基于集成学习的软件缺陷预测模型构建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472789B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668671A (zh) * | 2024-02-01 | 2024-03-08 | 成都工业学院 | 一种基于机器学习的教育资源治理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400180A (zh) * | 2020-03-13 | 2020-07-10 | 上海海事大学 | 一种基于特征集划分和集成学习的软件缺陷预测方法 |
WO2020143226A1 (zh) * | 2019-01-07 | 2020-07-16 | 浙江大学 | 一种基于集成学习的工业控制系统入侵检测方法 |
CN111767216A (zh) * | 2020-06-23 | 2020-10-13 | 江苏工程职业技术学院 | 一种可缓解类重叠问题的跨版本深度缺陷预测方法 |
CN112905468A (zh) * | 2021-02-20 | 2021-06-04 | 华南理工大学 | 基于集成学习的软件缺陷预测方法、存储介质和计算设备 |
WO2022083140A1 (zh) * | 2020-10-22 | 2022-04-28 | 杭州未名信科科技有限公司 | 患者住院时长的预测方法、装置、电子设备及存储介质 |
CN114881130A (zh) * | 2022-04-26 | 2022-08-09 | 华北电力大学 | 一种基于Bagging模型的继电保护缺陷文本定级方法 |
CN116434893A (zh) * | 2023-06-12 | 2023-07-14 | 中才邦业(杭州)智能技术有限公司 | 混凝土抗压强度预测模型、构建方法、介质、电子设备 |
CN116934470A (zh) * | 2023-06-08 | 2023-10-24 | 华南理工大学 | 一种基于聚类采样和元集成的金融交易风险评估方法 |
CN117113166A (zh) * | 2023-07-14 | 2023-11-24 | 江苏省特种设备安全监督检验研究院 | 一种基于改进的集成学习的工业锅炉故障检测方法 |
-
2023
- 2023-12-28 CN CN202311823565.5A patent/CN117472789B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020143226A1 (zh) * | 2019-01-07 | 2020-07-16 | 浙江大学 | 一种基于集成学习的工业控制系统入侵检测方法 |
CN111400180A (zh) * | 2020-03-13 | 2020-07-10 | 上海海事大学 | 一种基于特征集划分和集成学习的软件缺陷预测方法 |
CN111767216A (zh) * | 2020-06-23 | 2020-10-13 | 江苏工程职业技术学院 | 一种可缓解类重叠问题的跨版本深度缺陷预测方法 |
WO2022083140A1 (zh) * | 2020-10-22 | 2022-04-28 | 杭州未名信科科技有限公司 | 患者住院时长的预测方法、装置、电子设备及存储介质 |
CN112905468A (zh) * | 2021-02-20 | 2021-06-04 | 华南理工大学 | 基于集成学习的软件缺陷预测方法、存储介质和计算设备 |
CN114881130A (zh) * | 2022-04-26 | 2022-08-09 | 华北电力大学 | 一种基于Bagging模型的继电保护缺陷文本定级方法 |
CN116934470A (zh) * | 2023-06-08 | 2023-10-24 | 华南理工大学 | 一种基于聚类采样和元集成的金融交易风险评估方法 |
CN116434893A (zh) * | 2023-06-12 | 2023-07-14 | 中才邦业(杭州)智能技术有限公司 | 混凝土抗压强度预测模型、构建方法、介质、电子设备 |
CN117113166A (zh) * | 2023-07-14 | 2023-11-24 | 江苏省特种设备安全监督检验研究院 | 一种基于改进的集成学习的工业锅炉故障检测方法 |
Non-Patent Citations (4)
Title |
---|
ADITYA SHANKAR MISHRA: "Implicit and explicit mixture of experts models for software defect prediction", 《SOFTWARE QUALITY JOURNAL 》, 20 June 2023 (2023-06-20), pages 1 - 38 * |
XIN DONG等: "Ensemble learning based software defect prediction", 《JOURNAL OF ENGINEERING RESEARCH》, 1 December 2023 (2023-12-01), pages 1 - 15 * |
康恒政: "多分类器集成技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 04, 15 April 2012 (2012-04-15), pages 138 - 1558 * |
高泽伦: "基于机器学习的疾病诊断模型研究", 《中国优秀硕士学位论文全文数据库 医药卫生科技辑》, no. 12, 15 December 2021 (2021-12-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668671A (zh) * | 2024-02-01 | 2024-03-08 | 成都工业学院 | 一种基于机器学习的教育资源治理方法 |
CN117668671B (zh) * | 2024-02-01 | 2024-04-30 | 成都工业学院 | 一种基于机器学习的教育资源治理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117472789B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10373056B1 (en) | Unsupervised model building for clustering and anomaly detection | |
CN117472789B (zh) | 基于集成学习的软件缺陷预测模型构建方法和装置 | |
Wang et al. | Fault recognition using an ensemble classifier based on Dempster–Shafer Theory | |
CN107168995B (zh) | 一种数据处理方法及服务器 | |
CN109919236A (zh) | 一种基于标签相关性的bp神经网络多标签分类方法 | |
CN116932384A (zh) | 一种基于特征融合和特征选择的软件缺陷预测方法 | |
CN109255389B (zh) | 一种装备评价方法、装置、设备及可读存储介质 | |
CN114936158A (zh) | 一种基于图卷积神经网络的软件缺陷定位方法 | |
CN117668622B (zh) | 设备故障诊断模型的训练方法、故障诊断方法及装置 | |
CN110019822A (zh) | 一种少样本关系分类方法及系统 | |
CN115081613A (zh) | 生成深度学习模型的方法、装置、电子设备及存储介质 | |
CN115358291A (zh) | 一种变压器故障诊断方法、介质及系统 | |
CN115757103A (zh) | 基于树结构的神经网络测试用例生成方法 | |
CN117034143A (zh) | 一种基于机器学习的分布式系统故障诊断方法及装置 | |
CN115165332A (zh) | 一种装备机内测试与综合测试一体化设计方法及系统 | |
CN114064459A (zh) | 基于生成对抗网络和集成学习的软件缺陷预测方法 | |
CN114330090A (zh) | 一种缺陷检测方法、装置、计算机设备和存储介质 | |
CN116662674B (zh) | 一种基于高效马尔科夫毯学习机制的服务推荐方法及系统 | |
CN112286807A (zh) | 一种基于源代码文件依赖关系的软件缺陷定位系统 | |
CN116186507A (zh) | 一种特征子集的选取方法、装置及存储介质 | |
CN116430234A (zh) | 一种燃料电池故障诊断模型构建方法 | |
CN116910526A (zh) | 模型训练方法、装置、通信设备及可读存储介质 | |
CN111026661B (zh) | 一种软件易用性全面测试方法及系统 | |
CN115860141A (zh) | 一种自动化机器学习交互式黑箱可视建模方法及系统 | |
CN117743040A (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 |