预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114297054A(43)申请公布日2022.04.08(21)申请号202111553410.5(22)申请日2021.12.17(71)申请人北京交通大学地址100044北京市海淀区西直门外上园村3号(72)发明人王诗涵景驰原童浩楠(74)专利代理机构北京市商泰律师事务所11255代理人黄晓军(51)Int.Cl.G06F11/36(2006.01)G06K9/62(2022.01)权利要求书2页说明书15页附图1页(54)发明名称一种基于子空间混合抽样的软件缺陷数目预测方法(57)摘要本发明提供了一种基于子空间混合抽样的软件缺陷数目预测方法。该方法包括:基于历史缺陷数据集通过子空间混合抽样生成缺陷预测模型;对测试样本进行预处理;将预处理后的软件样本输入到所述缺陷预测模型,所述缺陷预测模型输出所述软件样本的缺陷数目。本发明通过构造多个特征子空间,实现了子模型的多样性,进而保证后续集成学习的性能。本发明实施例所提出的子空间混合抽样集成算法既避免了欠抽样方法导致的过多有价值正样本被丢弃的问题,又避免了过抽样方法因引入过多噪声数据而降低模型性能的问题。CN114297054ACN114297054A权利要求书1/2页1.一种基于子空间混合抽样的软件缺陷数目预测方法,其特征在于,包括:基于历史缺陷数据集通过子空间混合抽样生成缺陷预测模型;对待预测的软件测试样本进行预处理,将预处理后的软件测试样本输入到所述缺陷预测模型,所述缺陷预测模型输出所述软件测试样本的缺陷数目。2.根据权利要求1所述的方法,其特征在于,所述的基于历史缺陷数据集通过子空间混合抽样生成缺陷预测模型,包括:获取缺陷数目数据集后,对缺陷数目数据集进行预处理,使用k折交叉验证将预处理后的缺陷数目数据集划分为两部分:训练数据和测试数据;从所述训练数据集中随机抽取若干个子集,通过子空间混合抽样集成算法在每个子集上分别训练一个回归模型,根据训练误差为每个回归模型分配相应的权重,通过加权集成把所有回归模型组合在一起,构成缺陷预测模型。3.根据权利要求2所述的方法,其特征在于,所述的预处理包括用均值替代缺失值、剔除重复样本、剔除不一致样本和剔除代码行数LOC为零的样本。4.根据权利要求2所述的方法,其特征在于,所述的从所述训练数据集中随机抽取若干个子集,通过子空间混合抽样集成算法在每个子集上分别训练一个回归模型,包括:n*(d+1)假设有标签的训练数据表示为Dtr∈R,设定最大循环次数,每次循环,在原始训练数据Dtr上通过特征随机抽样构造一个子集在子集上执行欠抽样算法,剔除部分冗余的无缺陷样本并记剩余的样本为数据集在数据集上执行过抽样算法并记平衡后的样本集为在上训练一个回归模型,计算回归模型的均方根误差,重复以上过程,直到循环次数达到最大循环次数,得到训练好的子集和所述子集对应的回归模型hi(x);在原始训练数据Dtr上通过特征随机抽样构造另一个子集,按照上述子集的训练过程对所述另一个子集进行训练,得到训练好的另一个子集和另一个子集对应的回归模型;重复执行上述处理过程,得到训练好的各个子集和每个子集对应的回归模型。5.根据权利要求2所述的方法,其特征在于,所述的根据训练误差为每个回归模型分配相应的权重,通过加权集成把所有回归模型组合在一起,构成缺陷预测模型,包括:计算出每个子集对应的回归模型的拟合性能,根据各个回归模型的拟合性能分别给各个回归模型分配对应的权重,根据各个回归模型对应的权重通过加权的方法将各个回归模型进行集成,得到缺陷预测模型;假设第i个子模型的拟合性能为RMSEi,定义子模型hi(x)的权重为:6.根据权利要求1至5任一项所述的方法,其特征在于,所述的对待预测的软件测试样本进行预处理,将预处理后的软件测试样本输入到所述缺陷预测模型,所述缺陷预测模型输出所述软件测试样本的缺陷数目,包括:给定一个待预测的软件测试样本后,先对所述软件测试样本进行预处理,该预处理包括:当用预测模型中的每一个子模型对该软件测试样本中的缺陷数目进行预测时,首先利2CN114297054A权利要求书2/2页用变量idxSelFea查询训练该子模型的训练子集特征在原始训练集中的索引,从而对该测试样本的特征进行裁剪,仅保留变量ideSelFea对应的特征,使得软件测试样本的特征跟当前子模型的特征是相同的;将预处理后的软件测试样本输入到缺陷预测模型,缺陷预测模型输出该软件测试样本的缺陷数目;假设第i个子模型为hi(x),其权重为wi,则该软件测试样本的缺陷数目由下式得到:式中:函数round()表示四舍五入;式中:K表示循环次数,xj表示第j个测试样本的特征值;表示模型预测得到的第j个软件样本的缺陷数目。3CN11429