基于隔离森林的跨项目缺陷预测样本过滤方法及预测方法技术

技术编号:34181400 阅读:13 留言:0更新日期:2022-07-17 13:11
本发明专利技术公开了一种基于隔离森林的跨项目缺陷预测样本过滤方法及预测方法,包括:提取跨项目软件的缺陷数据集作为源项目数据集并进行数据预处理;采用SMOTE将预处理后的数据平衡化获得平衡数据并划分为正样本数据和负样本数据;构建加权隔离森林并进行样本过滤;将所述过滤后的源数据集输入机器学习算法分类器对所述分类器进行训练,获得缺陷预测模型并将被测软件的目标数据集输入所述缺陷预测模型,获得所述目标数据集的预测结果并采用分类任务的性能评价指标对被测软件进行性能评估;本发明专利技术解决了目前样本过滤方法中强依赖于目标项目、效率低、预测模型性能差的问题,并且实现对软件预测模型的数据选择指导,进而缩短软件开发的周期,节约成本。节约成本。节约成本。

【技术实现步骤摘要】
基于隔离森林的跨项目缺陷预测样本过滤方法及预测方法


[0001]本专利技术涉及软件缺陷预测
,更具体的说是涉及一种基于隔离森林的跨项目缺陷预测样本过滤方法及预测方法。

技术介绍

[0002]近年来,软件缺陷预测已经在软件工程中成为一个活跃的领域。当被测软件没有历史版本或软件历史数据量过少时,采用和被测软件度量元名称和数量一致的其他软件的历史知识(“源数据”)对被测软件(“目标数据”)缺陷情况进行预测,称为“同构跨项目缺陷预测”。预先了解软件的质量状况可以为软件工程相关人员提供一定的指导,使其合理地分配资源,节约成本,提高软件测试效率。
[0003]跨项目缺陷预测的数据样本主要来源于其他项目,因此,对被测软件而言,存在一部分噪声数据,而且,跨项目数据样本有严重的数据不平衡性,即缺陷数据远远少于非缺陷数据。数据样本中存在的噪声和数据不平衡这两个特点都会降低构建的软件跨项目缺陷预测模型的性能,从而导致预测被测软件缺陷不准确。因此,如何对数据进行过滤和筛选是提高跨项目缺陷预测模型性能的关键。
[0004]目前,已经有很多学者提出了不同的同构跨项目数据处理方法,主要可以分为基于样本选择、基于维度转换和改进算法的三类方法。
[0005]基于样本选择的方法有7种:基于k近邻的样本过滤法(Burak Filter,简称BF)、迁移朴素贝叶斯法(TransferBayes,简称TNB)、基于k近邻的混合样本选择方法(Hybrid Instance Selection Using Nearest

Neighbor,HISNN)、基于凝聚聚类的数据过滤方法(data filter by agglomerative clustering,DFAC)、基于选择的层次过滤器(the hierarchical selection

based filter,简称HSBF)、成本感知的监督跨项目缺陷预测(effort

aware supervised cross

project defect prediction,简称EASC)和基于协同过滤的源项目选择(collaborative filtering based source projects selection,简称CFPS);基于维度转换的方法有2种:迁移主成分分析扩展方法(transfer component analysis extension,简称TCA+)和基于双边缘去噪自动编码器的联合特征表示方法(joint feature representation with double marginalized denoising autoencoders,简称DMDA

JFR);基于改进算法的方法主要有3种:朴素领头羊方法(Bellwether,简称BNaive)、迁移主成分分析扩展领头羊方法(Bellwether TCA+,简称BTCA+)和加权朴素贝叶斯领头羊方法(Bellwether TNB,简称BTNB)。
[0006]但是,以上方法大部分是通过样本选择(噪声移除)考虑源项目数据和目标数据的样本之间的相似性或通过特征空间变换来缩小源项目数据和目标数据之间的分布差异。但这些方法都是强依赖于目标数据集的。并且,当源项目数据量很大时,样本选择或特征变换的时间成本很高,如BF、HISNN的计算复杂度为指数级,这就导致构建缺陷预测模型效率较低。并且除DMDA

JFR和领头羊方法外,大部分方法没有利用缺陷标签数据,而这一信息在缺陷预测的模糊边界时很重要,可以提升模型的性能。而模型性能、成本和效率在软件工程师
最为在意的。
[0007]因此,如何提供一种简单、易用、不依赖于目标项目且效率高的跨项目缺陷预测样本过滤方法及预测方法,是本领域技术人员亟需解决的问题。

技术实现思路

