CN112199287B - 基于强化混合专家模型的跨项目软件缺陷预测方法 - Google Patents

基于强化混合专家模型的跨项目软件缺陷预测方法 Download PDF

Info

Publication number
CN112199287B
CN112199287B CN202011100263.1A CN202011100263A CN112199287B CN 112199287 B CN112199287 B CN 112199287B CN 202011100263 A CN202011100263 A CN 202011100263A CN 112199287 B CN112199287 B CN 112199287B
Authority
CN
China
Prior art keywords
expert model
cross
project
model
project software
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
CN202011100263.1A
Other languages
English (en)
Other versions
CN112199287A (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202011100263.1A priority Critical patent/CN112199287B/zh
Publication of CN112199287A publication Critical patent/CN112199287A/zh
Application granted granted Critical
Publication of CN112199287B publication Critical patent/CN112199287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • 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/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]

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)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于强化混合专家模型的软件缺陷预测方法,属于计算机与信息科学技术领域。主要解决跨项目软件缺陷预测中混合专家模型未能学习跨项目软件的全局信息造成软件缺陷预测性能下降的问题。本发明首先全局训练随机森林,由森林中的树经过挑选与强化构成专家,然后经过改进的EM算法计算每个样本的后验概率并迭代执行专家模型的挑选与强化过程,最后根据迭代重构后的子簇训练门控网络,组合优化好的专家模型构成完整的强化混合专家模型,预测本项目待预测软件模块的缺陷。结果表明本发明能达到较好的分类效果,进一步提升了跨项目软件缺陷预测的准确率。

Description

