CN112199287B - 基于强化混合专家模型的跨项目软件缺陷预测方法 - Google Patents
基于强化混合专家模型的跨项目软件缺陷预测方法 Download PDFInfo
- 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
Links
Images
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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine 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的评选标准如下:
其中θj是训练好的随机森林在子集Dj上的准确率,作为属于子集Dj的预专家模型的选择阈值。
步骤3.2,使用每个子集中的局部数据优化预专家模型;
在保留节点特征的前提下,使用子集D1中的数据,优化为其所分配的预专家模型M1,通过调整节点特征的顺序,重新计算重排特征下的切割分数,以确保在重排特征下,D1上的数据得到最好的区分。类似地,根据相同的策略使用其他所有子集(D2,D3,…,DK),优化其所对应的的预专家模型(M2,M3,…,MK)。
该优化过程对应于EM算法中的M-步骤,训练数据的期望对数似然函数定义为:
步骤3.3,针对任意样本i,计算其属于每个预专家模型的概率,分别记为ηi1,ηi2,…,ηiK。根据η值的大小,将样本重新分配到计算出的η值最大的预专家模型对应的子集中,其中ηij的计算公式如下:
样本点重新分配的过程对应于EM算法中的E-步骤,其中z为隐变量,对应公式如下:
步骤3.4,重复执行步3.1到步骤3.3,直到步骤3.3中重新分配的样本数量不再减少。
步骤4,根据迭代重构后的子集划分结果训练门控网络,组合优化好的预专家模型构成完整的强化混合专家模型;
给定输入x,将所有预专家模型的输出结果与门控网络进行线性组合,以获得最终结果y的表示如下:
这里假设子集数为H,使用硬选通策略,x属于子集Dk的后验概率公式如下:
步骤5,用训练得到的强化混合专家模型预测本项目软件模块是否存在缺陷;
步骤5.1,抽取本项目待预测软件模块与步骤1.3中相同的度量特征,构成待测软件模块的度量向量x={x1,x2,…,xn};
步骤5.2,将度量向量x输入到步骤4训练完成的强化混合专家模型中,得到该软件模块是否存在缺陷的预测结果。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.基于强化混合专家模型的跨项目软件缺陷预测方法,其特征在于,包括以下步骤:
步骤1,提取跨项目软件模块数据,首先抽取跨项目软件模块的历史数据,然后提取跨项目软件模块的度量特征,最后标注所有跨项目软件模块的缺陷属性;
步骤2,提取跨项目软件模块数据中的全局信息,首先对所有跨项目软件模块数据进行k均值聚类,将全局数据划分为多个子集,然后基于所有跨项目软件模块数据,全局训练随机森林;
步骤3,基于划分得到的不同簇,迭代执行预专家模型的分配和强化,提取跨项目软件模块数据中的局部信息,首先使用基于准确率作为阈值的分配方法为每个子集分配预专家模型,然后利用每个子集中的数据通过调整节点特征的顺序和重新计算重排特征下的切割分数优化其对应的预专家模型,然后针对任意样本,分别计算其属于每个预专家模型的概率η,根据所有η值的大小,将样本重新分配到计算出的η值最大的预专家模型对应的子集中,最后重复执行预专家模型的强化与重构过程,直到模型的性能最优;
步骤4,根据迭代重构后的子集划分结果训练门控网络,使用硬选通策略组合优化好的预专家模型构成完整的强化混合专家模型;
步骤5,用训练得到的强化混合专家模型预测本项目软件模块是否存在缺陷。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114429195B (zh) * | 2022-01-21 | 2024-07-19 | 清华大学 | 混合专家模型训练的性能优化方法和装置 |
Citations (4)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133176A (zh) * | 2017-05-09 | 2017-09-05 | 武汉大学 | 一种基于半监督聚类数据筛选的跨项目缺陷预测方法 |
CN109977028A (zh) * | 2019-04-08 | 2019-07-05 | 燕山大学 | 一种基于遗传算法和随机森林的软件缺陷预测方法 |
-
2020
- 2020-10-13 CN CN202011100263.1A patent/CN112199287B/zh active Active
Patent Citations (4)
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)
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 | |
CN102521656B (zh) | 非平衡样本分类的集成迁移学习方法 | |
US8626682B2 (en) | Automatic data cleaning for machine learning classifiers | |
CN102314614B (zh) | 一种基于类共享多核学习的图像语义分类方法 | |
Arias et al. | Learning distributed discrete Bayesian network classifiers under MapReduce with Apache spark | |
CN106250461A (zh) | 一种基于Spark框架利用梯度提升决策树进行数据挖掘的算法 | |
CN110502277B (zh) | 一种基于bp神经网络的代码坏味检测方法 | |
CN114638160B (zh) | 一种面向复杂装备数字孪生模型的知识服务方法 | |
CN112685504B (zh) | 一种面向生产过程的分布式迁移图学习方法 | |
CN111325264A (zh) | 一种基于熵的多标签数据分类方法 | |
CN108596204B (zh) | 一种基于改进型scdae的半监督调制方式分类模型的方法 | |
CN112199287B (zh) | 基于强化混合专家模型的跨项目软件缺陷预测方法 | |
Cheng et al. | Blocking bug prediction based on XGBoost with enhanced features | |
Kalifullah et al. | Retracted: Graph‐based content matching for web of things through heuristic boost algorithm | |
CN116501444B (zh) | 智能网联汽车域控制器虚拟机异常云边协同监测和恢复***及方法 | |
Grishma et al. | Software root cause prediction using clustering techniques: A review | |
CN113159441A (zh) | 银行业务项目实施情况的预测方法及装置 | |
CN114974398A (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN108664607A (zh) | 一种基于迁移学习的电力通信网数据质量提升方法 | |
CN112668633A (zh) | 一种基于细粒度领域自适应的图迁移学习方法 | |
CN111950652A (zh) | 一种基于相似度的半监督学习数据分类算法 | |
CN115438190B (zh) | 一种配电网故障辅助决策知识抽取方法及*** | |
CN112306730B (zh) | 基于历史项目伪标签生成的缺陷报告严重程度预测方法 | |
CN115080386A (zh) | 基于自动驾驶功能要求的场景有效性分析方法与设备 | |
CN115454473A (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 |