CN112465040B - 一种基于类不平衡学习算法的软件缺陷预测方法 - Google Patents

一种基于类不平衡学习算法的软件缺陷预测方法 Download PDF

Info

Publication number
CN112465040B
CN112465040B CN202011386286.3A CN202011386286A CN112465040B CN 112465040 B CN112465040 B CN 112465040B CN 202011386286 A CN202011386286 A CN 202011386286A CN 112465040 B CN112465040 B CN 112465040B
Authority
CN
China
Prior art keywords
class
sample
cost
samples
classifier
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
Application number
CN202011386286.3A
Other languages
English (en)
Other versions
CN112465040A (zh
Inventor
王兴起
郑建明
魏丹
陈滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202011386286.3A priority Critical patent/CN112465040B/zh
Publication of CN112465040A publication Critical patent/CN112465040A/zh
Application granted granted Critical
Publication of CN112465040B publication Critical patent/CN112465040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/245Classification techniques relating to the decision surface
    • G06F18/2453Classification techniques relating to the decision surface non-linear, e.g. polynomial classifier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Nonlinear Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于类不平衡学习算法的软件缺陷预测方法。本发明使用SWIM过采样方法合成少数类样本,使数据集由高度不平衡转化为中度不平衡,其次,使用提出的自适应代价矩阵调整策略计算出最适合当前数据集的少数类误分类代价,然后根据训练集训练出K个弱分类器,在此过程中不断地调整样本权重,预测错误的样本增大其权重,预测正确的样本减少其权重,最后,将K个弱分类器组合成一个复合分类器预测待测样本的类别。本发明解决了预测不平衡数据集时少数类样本预测准确率低的问题,可以准确的预测出有缺陷的模块,帮助测试经理寻找软件的缺陷,降低软件开发成本。

Description

一种基于类不平衡学习算法的软件缺陷预测方法
技术领域
本发明是对类不平衡数据集的一种学习方法,旨在使用该技术以后找到缺陷数据集内的缺陷样本,能够帮助测试人员更有效地定位缺陷和分配测试资源,从而降低软件测试的成本,具体涉及一种基于类不平衡学习算法的软件缺陷预测方法。
背景技术
在软件缺陷预测领域中,数据集天然存在类不平衡问题,就是在给定的数据集中,表示“缺陷”类的实例数量远少于表示“非缺陷”类的实例数量。然而,这个有缺陷的类是最重要的类,尽可能地正确预测出缺陷类样本是分类器的最终目标。由于缺陷类的代表性不足,导致分类技术对来自缺陷类的实例给予较少的权重,使软件缺陷预测模型预测性能较差。
因此,在过去的二十年里,众多国内外研究人员试图解决这个问题。当前,解决类不平衡问题的主流策略可以分为以下三大类:1)采样技术。删除训练集下的无缺陷类的实例,或者合成少数类样本,这种方法是从数据层面解决问题,使多数类样本和少数类样本数量达到平衡。2)代价敏感学习。给少数类设置更高的误分类成本,也就是少数类样本的误分类代价要比多数类样本的误分类代价更大,使得分类器更关注少数类样本。3)将上述两种方法之一与集成学习技术结合,利用集成学习更好的泛化性能提升分类准确性。
然而,这些技术仍存在一定的局限性。例如:代价敏感学习中的误分类成本一般由领域专家根据经验得出,很少由算法学习得到,拥有不同经验的专家可能给出的误分类成本不同,这使得结果具有主观性不具备说服力。另外,AdaBoost算法作为集成学习领域中的代表性算法,在进行样本权重更新时,使误分类样本增加相同的权重,忽视了多数类样本与少数类样本的差异,导致最终分类结果的假阴性率没有显著降低。
发明内容
本发明针对现有技术的不足,对经典的AdaBoost算法做出了改进,提出了一种基于类不平衡学习算法的软件缺陷预测方法,本发明在数据预处理阶段使用过采样方法合成少数类样本,扩大少数类的决策边界,改变数据集倾斜分布的特性,从数据层面解决不平衡问题。在样本权重调整阶段使用自适应代价矩阵调整策略,通过代价矩阵给多数类样本和少数类样本分配不同的误分类代价,从算法层面解决类不平衡问题。
本发明方法具体包括以下步骤:
步骤1)划分训练集和测试集;
将软件中的每个模块作为一个样本,将全部样本组合为原始数据集T,其中有缺陷的类别是少数类,表示为T+,无缺陷的类别是多数类,表示为T-。使用SWIM过采样方法合成少数类样本,得到新的少数类TSWIM+=SWIM(T+),合并新的少数类和原始多数类得到新的数据集TNEW=(TSWIM+∪T-);使用十折交叉验证法将数据集划分为训练集和测试集。
步骤2)初始化样本权重;
每个样本均有一个初始权重,其中少数类样本的权重要大于多数类样本的权重,从而增加分类器对少数类样本的重视程度。假设训练集中共有n个样本,Wm(i)表示第m次训练时第i个样本的权重,Ci表示第i个样本在代价矩阵中的误分类代价,那么样本i的初始权重W1(i)用公式(1)计算得出。
步骤3)计算少数类的误分类代价;
使用代价矩阵分别给予多数类样本和少数类样本不同的误分类代价,使少数类的误分类代价要高于多数类的误分类代价,即更严厉的惩罚把少数类样本误分的弱分类器。在代价矩阵中,样本分类正确时的误分类代价为0,也就是代价矩阵的主对角线上的元素为0,多数类样本的误分类代价设为1,少数类样本的误分类代价大于1;具体数值由类不平衡算法根据当前的数据集计算得出,该算法即为自适应代价矩阵调整策略,具体为:
4-1.使用十折交叉验证法将步骤1中的训练集划分为训练集和验证集。
4-2.将少数类样本的误分类代价初始化为1,再使用网格搜索算法逐渐增加少数类样本的误分类代价,最高为10,步长为0.1。
4-3.使用弱分类器训练4-1中的训练集,根据4-2中每一次产生的新的少数类误分类代价调整模型。
4-4.使用4-1中的验证集对4-3中建立的每一个模型进行验证,选择分类准确率最高的模型所对应的少数类误分类代价作为此次自适应代价矩阵调整策略的结果。
步骤4)训练弱分类器Gm
使用步骤1中的训练集配合第m轮的样本权重Wm(i)训练弱分类器Gm
步骤5)计算弱分类器Gm的分类错误率。
设errm代表分类器Gm的分类错误率,Gm(xi)代表弱分类器Gm对第i个样本xi的预测类别,yi表示样本xi的真实类别。I(·)是一个指示函数,在·为真时取值为1,为假时取值为0;则弱分类器Gm的分类错误率用公式(2)计算。
步骤6)计算分类器Gm的权重αm
根据分类器Gm的分类错误率计算该分类器的权重αm,分类器权重代表此分类器在最后投票时的话语权;权重αm由公式(3)计算得出。
步骤7)更新样本权重Wm+1
每一轮过后,都会根据弱分类器的预测结果来调整样本权重,对于预测错误的样本就增加其权重,使得下一轮预测时分类器更加关注这些预测错误的样本,并且,根据代价矩阵预测错误的少数类样本要比预测错误的多数类样本增加更多的权重。另外,对于预测正确的样本就减小其权重。Zm表示归一化因子,cost(i,j)表示在代价矩阵中将第i类样本预测为第j类样本的代价,actual(i)表示样本xi的真实类别,predicted(i)表示样本xi的预测类别。权重更新用公式(4)计算;
步骤8)重复步骤4至步骤7,直至训练出K个弱分类器。
步骤9)投票。
综合K个弱分类器的投票结果,得到一个复合分类器H。对测试集样本x预测其所属类别。Hj(x)表示将样本预测为第j类时所有弱分类器的总代价,由公式(5)计算得到。
最后会选择最小的总代价所对应的类别,作为对样本x的预测类别。
本发明的有益效果:
1、该技术充分考虑到不平衡数据集中样本倾斜分布的特性,对经典分类器算法进行了改进,能更准确的识别出缺陷模块,降低了软件缺陷预测的成本。
2、该技术采用了新颖的代价矩阵生成策略,可以自动的计算出适合不同数据集的少数类误分类代价。少数类误分类代价不再需要领域专家凭经验给出,避免了主观性,更具说服力。
附图说明
图1用于软件缺陷预测中的类不平衡学习方法的整体流程图。
图2NASA数据库的描述
图3AEEEM数据库的描述
图4混淆矩阵说明图
具体实施方式
结合图2和图3,NASA缺陷预测数据集和AEEEM缺陷预测数据集对本发明进行详细说明。本发明整体流程如附图图1所示,具体步骤如下:
步骤1、使用SWIM过采样方法合成少数类样本,再将生成的少数类样本与原始数据集合并得到不平衡率较低的数据集。
步骤2、使用十折交叉验证法将步骤1中的数据集划分为训练集和测试集,用于训练模型和测试模型的预测准确率。再使用十折交叉验证法将训练集划分成训练集和验证集,用于计算最适合当前数据集的少数类误分类代价。
步骤3、使用步骤2中第二次划分得到的训练集去训练模型,再使用网格搜索算法,逐渐增加少数类的误分类代价,用验证集验证模型的准确率,当模型准确率最高时,选取此时对应的少数类误分类代价来完善代价矩阵。
步骤4、使用步骤2中第一次划分的训练集训练模型,得到分类器Gm
4-1.计算分类器Gm的误分类率。
4-2.根据误分类率计算分类器的权重。
4-3.根据代价矩阵调整样本权重,使误分类的样本权重增加,正确分类的样本权重降低,并且少数类样本要比多数类样本增加更多的权重。
4-4.样本权重归一化处理。
步骤5、重复步骤4,直至训练出K个弱分类器。
步骤6、将K个弱分类器组合成一个复合分类器,分别计算样本X所有可能的类别代价,最后选择一个代价最小的类别最为复合分类器对样本X的预测结果。如图4所示,对测试集中全部样本的预测类别和真实类别可以组成一个混淆矩阵,提升混淆矩阵中真正例样本的比率是本发明的目标。

