CN112527670B - 一种基于Active Learning的项目内软件老化缺陷预测方法 - Google Patents

一种基于Active Learning的项目内软件老化缺陷预测方法 Download PDF

Info

Publication number
CN112527670B
CN112527670B CN202011511241.4A CN202011511241A CN112527670B CN 112527670 B CN112527670 B CN 112527670B CN 202011511241 A CN202011511241 A CN 202011511241A CN 112527670 B CN112527670 B CN 112527670B
Authority
CN
China
Prior art keywords
samples
active learning
sample
software
project
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
CN202011511241.4A
Other languages
English (en)
Other versions
CN112527670A (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.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
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 Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN202011511241.4A priority Critical patent/CN112527670B/zh
Publication of CN112527670A publication Critical patent/CN112527670A/zh
Application granted granted Critical
Publication of CN112527670B publication Critical patent/CN112527670B/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/3668Software testing
    • G06F11/3672Test management
    • 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
    • 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)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Active Learning的项目内软件老化预测方法,通过收集软件中代码静态度量,使用Active Learning挑选出样本进行打标签作为训练集,去预测剩下的无类标的样本。采用Active Learning进行样本挑选和人工打标签,构成训练集。采用过采样和欠采样结合法缓解类不平衡问题,使用机器学***衡问题,有助于开发者在开发测试阶段发现软件老化相关缺陷并移除,避免软件老化问题带来的损失。本发明已在真实软件上验证过其可行性,并可推广至其他软件来预测软件老化相关缺陷。

Description

