当前位置: 首页 > 专利查询>燕山大学专利>正文

一种基于主成分分析和组合采样的软件缺陷预测方法技术

技术编号:21453811 阅读:46 留言:0更新日期:2019-06-26 04:44
本发明专利技术公开了一种基于主成分分析和组合采样的软件缺陷预测方法,包括如下步骤:步骤S1:对软件缺陷数据利用融合特征选择降维去噪;步骤S2:对降维后的数据执行SMOTE过采样和分层随机采样相结合进行采样,其中过采样是指通过增加少数类样本的数量,从而使得数据集中类样本达到相对平衡,分层随机采样通过划分类进行分层,在每层内采用无放回随机采样;步骤S3:对处理后的数据选取分类器并对分类器参数进行调优。本发明专利技术选择随机森林分类器,其随机选择特征子集的特性,从而进一步达到对树的随机化目的,避免了分类器过拟合问题的出现,最终提升了软件缺陷预测性能以及预测效率,为现实中预测有缺陷软件提供了良好的理论和实验依据。

【技术实现步骤摘要】
一种基于主成分分析和组合采样的软件缺陷预测方法
本专利技术涉及缺陷预测方法,尤其涉及到一种基于主成分分析和组合采样的软件缺陷预测方法。
技术介绍
随着互联网技术的发展,软件产品质量的可靠性已成为软件工程领域的关注性问题,在软件开发的过程中必然会伴随着软件缺陷的出现。然而,对于本身具有潜在威胁的软件,一旦投入使用就会对公司乃至个人造成巨大的经济损失。为了有效解决这一问题,必须准确快速的预测软件可能存在的缺陷模块,从而提高软件系统的可靠性。目前,相关的软件缺陷预测方法主要是利用不同类型的机器学习技术。其主要考虑的是整体数据的预测准确率,虽然在此方面取得了较大的成就,但在数据预处理方面还存在很多需要改善的地方。现有技术中已有采用公开的NASA数据集对RandomForest,NaiveBayes,RPart以及SVM分类算法进行了灵敏度分析,表明不同的分类器针对不同数据集预测能力具有不确定性。考虑到这种不确定性,现有技术提出了一种新的贝叶斯组合模型,通过不断调整基模型的信用值来预测QoS,从而达到良好的预测精度。然而,这些研究并没有考虑到软件缺陷预测中的数据高维性和数据分布不均衡,缺陷类样本数通常比无缺陷类样本数高很多,导致作为多类的无缺陷样本特征掩盖少类的缺陷样本特征,使得虽整体准确率很高但针对缺陷类样本的预测性能较差;误分代价差异较大,将有缺陷倾向的模块标记为无缺陷倾向模块后,需要花费很高的代价进行更正等问题。尤其是针对少数类而言,不平衡分布使得某些机器学习方法表现效果不佳。为了解决这一问题,目前在数据层面,采用特征选择或特征提取,采样技术应用于数据集。特征选择或特征提取主要用于解决数据高维性问题,而采样方法通常是采用给少类样本随机加入高斯噪声或合成新的少类样本的方法来解决数据类不平衡问题。关于软件缺陷预测以前的研究表明,特征选择和特征提取方法确实有助于解决数据高维性这一问题。
技术实现思路
为了能够在软件开发过程中及时准确地预测有缺陷的软件模块,提高软件测试资源的有效分配,针对软件缺陷预测中的数据类不平衡性和高维性问题,本专利技术的目的在于提供一种基于主成分分析和组合采样的软件缺陷预测方法,本专利技术首先通过对数据利用融合特征选择技术去除数据中无关和冗余特征以解决数据集中维度灾难问题。进而,执行SMOTE(SyntheticMinorityOversamplingTechnique)过采样和无放回分层随机采样方法结合来解决由于缺陷类样本数量过少,使得数据类分布不均衡而且缺陷样本信息过于缺乏,致使最终将有缺陷模块被错误预测为无缺陷模块等问题,同时通对采样率的设定在降低损失代价的同时也提高了软件缺陷预测效率。为实现上述目的,本专利技术是根据以下技术方案实现的:一种基于主成分分析和组合采样的软件缺陷预测方法,其特征在于,包括如下步骤:步骤S1:对软件缺陷数据利用融合特征选择降维去噪;步骤S2:对降维后的数据执行SMOTE过采样和分层随机采样相结合进行采样,其中过采样是指通过增加少数类样本的数量,从而使得数据集中类样本达到相对平衡,分层随机采样通过划分类进行分层,在每层内采用无放回随机采样;步骤S3:对处理后的数据选取分类器并对分类器参数进行调优。上述技术方案中,步骤S1利用主成分分析法去除软件缺陷数据集中无关和冗余属性进行降维去噪,其中,主成分分析方法将m维特征通过线性变换映射到新的d维正交特征上,其中d<m,同时保留原始特征的绝大部分信息,并将重新构造出来的d维特征称为主元,从而使得数据由原来的m个特征降低到d个特征,具体包括如下步骤:步骤S101:将软件缺陷数据集以矩阵Xn×m形式输入Xm×n,其中矩阵的行数n表示软件缺陷数据集中样本的个数,列数m表示每个样本的特征数目;步骤S102:按列计算矩阵Xn×m的均值,从而得到均值矩阵并将矩阵Xn×m中的每一行元素均减去得到进行中心化的样本Hn×m;步骤S103:计算中心化后样本Hn×m的协方差矩阵HHT,并对协方差矩阵进行特征值分解,求得对应的m个特征向量ω,然后将m个特征值λ进行降序排序,排序结果为λ1≥λ2≥...≥λm,最后,通过计算贡献率并为其设定一个阈值为0.95,确定满足贡献率不小于此阈值的d值,取最大的d个特征值所对应的特征向量ω1,ω2,...,ωd,从而得到投影矩阵W*=(ω1,ω2,...,ωd),其中d为通过主成分分析法进行降维后的维度。上述技术方案中,所述分层随机采样采用无放回的随机采样,通过对无放回分层随机采样中采样率的调整使得子样本在保证类别分布不变的同时也减少了样本数量,从而克服SMOTE算法中训练模型效率降低,相应提高预测准确率。上述技术方案中,步骤S2具体包括:对数据采用SMOTE算法合成少类样本,其中参数k表示在合成少类样本时,需从与当前所选样本距离相对较近的k少类样本中随机选取一个样本来进行新样本的合成,其中k的值为weka中的默认值5,采样倍率设为100%,不断进行迭代,直至有无缺陷样本达到相对平衡;对相对平衡后的数据集进行无放回分层采样,采样率的设定为[0.1,1.0],步长为0.1,采样率为0.8。上述技术方案中,所述步骤S3采用经过网格搜索算法调参的随机森林分类器进行分类,具体包括如下步骤:步骤S301:需要对随机森林分类器的两个参数决策树数目以及分裂属性数设定相应的范围和步长,并分别以这两个参数作为横纵坐标轴,建立二维坐标系,通过在坐标系中不断取点得到二维网格;步骤S302:将网格中节点的每一数对分别作为参数的取值构建随机森林,并采用交叉验证估计分类误差;步骤S303:选择分类误差最小的最优参数组合,直至分类误差或者步长满足要求为止,输出此组合,否则,尝试缩短步长,重复步骤S301。本专利技术与现有技术相比,具有如下优点:本专利技术从数据本身出发,从源头分析了目前软件缺陷预面临的问题。将特征选择和组合采样方法完美的结合在一起,在提高缺陷模块预测准确性的同时,提高了预测效率。为企业软件质量的的测试提供了良好的理论依据。本专利技术提出的SMOTE算法和无放回分层随机采样的方法,既解决了数据类不平衡问题又保证了样本类间的原始结构,更具有实际意义。本专利技术在考虑程序运行时间的前提下,运用网格搜索算法对分类器参数进行调优,选出兼顾效率和性能的最优参数组合,同时降低手动调参所造成的组合遗漏问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1为本专利技术利用主成分分析法进行降维去噪的流程示意图;图2为PCS-RF软件缺陷预测模型的具体流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。本专利技术的一种基于融合特征选择和组合采样的软件缺陷预测方法,包括如下步骤:步骤S1:对软件缺陷数据利用融合特征选择降维去噪;步骤S2:对降维后的数据执行SMOTE过采样和分层随机采样相结合本文档来自技高网
...