Claims (5)

1.一种基于类不平衡学习算法的软件缺陷预测方法,其特征在于,包含如下步骤:
步骤1)划分训练集和测试集;
将软件中的每个模块作为一个样本,将全部样本组合为原始数据集T,其中有缺陷的类别是少数类,表示为T+,无缺陷的类别是多数类,表示为T-;使用SWIM过采样方法合成少数类样本,得到新的少数类TSWIM+=SWIM(T+),合并新的少数类和原始多数类得到新的数据集TNEW=(TSWIM+∪T-);使用十折交叉验证法将数据集划分为训练集和测试集;
步骤2)初始化样本权重;
每个样本均有一个初始权重,其中少数类样本的权重要大于多数类样本的权重,从而增加分类器对少数类样本的重视程度;假设训练集中共有n个样本,Wm(i)表示第m次训练时第i个样本的权重,Ci表示第i个样本在代价矩阵中的误分类代价,那么样本i的初始权重W1(i)用公式(1)计算得出;
步骤3)计算少数类的误分类代价;
使用代价矩阵分别给予多数类样本和少数类样本不同的误分类代价,使少数类的误分类代价要高于多数类的误分类代价,即更严厉的惩罚把少数类样本误分的弱分类器;在代价矩阵中,样本分类正确时的误分类代价为0,也就是代价矩阵的主对角线上的元素为0,多数类样本的误分类代价设为1,少数类样本的误分类代价大于1;具体数值由类不平衡算法根据当前的数据集计算得出,该算法即为自适应代价矩阵调整策略,具体为:
3-1.使用十折交叉验证法将步骤1中的训练集划分为训练集和验证集;
3-2.将少数类样本的误分类代价初始化为1,再使用网格搜索算法逐渐增加少数类样本的误分类代价,最高为10,步长为0.1;
3-3.使用弱分类器训练3-1中的训练集,根据3-2中每一次产生的新的少数类误分类代价调整模型;
3-4.使用3-1中的验证集对3-3中建立的每一个模型进行验证,选择分类准确率最高的模型所对应的少数类误分类代价作为此次自适应代价矩阵调整策略的结果;
步骤4)训练弱分类器Gm
步骤5)计算弱分类器Gm的分类错误率errm
步骤6)计算分类器Gm的权重αm
步骤7)更新样本权重Wm+1
每一轮过后,都会根据弱分类器的预测结果来调整样本权重,对于预测错误的样本就增加其权重,使得下一轮预测时分类器更加关注这些预测错误的样本,并且,根据代价矩阵预测错误的少数类样本要比预测错误的多数类样本增加更多的权重;另外,对于预测正确的样本就减小其权重;Zm表示归一化因子,cost(i,j)表示在代价矩阵中将第i类样本预测为第j类样本的代价,actual(i)表示样本xi的真实类别,predicted(i)表示样本xi的预测类别;权重更新用公式(4)计算;
步骤8)重复步骤4)至步骤7),直至训练出K个弱分类器;
步骤9)投票选择最小的总代价所对应的类别,作为对样本x的预测类别。
2.根据权利要求1所述的一种基于类不平衡学习算法的软件缺陷预测方法,其特征在于步骤4)所述的训练弱分类器Gm的具体为:
使用步骤1)中的训练集配合本轮的样本权重Wm(i)训练弱分类器Gm
3.根据权利要求1所述的一种基于类不平衡学习算法的软件缺陷预测方法,其特征在于步骤5)所述的计算弱分类器Gm的分类错误率的具体实施如下:
设errm代表分类器Gm的分类错误率,Gm(xi)代表弱分类器Gm对第i个样本xi的预测类别,yi表示样本xi的真实类别;I(·)是一个指示函数,在·为真时取值为1,为假时取值为0;则弱分类器Gm的分类错误率用公式(2)计算;
4.根据权利要求1所述的一种基于类不平衡学习算法的软件缺陷预测方法,其特征在于步骤6)所述的计算分类器Gm的权重αm的具体为:
根据分类器Gm的分类错误率可以计算该分类器的权重αm,分类器权重代表此分类器在最后投票时的话语权;权重αm可由公式(3)计算得出,
5.根据权利要求1所述的一种基于类不平衡学习算法的软件缺陷预测方法,其特征在于步骤9)所述的投票的具体实施如下:
综合K个弱分类器的投票结果,得到一个复合分类器H;对测试集样本x预测其所属类别;Hj(x)表示将样本预测为第j类时所有弱分类器的总代价,可由公式(5)计算得到;最后会选择最小的总代价所对应的类别,作为对样本x的预测类别;
CN202011386286.3A 2020-12-01 2020-12-01 一种基于类不平衡学习算法的软件缺陷预测方法 Active CN112465040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011386286.3A CN112465040B (zh) 2020-12-01 2020-12-01 一种基于类不平衡学习算法的软件缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011386286.3A CN112465040B (zh) 2020-12-01 2020-12-01 一种基于类不平衡学习算法的软件缺陷预测方法