一种基于Active Learning的项目内软件老化缺陷预测方法
技术领域
本发明属于软件老化预测技术领域,具体涉及一种基于Active Learning的项目内软件老化缺陷预测方法。
背景技术
在长期运行的操作***中,软件老化是造成***性能下降或软件崩溃的主要原因。其由软件老化相关缺陷(Aging-Related Bugs,ARB)引起,如内存泄漏,未释放的文件锁,存储问题等。且其已被发现存在于多种***中,如Android、Linux、Windows等。软件老化的复杂性和时间特性导致其检测十分困难。故在开发测试阶段(代码层次)预测并移除软件老化相关缺陷是降低软件老化所带来损失的重要方式之一。
近年来,老化缺陷预测逐步受到可靠性领域学者的重视。部分学者通过使用代码静态特征(如代码行数,注释数等)并利用机器学习等方法来训练模型进行项目内老化缺陷预测,然而由于老化缺陷占比较少,如Linux老化缺陷数据集中老化缺陷仅占比0.59%,对我们来说在项目内收集到足够的训练数据进行建模是非常困难的。
针对软件老化训练数据不充足这个问题,有学者提出了跨项目的软件老化缺陷预测,主要方法是通过迁移学***衡问题来进行跨项目老化缺陷预测。这种方式虽然数据量充足,但是不同项目之间的差异还是比较严重,所以,跨项目的预测性能和项目内的预测性能还是存在一定差异的。而且,先前的研究中,处理极其严重的类不平衡时,使用的是过采样或欠采样单个方式,极易导致过拟合,对不同的机器学习分类器不够健壮,即预测效果差异较大。
发明内容
为了克服上述背景技术的缺陷,本发明提供一种基于Active Learning的项目内软件老化缺陷预测方法。
为了解决上述技术问题本发明的所采用的技术方案为:
一种基于Active Learning的项目内软件老化缺陷预测方法,包括:
步骤1,对一个项目内无类标的样本,运用Active Learning选取其中具有代表性的和信息量丰富的第一类样本;
步骤2,针对选取的第一类分样本,再加上已有的有类标的样本组成训练集;
步骤3,针对训练集,采用过采样方法SMOTE和欠采样方法ENN联合进行类不平衡问题处理,学习分类特征;
步骤4,针对步骤3处理后的数据,采用机器学习方法训练预测模型并在测试集上进行老化缺陷预测。
较佳的,在运用Active Learning选取其中具有代表性的和信息量丰富的第一类样本的步骤中,使用Active Learning领域提出的Active Learning by QueryingInformative and Representative Examples(QUIRE)方法,根据有类标的样本训练出来的的分类器对要选取的样本的不确定性来选取信息量大的样本,根据未标记的样本训练出来的分类器对要选取样本的不确定性来选择具有代表性的样本。
较佳地,步骤2中采用选取出来的样本加上已有的有类标的样本组成训练集的步骤中,训练集包含整个项目的初始已标记样本和Active Learning挑选出来的有具有代表性的样本。
较佳地,采用SMOTE+ENN的采样方式,将少数类过采样,多数类欠采样,形成最终的训练集。
较佳的,采用机器学习方法训练预测模型的步骤中,采用机器学习方法执行跨项目预测任务;采用机器学习的方法为决策树、K近邻、支持向量机、逻辑回归、随机森林和朴素贝叶斯六个分类器;其中分类器最佳参数的选择采用十折交叉验证法确定。
本发明的有益效果在于:针对老化缺陷数据量较少的问题,提出了一种新的基于Active Learning的项目内软件老化缺陷预测方法。它解决了软件老化缺陷预测中训练数据样本不充足和软件老化缺陷预测领域严重的类不平衡问题,具有较强的鲁棒性,缓解了收集老化数据集费时费力的情况而且还能取得比较好的效果,能够避免因软件老化造成的损失。
附图说明
图1为本发明提供的一种基于Active Learning的项目内软件老化缺陷预测方法的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供了一种基于Active Learning的项目内软件老化缺陷预测方法,本发明实施例的项目内老化缺陷预测流程框图如图1所示,首先采用Active Learning对无类标的样本进行选取,之后将选取的样本和项目原本有的一小部分有类标的样本合并构成训练集。然后根据老化数据集的特点采用过采样SMOTE和欠采样ENN方法联合使用的方式来解决严重的类不平衡问题。最终使用机器学习分类器对目标项目进行分类,输出预测结果。
该方法的步骤包括:
步骤1,对一个项目内无类标的样本,运用Active Learning选取其中具有代表性的和信息量丰富的第一类样本。
使用Active Learning领域提出的Active Learning by Querying Informativeand Representative Examples(QUIRE)方法,根据有类标的样本训练出来的的分类器对要选取的样本的不确定性来选取信息量大的样本,根据未标记的样本训练出来的分类器对要选取样本的不确定性来选择具有代表性的样本。
首先f*表示由已标记的样本训练的分类模型:
Figure GDA0003559717790000031
其中H是一个具有核函数的再生核Hilbert空间,l(x)是损失函数。基于边界的Active Learning方法选择最接近决策边界的未标记样本,即:
Figure GDA0003559717790000032
将基于边缘的查询选择与主动学习的最小-最大公式连接起来
Figure GDA0003559717790000041
其中
Figure GDA0003559717790000042
在主动学习的最小-最大视图中,它保证所选实例xs将导致目标函数的一个小值,而不管其类标签ys。为了选择信息丰富和具有代表性的查询,扩展评估函数L(Dl,xs)包括所有未标记的数据。假设,知道Du中未选择的未标记实例的类分配yu,则评估函数可以修改为
Figure GDA0003559717790000043
以下求出满足上述公式的xs
为了计算的简单性令
Figure GDA0003559717790000044
上述公式就变成了:
Figure GDA0003559717790000045
其中L=(K+λI)-1,K是核矩阵,因此
Figure GDA0003559717790000046
就可以化简成:
Figure GDA0003559717790000047
为有效地计算每个未标记实例的上述数量,为了方便表示,通过下标u表示矩阵M中的行/列,用于Du中未标记的实例,通过下标l表示标记实例的M中的行/列,以及通过下标s表示所选实例的M中的行/列。还通过下标a指M中所有未标记实例(即Du∪{xs}的行/列)。利用这些约定,重写了目标函数
Figure GDA0003559717790000048
Figure GDA0003559717790000051
得到
Figure GDA0003559717790000052
最后一步遵循以下条件:
Figure GDA0003559717790000053
步骤2,针对选取的第一类分样本,再加上已有的有类标的样本组成训练集;
采用选取出来的样本加上已有的有类标的样本组成训练集的步骤中,训练集包含整个项目的初始已标记样本和Active Learning挑选出来的有具有代表性的样本。
Datatrain=Datalabled∪Dataselected
其中,Datatrain表示训练集,Dataselected表示Active Learning挑选出来的有具有代表性的样本,Datalabled表示项目的初始已标记样本。
步骤3,针对训练集,采用过采样方法SMOTE和欠采样方法ENN联合进行类不平衡问题处理,学习分类特征;
软件老化缺陷预测所面临的类不平衡问题十分严重,比如常用于老化缺陷预测的Linux数据集,老化缺陷仅占比0.59%。故需要对类不平衡问题进行处理。在本步骤中首先采用SMOTE对少数类进行过采样,然后采用ENN对多数类进行欠采样。
SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,算法流程如下。
(1)对于少数类中每一个样本x,以欧氏距离为标准计算它到少数类样本集中所有样本的距离,得到其k近邻。
(2)根据样本不平衡比例设置一个采样比例以确定采样倍率N,对于每一个少数类样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为xn。
(3)对于每一个随机选出的近邻xn,分别与原样本按照如下的公式构建新的样本。
Figure GDA0003559717790000061
ENN算法的主要思想:针对训练样本集中的每个样本找出其三个最近邻样本,若该样本是多数类样本且其三个最近邻中有两个以上是少数类样本,则删除它;反之当该样本是少数类并且其三个最近邻中有两个以上是多数类样本,则去除近邻中的多数类样本。
结合上述内容对类不平衡问题进行处理。
步骤4,针对步骤3处理后的数据,采用机器学习方法训练预测模型并在测试集上进行老化缺陷预测。
在本步骤中,采用机器学习算法对目标项目进行预测,如朴素贝叶斯(NB),逻辑回归(LR),K-近邻(KNN),决策树(DT),随机森林(RF),支持向量机(SVM)等。分类器参数通过十折交叉验证确定。六种不同的机器学习分类器均取得较佳效果,其中使用NB和KNN作为分类器时取得最佳效果。
本发明通过收集软件中代码静态度量,使用Active Learning挑选出样本进行打标签作为训练集,去预测剩下的无类标的样本。采用Active Learning进行样本挑选,根据一定的策略选出具有代表性和信息量丰富的样本,对样本进行人工打标签,这部分样本构成本文的训练集。然后采用过采样和欠采样结合法缓解软件老化中严重的类不平衡问题,最后使用机器学***衡问题。它解决了软件老化数据量过少而且收集起来比较困难和项目内软件老化缺陷预测精度的问题,有助于开发者在开发测试阶段发现软件老化相关缺陷并移除,避免软件老化问题带来的损失。本发明已在真实软件上验证过其可行性,并可推广至其他软件来预测软件老化相关缺陷。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (5)