基于强化混合专家模型的跨项目软件缺陷预测方法
技术领域
本发明涉及一种基于强化混合专家模型的跨项目软件缺陷预测方法,属于计算机与信息科学技术领域。
背景技术
软件缺陷是指软件产品中存在的,导致其无法满足软件需求和规格要求,需要进行修复的瑕疵、问题。软件缺陷是软件失效的源头和影响软件可靠性的重要因素,尽早地预测软件中存在的缺陷,以合理分配测试验证资源并保证软件质量在软件工程领域尤为重要。
目前已有很多高效的软件缺陷预测方法被提出,这些方法主要基于项目历史软件模块的度量特征,采用统计学和机器学习的技术构建软件缺陷预测模型,然后将待测软件模块的度量特征输入软件缺陷预测模型,从而得到该软件模块的缺陷预测结果。但是当待预测的软件项目没有充足的历史数据时,很难顺利进行预测,得到可靠结果。
这种情况下需通过引入其他已有软件项目的历史数据,协助进行跨项目软件缺陷预测。不同软件项目既会由于开发过程、编程规范及应用领域不同而存在数据差异性,也会因为采用相同的开发语言、相近的编码风格或相似的体系结构从而存在共性。这些共性能够作为模式和规律传递的桥梁,建立不同概率分布样本集之间的联系,因此从不同软件项目中提取全局的共性信息并分辨局部的特性信息是实现跨项目软件缺陷预测的关键。
混合专家模型常用来处理分布差异的数据,它可以通过门控函数将分布相近的项目软件数据划分到相同的簇中、分布差异的项目软件数据划分到不同的簇中,针对每个簇分别训练专家模型来共同执行软件缺陷预测任务。通过这个过程,混合专家模型能学习到不同项目软件的特性信息,将其应用于待测项目软件模块,从而实现了跨项目软件缺陷预测。
在进行跨项目软件缺陷预测时,混合专家模型虽然可以很好地学习不同项目软件的局部信息,但是未能学到所有项目软件的全局信息,因此不能很好地对局部数据尤其是不同分布交界处的数据进行分类,从而导致跨项目软件缺陷预测性能下降。所以本发明提出了一种基于强化混合专家模型的跨项目软件缺陷预测方法。
发明内容
本发明的目的是为了解决跨项目软件缺陷预测中,混合专家模型未能学习跨项目软件的全局信息造成软件缺陷预测性能下降的问题,提出了一种基于强化混合专家模型的跨项目软件缺陷预测方法。
本发明的设计原理为:首先全局训练随机森林,由森林中的树经过挑选与强化构成专家,然后经过改进的EM算法计算每个样本的后验概率并迭代执行专家模型的挑选与强化过程,最后根据迭代重构后的子簇训练门控网络,组合优化好的专家模型构成完整的强化混合专家模型,预测本项目待预测的软件模块缺陷。
本发明的技术方案是一种基于强化混合专家模型的跨项目软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1,提取跨项目软件模块数据;
步骤1.1,抽取跨项目软件模块的历史数据;
步骤1.2,提取跨项目软件模块的度量特征;
步骤1.3,标注所有跨项目软件模块的缺陷属性;
步骤2,提取跨项目软件模块数据中的全局信息;
步骤2.1,对所有跨项目软件模块数据进行k均值聚类,将全局数据划分为多个子集;
步骤2.2,基于所有跨项目软件模块数据,全局训练随机森林;
步骤3,基于划分得到的不同簇,迭代执行预专家模型的分配和强化,提取跨项目软件模块数据中的局部信息;
步骤3.1,设置阈值,为聚类获得的每个子集分配预专家模型;
步骤3.2,使用每个子集中的局部数据优化预专家模型;
步骤3.3,根据预专家模型的分类性能对样本点重新分配;
步骤3.4,重复执行预专家模型的强化与重构过程,直到模型的性能最优;
步骤4,根据迭代重构后的子集划分结果训练门控网络,组合优化好的预专家模型构成完整的强化混合专家模型;
步骤5,用训练得到的强化混合专家模型预测本项目软件模块是否存在缺陷。
有益效果
相比国内外已有的跨项目软件缺陷预测方法,本发明基于强化混合专家模型进行训练,每个专家模型既能保留通过全局训练学到的不同项目的共性特征,又能通过各自所在的子簇进行局部强化,保留每个项目的局部特性,充分挖掘出跨项目软件历史模块和本项目历史模块中的全局信息和局部信息,提高了跨项目软件缺陷预测的性能。
附图说明
图1为本发明基于强化混合专家模型的跨项目软件缺陷预测方法的原理图。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合实例对本发明方法的实施方式做进一步详细说明。
具体流程为:
步骤1,抽取跨项目软件模块,提取度量特征和缺陷属性;
步骤1.1,从开源软件仓库和历史项目仓库中抽取跨项目软件模块数据作为样本,提取数据内容包括模块名称,模块源代码,代码更改信息,模块测试信息,开发人员数量,开发持续时间,模块缺陷信息;
步骤1.2,提取所有跨项目软件模块的度量特征;
对第i个样本软件模块,使用面向对象的C&K度量方法,提取软件模块的度量特征,分别为:类中方法的个数,类的继承层次,类的直接子类个数,类与其他类存在耦合关系的数量,类的响应集,内聚缺乏度,传入耦合,传出耦合,公共方法的数量,内聚的缺乏度,代码行数,一个类中私有的属性占所有属性的比例,类中的属性类型是类的定义的个数,一个类中继承的方法个数占所有方法个数的比率,每个方法不同参数类型总和除以类中不同参数的个数乘以总的方法个数,继承的方法与该类中新建的方法之间耦合的个数。提取得到共n个度量值(n=16),将这些度量值分别标记为xi1,xi2,...,xin,构成样本软件模块的样本向量Xi={xi1,xi2,...,xin},所有的样本向量和缺陷标记一起构成软件缺陷数据集D{(Xi,Yi)|i=1,2,...,M}。
步骤1.3,根据缺陷信息对所有样本模块进行缺陷标记处理,对第i个样本软件模块(i=1,2,...,M),若存在缺陷,则缺陷标记Yi=1,若不存在缺陷,则缺陷标记Yi=0;
步骤2,提取跨项目软件模块数据中的全局信息;
步骤2.1,对所有跨项目软件模块数据进行k均值聚类,将全局数据划分为多个子集,分别记为D1,D2,D3,...,DK
步骤2.2,基于所有跨项目软件模块数据,全局训练随机森林。
步骤3,基于样本簇的划分,迭代执行预专家模型的分配和强化,提取跨项目软件模块数据中的局部信息;
步骤3.1,设置阈值,为聚类获得的每个子集分配专家模型;
将训练好的随机森林在子集D1上的准确率作为阈值θ。使用D1作为测试集,计算森林中所有树模型的分类精确度。采用平均加权策略,将分类精度大于阈值θ的树模型组合成关于D1的预专家模型,记为M1。类似地,根据相同的策略为第2到第K个子集分配预专家模型,分别为M2,M3,…,Mk
预专家模型Mj的评选标准如下:
Figure GDA0003356924900000041
其中θj是训练好的随机森林在子集Dj上的准确率,作为属于子集Dj的预专家模型的选择阈值。
步骤3.2,使用每个子集中的局部数据优化预专家模型;
在保留节点特征的前提下,使用子集D1中的数据,优化为其所分配的预专家模型M1,通过调整节点特征的顺序,重新计算重排特征下的切割分数,以确保在重排特征下,D1上的数据得到最好的区分。类似地,根据相同的策略使用其他所有子集(D2,D3,…,DK),优化其所对应的的预专家模型(M2,M3,…,MK)。
该优化过程对应于EM算法中的M-步骤,训练数据的期望对数似然函数定义为:
Figure GDA0003356924900000042
步骤3.3,针对任意样本i,计算其属于每个预专家模型的概率,分别记为ηi1,ηi2,…,ηiK。根据η值的大小,将样本重新分配到计算出的η值最大的预专家模型对应的子集中,其中ηij的计算公式如下:
Figure GDA0003356924900000051
样本点重新分配的过程对应于EM算法中的E-步骤,其中z为隐变量,对应公式如下:
Figure GDA0003356924900000052
步骤3.4,重复执行步3.1到步骤3.3,直到步骤3.3中重新分配的样本数量不再减少。
步骤4,根据迭代重构后的子集划分结果训练门控网络,组合优化好的预专家模型构成完整的强化混合专家模型;
给定输入x,将所有预专家模型的输出结果与门控网络进行线性组合,以获得最终结果y的表示如下:
Figure GDA0003356924900000053
这里假设子集数为H,使用硬选通策略,x属于子集Dk的后验概率公式如下:
Figure GDA0003356924900000054
步骤5,用训练得到的强化混合专家模型预测本项目软件模块是否存在缺陷;
步骤5.1,抽取本项目待预测软件模块与步骤1.3中相同的度量特征,构成待测软件模块的度量向量x={x1,x2,…,xn};
步骤5.2,将度量向量x输入到步骤4训练完成的强化混合专家模型中,得到该软件模块是否存在缺陷的预测结果。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.基于强化混合专家模型的跨项目软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1,提取跨项目软件模块数据,首先抽取跨项目软件模块的历史数据,然后提取跨项目软件模块的度量特征,最后标注所有跨项目软件模块的缺陷属性;
步骤2,提取跨项目软件模块数据中的全局信息,首先对所有跨项目软件模块数据进行k均值聚类,将全局数据划分为多个子集,然后基于所有跨项目软件模块数据,全局训练随机森林;
步骤3,基于划分得到的不同簇,迭代执行预专家模型的分配和强化,提取跨项目软件模块数据中的局部信息,首先使用基于准确率作为阈值的分配方法为每个子集分配预专家模型,然后利用每个子集中的数据通过调整节点特征的顺序和重新计算重排特征下的切割分数优化其对应的预专家模型,然后针对任意样本,分别计算其属于每个预专家模型的概率η,根据所有η值的大小,将样本重新分配到计算出的η值最大的预专家模型对应的子集中,最后重复执行预专家模型的强化与重构过程,直到模型的性能最优;
步骤4,根据迭代重构后的子集划分结果训练门控网络,使用硬选通策略组合优化好的预专家模型构成完整的强化混合专家模型;
步骤5,用训练得到的强化混合专家模型预测本项目软件模块是否存在缺陷。
2.根据权利要求1所述的基于强化混合专家模型的跨项目软件缺陷预测方法,其特征在于:步骤3中基于准确率作为阈值的分配方法为:采用平均加权策略,将分类精度大于阈值θj的树模型组合成关于Dj的预专家模型,记为Mj,预专家模型Mj的评选标准如下:
Figure FDA0003356924890000011
其中θj是训练好的随机森林在子集Dj上的准确率,作为属于子集Dj的预专家模型的选择阈值。
3.根据权利要求1所述的基于强化混合专家模型的跨项目软件缺陷预测方法,其特征在于:步骤3中基于分类效果的分配方法为:针对任意样本,分别计算其属于每个预专家模型的概率η,根据所有η值的大小,将样本重新分配到计算出的η值最大的预专家模型对应的子集中,其中样本i属于预专家模型Mj的概率ηij的计算公式如下:
Figure FDA0003356924890000021
CN202011100263.1A 2020-10-13 2020-10-13 基于强化混合专家模型的跨项目软件缺陷预测方法 Active CN112199287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011100263.1A CN112199287B (zh) 2020-10-13 2020-10-13 基于强化混合专家模型的跨项目软件缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011100263.1A CN112199287B (zh) 2020-10-13 2020-10-13 基于强化混合专家模型的跨项目软件缺陷预测方法