Publications (2)

Publication Number Publication Date
CN112465040A CN112465040A (zh) 2021-03-09
CN112465040B true CN112465040B (zh) 2024-02-09

Family

ID=74806308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011386286.3A Active CN112465040B (zh) 2020-12-01 2020-12-01 一种基于类不平衡学习算法的软件缺陷预测方法

Country Status (1)

Country Link
CN (1) CN112465040B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127342B (zh) * 2021-03-30 2023-06-09 广东电网有限责任公司 基于电网信息系统特征选择的缺陷预测方法及装置
CN113326182B (zh) * 2021-03-31 2022-09-02 南京邮电大学 一种基于采样和集成学习的软件缺陷预测方法
CN113204481B (zh) * 2021-04-21 2022-03-04 武汉大学 一种基于数据重采样的类不平衡软件缺陷预测方法
CN113223727B (zh) * 2021-05-08 2022-07-12 浙江大学 非小细胞肺癌集成预后预测模型及其构建方法、装置和应用
CN113627485A (zh) * 2021-07-10 2021-11-09 南京理工大学 基于admm的不平衡大数据分布式分类方法
CN113610148B (zh) * 2021-08-04 2024-02-02 北京化工大学 一种基于偏置加权AdaBoost的故障诊断方法
CN114490386A (zh) * 2022-01-26 2022-05-13 安徽大学 一种基于信息熵过采样的软件缺陷预测方法及系统
CN114637620B (zh) * 2022-03-10 2024-04-16 南京开特信息科技有限公司 一种基于svm算法的数据库系统异常分类预测方法
CN114706780A (zh) * 2022-04-13 2022-07-05 北京理工大学 一种基于Stacking集成学习的软件缺陷预测方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951809A (zh) * 2015-07-14 2015-09-30 西安电子科技大学 基于不平衡分类指标与集成学习的不平衡数据分类方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170032276A1 (en) * 2015-07-29 2017-02-02 Agt International Gmbh Data fusion and classification with imbalanced datasets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951809A (zh) * 2015-07-14 2015-09-30 西安电子科技大学 基于不平衡分类指标与集成学习的不平衡数据分类方法