1.一种基于Active Learning的项目内软件老化缺陷预测方法,其特征在于,包括:
步骤1,对一个项目内无类标的样本,运用Active Learning选取其中具有代表性的和信息量丰富的第一类样本;
步骤2,针对选取的第一类分样本,再加上已有的有类标的样本组成训练集;
步骤3,针对训练集,采用过采样方法SMOTE和欠采样方法ENN联合进行类不平衡问题处理,学习分类特征;
步骤4,针对步骤3处理后的数据,采用机器学习方法训练预测模型并在测试集上进行老化缺陷预测;
在所述步骤1中,使用Active Learning领域提出的Active Learning by QueryingInformative and Representative Examples方法,根据有类标的样本训练出来的分类器对要选取的样本的不确定性来选取信息量大的样本,根据未标记的样本训练出来的分类器对要选取样本的不确定性来选择具有代表性的样本:
首先f*表示由已标记的样本训练的分类模型:
Figure FDA0003569456600000011
其中H是一个具有核函数的再生核Hilbert空间,l(x)是损失函数,基于边界的ActiveLearning方法选择最接近决策边界的未标记样本,即:
Figure FDA0003569456600000012
将基于边缘的查询选择与主动学习的最小-最大公式连接起来
Figure FDA0003569456600000013
其中
Figure FDA0003569456600000021
在主动学习的最小-最大视图中,它保证所选实例xs将导致目标函数的一个小值,而不管其类标签ys;为了选择信息丰富和具有代表性的查询,扩展评估函数L(Dl,xs)包括所有未标记的数据;假设,知道Du中未选择的未标记实例的类分配yu,则评估函数修改为:
Figure FDA0003569456600000022
以下求出满足上述公式的xS
为了计算的简单性令
Figure FDA0003569456600000023
上述公式就变成了:
Figure FDA0003569456600000024
其中L=(K+λI)-1,K是核矩阵,因此
Figure FDA0003569456600000025
就可以化简成:
Figure FDA0003569456600000026
为有效地计算每个未标记实例的数量,为了方便表示,通过下标u表示矩阵M中的行/列,用于Du中未标记的实例,通过下标l表示标记实例的M中的行/列,以及通过下标s表示所选实例的M中的行/列;还通过下标a指M中所有未标记实例,即Du∪{xS}的行/列;利用这些约定,重写了目标函数:
Figure FDA0003569456600000027
Figure FDA0003569456600000028
得到
Figure FDA0003569456600000031
最后一步遵循以下条件:
Figure FDA0003569456600000032
2.根据权利要求1所述一种基于Active Learning的项目内软件老化缺陷预测方法,其特征在于,在运用Active Learning选取其中具有代表性的和信息量丰富的第一类样本的步骤中,使用Active Learning领域提出的Active Learning by Querying Informativeand Representative Examples方法,根据有类标的样本训练出来的分类器对要选取的样本的不确定性来选取信息量大的样本,根据未标记的样本训练出来的分类器对要选取样本的不确定性来选择具有代表性的样本。
3.根据权利要求1所述一种基于Active Learning的项目内软件老化缺陷预测方法,其特征在于:步骤2中采用选取出来的样本加上已有的有类标的样本组成训练集的步骤中,训练集包含整个项目的初始已标记样本和Active Learning挑选出来的有具有代表性的样本。
4.根据权利要求1所述一种基于Active Learning的项目内软件老化缺陷预测方法,其特征在于:采用SMOTE+ENN的采样方式,将少数类过采样,多数类欠采样,形成最终的训练集。
5.根据权利要求1所述一种基于Active Learning的项目内软件老化缺陷预测方法,其特征在于:采用机器学习方法训练预测模型的步骤中,采用机器学习方法执行跨项目预测任务;采用机器学习的方法为决策树、K近邻、支持向量机、逻辑回归、随机森林和朴素贝叶斯六个分类器;其中分类器最佳参数的选择采用十折交叉验证法确定。
CN202011511241.4A 2020-12-18 2020-12-18 一种基于Active Learning的项目内软件老化缺陷预测方法 Active CN112527670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011511241.4A CN112527670B (zh) 2020-12-18 2020-12-18 一种基于Active Learning的项目内软件老化缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011511241.4A CN112527670B (zh) 2020-12-18 2020-12-18 一种基于Active Learning的项目内软件老化缺陷预测方法