【技术保护点】
1.一种基于主成分分析和组合采样的软件缺陷预测方法,其特征在于,包括如下步骤:步骤S1:对软件缺陷数据利用融合特征选择降维去噪;步骤S2:对降维后的数据执行SMOTE过采样和分层随机采样相结合进行采样,其中过采样是指通过增加少数类样本的数量,从而使得数据集中类样本达到相对平衡,分层随机采样通过划分类进行分层,在每层内采用无放回随机采样;步骤S3:对处理后的数据选取分类器并对分类器参数进行调优。

【技术特征摘要】
1.一种基于主成分分析和组合采样的软件缺陷预测方法,其特征在于,包括如下步骤:步骤S1:对软件缺陷数据利用融合特征选择降维去噪;步骤S2:对降维后的数据执行SMOTE过采样和分层随机采样相结合进行采样,其中过采样是指通过增加少数类样本的数量,从而使得数据集中类样本达到相对平衡,分层随机采样通过划分类进行分层,在每层内采用无放回随机采样;步骤S3:对处理后的数据选取分类器并对分类器参数进行调优。2.根据权利要求1所述的软件缺陷预测方法,其特征在于,步骤S1利用主成分分析法去除软件缺陷数据集中无关和冗余属性进行降维去噪,其中,主成分分析方法将m维特征通过线性变换映射到新的d维正交特征上,其中d<m,同时保留原始特征的绝大部分信息,并将重新构造出来的d维特征称为主元,从而使得数据由原来的m个特征降低到d个特征,具体包括如下步骤:步骤S101:将软件缺陷数据集以矩阵Xn×m形式输入Xm×n,其中矩阵的行数n表示软件缺陷数据集中样本的个数,列数m表示每个样本的特征数目;步骤S102:按列计算矩阵Xn×m的均值,从而得到均值矩阵并将矩阵Xn×m中的每一行元素均减去得到进行中心化的样本Hn×m;步骤S103:计算中心化后样本Hn×m的协方差矩阵HHT,并对协方差矩阵进行特征值分解,求得对应的m个特征向量ω,然后将m个特征值λ进行降序排序,排序结果为λ1≥λ2≥...≥λm,最后,通过计算贡献率并为其设定一个阈值为0.95,确定满足贡献率不小于此阈值的d值,取最大的d个特征值所对应的特征向量ω1,ω2...

【专利技术属性】
技术研发人员:何海涛任家东张旭胡昌振
申请(专利权)人:燕山大学
类型:发明
国别省市:河北,13

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

1