Publications (2)

Publication Number Publication Date
CN112199287A CN112199287A (zh) 2021-01-08
CN112199287B true CN112199287B (zh) 2022-03-29

Family

ID=74008673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011100263.1A Active CN112199287B (zh) 2020-10-13 2020-10-13 基于强化混合专家模型的跨项目软件缺陷预测方法

Country Status (1)

Country Link
CN (1) CN112199287B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114429195A (zh) * 2022-01-21 2022-05-03 清华大学 混合专家模型训练的性能优化方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746328B1 (ko) * 2016-01-29 2017-06-12 한국과학기술원 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
CN109978051A (zh) * 2019-03-25 2019-07-05 北京理工大学 基于混合神经网络的监督分类方法
CN110245693A (zh) * 2019-05-30 2019-09-17 北京理工大学 结合混合随机森林的关键信息基础设施资产识别方法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133176A (zh) * 2017-05-09 2017-09-05 武汉大学 一种基于半监督聚类数据筛选的跨项目缺陷预测方法
CN109977028A (zh) * 2019-04-08 2019-07-05 燕山大学 一种基于遗传算法和随机森林的软件缺陷预测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746328B1 (ko) * 2016-01-29 2017-06-12 한국과학기술원 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
CN109978051A (zh) * 2019-03-25 2019-07-05 北京理工大学 基于混合神经网络的监督分类方法
CN110245693A (zh) * 2019-05-30 2019-09-17 北京理工大学 结合混合随机森林的关键信息基础设施资产识别方法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
" 基于机器学习的软件缺陷预测技术研究";马樱;《中国优秀博硕士学位论文全文数据库(博士) 信息科技辑》;20121215(第12期);I138-9 *
"Software bug prediction using weighted majority voting techniques";Sammar Moustafa等;《Alexandria Engineering Journal》;20181115;第57卷(第4期);第2763-2774页 *
"TSTSS: A two-stage training subset selection framework for cross version defect prediction";ZhouXu等;《Journal of Systems and Software》;20190323;第154卷;第59-78页 *
"基于深度森林的量表数据挖掘方法";佟彤 等;《电子设计工程》;20200705;第28卷(第13期);第88-91+96页 *
一种半监督集成跨项目软件缺陷预测方法;何吉元 等;《软件学报》;20170220;第28卷(第06期);第1455-1473页 *
基于SSDBSCAN的跨项目缺陷预测数据筛选方法;伍蔓 等;《湖北大学学报(自然科学版)》;20170905;第39卷(第05期);第550-557页 *