Publications (2)

Publication Number Publication Date
CN112527670A CN112527670A (zh) 2021-03-19
CN112527670B true CN112527670B (zh) 2022-06-03

Family

ID=75001726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011511241.4A Active CN112527670B (zh) 2020-12-18 2020-12-18 一种基于Active Learning的项目内软件老化缺陷预测方法

Country Status (1)

Country Link
CN (1) CN112527670B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113702728A (zh) * 2021-07-12 2021-11-26 广东工业大学 一种基于组合采样和LightGBM的变压器故障诊断方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782512A (zh) * 2020-06-23 2020-10-16 北京高质***科技有限公司 基于不平衡噪声集的多特征软件缺陷综合预测方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589806B (zh) * 2015-12-17 2018-05-18 北京航空航天大学 一种基于SMOTE+Boosting算法的软件缺陷倾向预测方法
CN108304316B (zh) * 2017-12-25 2021-04-06 浙江工业大学 一种基于协同迁移的软件缺陷预测方法
US10929268B2 (en) * 2018-09-26 2021-02-23 Accenture Global Solutions Limited Learning based metrics prediction for software development
CN109933539A (zh) * 2019-04-15 2019-06-25 燕山大学 一种基于主成分分析和组合采样的软件缺陷预测方法
CN110471856A (zh) * 2019-08-21 2019-11-19 大连海事大学 一种基于数据不平衡的软件缺陷预测方法
CN110751186B (zh) * 2019-09-26 2022-04-08 北京航空航天大学 一种基于监督式表示学习的跨项目软件缺陷预测方法
CN111368924A (zh) * 2020-03-05 2020-07-03 南京理工大学 基于主动学***衡数据分类方法
CN111881023B (zh) * 2020-07-10 2022-05-06 武汉理工大学 一种基于多模型对比的软件老化预测方法及装置
CN111881048B (zh) * 2020-07-31 2022-06-03 武汉理工大学 一种跨项目软件老化缺陷预测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782512A (zh) * 2020-06-23 2020-10-16 北京高质***科技有限公司 基于不平衡噪声集的多特征软件缺陷综合预测方法