[0008]有鉴于此,本专利技术提供了一种基于隔离森林的跨项目缺陷预测样本过滤方法及预测方法,旨在解决软件同构跨项目缺陷预测中数据存在噪声、过度依赖目标数据集且构建模型效率低的问题,能够在删除噪声样本和利用缺陷标签数据的同时,提高软件缺陷预测模型的性能和构建模型的效率。
[0009]为了实现上述目的,本专利技术采用如下技术方案:
[0010]一种基于隔离森林的跨项目缺陷预测样本过滤方法,包括:
[0011]S1.提取同构跨项目软件的数据集作为源项目数据集;
[0012]S2.将所述源项目数据集进行平衡化获得平衡数据;
[0013]S3.将所述平衡数据划分为正样本数据和负样本数据,所述正样本数据为有缺陷的数据,所述负样本为无缺陷的数据;
[0014]S4.分别对所述正样本数据和所述负样本数据构建隔离森林;
[0015]S5.对所述隔离森林进行加权处理并进行样本过滤:计算每个样本数据在隔离树上的加权路径长度,根据所述加权路径长度计算每个样本数据在加权隔离森林的平均加权路径长度,根据所述平均加权路径长度计算每个样本数据的异常值,根据预设的异常比例移除加权隔离森林的异常样本并将剩余的正样本数据和负样本数据合成,获得过滤后的源数据集。
[0016]优选的,S2中对所述源项目数据平衡化前还包括对所述源项目数据集进行数据预处理,所述数据预处理的具体内容包括:
[0017]S21.将所述源项目数据集的数值类型的缺陷标签信息二元化:当缺陷标签大于等于1时,标记为1,表示有缺陷,当缺陷标签为0时,保持不变,表示无缺陷;
[0018]S22.选取所述源项目数据集作为源数据样本;
[0019]S23.剔除重复样本:当所述源数据样本中存在完全一样的样本时,只保留一个样本;
[0020]S24.数据标准化:采用Z

Score标准化技术将去重的源数据样本和目标度量元变为均值为0,方差为1的数据。
[0021]优选的,S3中所述将所述平衡数据划分为正样本数据和负样本数据是根据所述缺陷标签信息进行。
[0022]优选的,S4的具体内容包括:
[0023]S41.分别从所述正样本数据和所述负样本数据中随机选择m个样本作为训练数据集每个样本由特征F组成,所述隔离森林由t棵隔离树组成,iForest={iTree1,iTree2,...,iTree
t
},从X中无替换随机抽样选出子样本X',X'的大小为φ,隔离树的限制高度为h
lim
,h
lim
=ceiling(log2φ);
[0024]S42.初始化iTree:构建一个根节点,所述根节点包含所有的子样本X';
[0025]S43.随机选择所有特征中的一个特征f,f∈F,并随机选择一个划分点p,所述划分
点介于选取特征的最值之间,f
min
≤p≤f
max

[0026]S44.将输入样本在当前根节点的特征f的取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于隔离森林的跨项目缺陷预测样本过滤方法,其特征在于,包括:S1.提取同构跨项目软件的数据集作为源项目数据集;S2.将所述源项目数据集进行平衡化获得平衡数据;S3.将所述平衡数据划分为正样本数据和负样本数据,所述正样本数据为有缺陷的数据,所述负样本为无缺陷的数据;S4.分别对所述正样本数据和所述负样本数据构建隔离森林;S5.对所述隔离森林进行加权处理并进行样本过滤:计算每个样本数据在隔离树上的加权路径长度,根据所述加权路径长度计算每个样本数据在加权隔离森林的平均加权路径长度,根据所述平均加权路径长度计算每个样本数据的异常值,根据预设的异常比例移除加权隔离森林的异常样本并将剩余的正样本数据和负样本数据合成,获得过滤后的源数据集。2.根据权利要求1所述的一种基于隔离森林的跨项目缺陷预测样本过滤方法,其特征在于,S2中对所述源项目数据平衡化前还包括对所述源项目数据集进行数据预处理,所述数据预处理的具体内容包括:S21.将所述源项目数据集的数值类型的缺陷标签信息二元化:当缺陷标签大于等于1时,标记为1,表示有缺陷,当缺陷标签为0时,保持不变,表示无缺陷;S22.选取所述源项目数据集作为源数据样本;S23.剔除重复样本:当所述源数据样本中存在完全一样的样本时,只保留一个样本;S24.数据标准化:采用Z

Score标准化技术将去重的源数据样本和目标度量元变为均值为0,方差为1的数据。3.根据权利要求2所述的一种基于隔离森林的跨项目缺陷预测样本过滤方法,其特征在于,S3中所述将所述平衡数据划分为正样本数据和负样本数据是根据所述缺陷标签信息进行。4.根据权利要求1所述的一种基于隔离森林的跨项目缺陷预测样本过滤方法,其特征在于,S4的具体内容包括:S41.分别从所述正样本数据和所述负样本数据中随机选择m个样本作为训练数据集每个样本由特征F组成,所述隔离森林由t棵隔离树组成,iForest={iTree1,iTree2,...,iTree
t
},从X中无替换随机抽样选出子样本X',X'的大小为φ,隔离树的限制高度为h
lim
,h
lim
=ceiling(log2φ);S42.初始化iTree:构建一个根节点,所述根节点包含所有的子样本X';S43.随机选择所有特征中的一个特征f,f∈F,并随机选择一个划分点p,所述划分点介于选取特征的最值之间,f
min
≤p≤f
max
;S44.将输入样本在当前根节点的特征f的取值与选取的划分点比较,将根节点划分为两个子节点,即:如果f<p,则样本放在左子节点上,如果f≥p,则样本放在右子节点上;S45.重复S42

【专利技术属性】
技术研发人员:崔灿王世海刘斌路云峰
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1