Also Published As

Publication number Publication date
CN112199287A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
Vieira et al. Two cooperative ant colonies for feature selection using fuzzy models
US8626682B2 (en) Automatic data cleaning for machine learning classifiers
CN104572449A (zh) 一种基于用例库的自动化测试方法
Arias et al. Learning distributed discrete Bayesian network classifiers under MapReduce with Apache spark
CN106250461A (zh) 一种基于Spark框架利用梯度提升决策树进行数据挖掘的算法
CN110502277B (zh) 一种基于bp神经网络的代码坏味检测方法
CN114638160B (zh) 一种面向复杂装备数字孪生模型的知识服务方法
CN112685504A (zh) 一种面向生产过程的分布式迁移图学习方法
CN111325264A (zh) 一种基于熵的多标签数据分类方法
CN108596204B (zh) 一种基于改进型scdae的半监督调制方式分类模型的方法
CN112199287B (zh) 基于强化混合专家模型的跨项目软件缺陷预测方法
Cheng et al. Blocking bug prediction based on XGBoost with enhanced features
CN116861924A (zh) 基于人工智能的项目风险预警方法及系统
Kalifullah et al. Retracted: Graph‐based content matching for web of things through heuristic boost algorithm
CN114897085A (zh) 一种基于封闭子图链路预测的聚类方法及计算机设备
Grishma et al. Software root cause prediction using clustering techniques: A review
CN116501444B (zh) 智能网联汽车域控制器虚拟机异常云边协同监测和恢复系统及方法
CN113159441A (zh) 银行业务项目实施情况的预测方法及装置
CN114974398A (zh) 一种信息处理方法、装置及计算机可读存储介质
CN108664607A (zh) 一种基于迁移学习的电力通信网数据质量提升方法
CN112668633A (zh) 一种基于细粒度领域自适应的图迁移学习方法
CN111950652A (zh) 一种基于相似度的半监督学习数据分类算法
CN116739408A (zh) 基于数据标签的电网调度安全监控方法、系统及电子设备
CN112306730B (zh) 基于历史项目伪标签生成的缺陷报告严重程度预测方法
CN115080386A (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