Also Published As

Publication number Publication date
CN112527670A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
Wu et al. Online feature selection with streaming features
CN103294716A (zh) 用于分类器的在线半监督学习方法和装置及处理设备
US20180082215A1 (en) Information processing apparatus and information processing method
CN111311401A (zh) 一种基于LightGBM的金融违约概率预测模型
US20220067531A1 (en) Efficient identification of critical faults in neuromorphic hardware of a neural network
CN111325264A (zh) 一种基于熵的多标签数据分类方法
CN111695602B (zh) 多维度任务人脸美丽预测方法、***及存储介质
CN105183792B (zh) 一种基于局部敏感哈希的分布式快速文本分类方法
CN112766170B (zh) 基于簇类无人机图像的自适应分割检测方法及装置
CN117236278B (zh) 一种基于数字孪生技术的芯片生产仿真方法及***
CN112527670B (zh) 一种基于Active Learning的项目内软件老化缺陷预测方法
CN116051479A (zh) 融合跨域迁移和异常检测的纺织品缺陷识别方法
CN111833310A (zh) 一种基于神经网络架构搜索的表面缺陷分类方法
CN115496892A (zh) 工业缺陷检测方法、装置及电子设备、存储介质
CN114399250A (zh) 基于认知图谱的冷链多温混配选温方法及装置
CN115861738A (zh) 一种类别语义信息引导的遥感目标检测主动采样方法
CN113822336A (zh) 一种云硬盘故障预测方法、装置、***及可读存储介质
CN111553442B (zh) 一种分类器链标签序列的优化方法及***
CN117173697A (zh) 细胞团分类识别方法、装置、电子设备及存储介质
CN113408546B (zh) 基于相互全局上下文注意力机制的单样本目标检测方法
CN113157761B (zh) 一种基于关联规则挖掘的电动汽车充放电故障分析方法
CN116580272A (zh) 一种基于模型融合推理的雷达目标分类方法及***
Zhang et al. An effective approach for multi-label classification with missing labels
CN111310810A (zh) 基于差分学习和粒子群的特征选择的图像分类方法及***
US7590291B2 (en) Method and apparatus for non-parametric hierarchical clustering

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