Also Published As

Publication number Publication date
CN112465040A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112465040B (zh) 一种基于类不平衡学习算法的软件缺陷预测方法
CN111860982A (zh) 一种基于vmd-fcm-gru的风电场短期风电功率预测方法
CN110009030B (zh) 基于stacking元学习策略的污水处理故障诊断方法
CN107463993B (zh) 基于互信息-核主成分分析-Elman网络的中长期径流预报方法
CN101231672A (zh) 基于改进型bp神经网络的模拟电路软故障诊断方法
CN111626336A (zh) 一种基于不平衡数据集的地铁故障数据分类方法
CN110363230B (zh) 基于加权基分类器的stacking集成污水处理故障诊断方法
CN112070128A (zh) 一种基于深度学习的变压器故障诊断方法
CN112557034B (zh) 一种基于pca_cnns的轴承故障诊断方法
CN105975611A (zh) 自适应组合降采样增强学习机
CN115048988B (zh) 基于高斯混合模型的不平衡数据集分类融合方法
CN110880369A (zh) 基于径向基函数神经网络的气体标志物检测方法及应用
CN112633337A (zh) 一种基于聚类和边界点的不平衡数据处理方法
CN113240113B (zh) 一种增强网络预测鲁棒性的方法
CN109284662B (zh) 一种基于迁移学习的水下声音信号分类方法
CN111950645A (zh) 一种通过改进随机森林提高类不平衡分类性能的方法
CN111522743B (zh) 一种基于梯度提升树支持向量机的软件缺陷预测方法
CN114882531A (zh) 一种基于深度学习的跨域行人再识别方法
CN107480441B (zh) 一种儿童脓毒性休克预后预测的建模方法及系统
CN110515836B (zh) 一种面向软件缺陷预测的加权朴素贝叶斯方法
US20040096107A1 (en) Method and computer program product for determining an efficient feature set and an optimal threshold confidence value for a pattern recogniton classifier
CN115375635A (zh) 一种晶圆缺陷的识别方法
CN111144462A (zh) 一种雷达信号的未知个体识别方法及装置
CN112597687B (zh) 一种基于少样本学习的涡轮盘结构混合可靠性分析方法
CN111652264B (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