System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 加权Stacking的即时软件缺陷预测方法及系统技术方案_技高网

加权Stacking的即时软件缺陷预测方法及系统技术方案

技术编号:39948791 阅读:6 留言:0更新日期:2024-01-08 23:08
本发明专利技术公开了加权Stacking的即时软件缺陷预测方法及系统,涉及软件缺陷技术领域,包括对原始缺陷数据集进行概率随机特征选择得到特征子集F<subgt;n</subgt;;利用不同的特征变换策略,对各个特征子集中的原始的特征数据进行缩放,并建立分类器;构建初级分类器,构建次级分类器LR,根据分类器求得新的训练集和测试集;将LR在新的测试集上的预测结果和测试集对应的标签对比计算,得到集成模型的各种评价指标得分。本发明专利技术改进传统的Stacking模型,给初级分类器分配了权重,减少数据集分配不均带来的差异性,并且对数据进行变换策略,有效防止特征量级的差异影响模型内部处理。

【技术实现步骤摘要】

本专利技术涉及软件缺陷,特别是加权stacking的即时软件缺陷预测方法及系统。


技术介绍

1、随着软件规模的不断增加和软件结构的日益复杂,软件缺陷的存在已成为一个不可避免的事实。软件缺陷不仅阻碍了软件的应用和开发,还造成了巨大的经济损失。因此,迫切需要一种有效的软件缺陷预测模型。传统的缺陷预测技术主要基于对文件、模块或软件包等粗粒度软件实体的分析,这需要花费大量的时间和精力。因此,出现了一种新的软件缺陷预测技术—即时软件缺陷预测。即时软件缺陷预测技术可以认为是一项分类任务,包括根据历史数据和软件度量或特征,将软件模块分类为缺陷或无效。软件特性或度量反映了软件模块的特性。

2、然而,不管是传统软件缺陷预测还是即时软件缺陷预测,模型预测的准确性均受到数据集类别不平衡的影响。软件工程领域20%的缺陷可能存在于80%的模块中。在多数情况下不会引起缺陷的代码更改占比更大,因此数据集中存在不平衡率,即少数和多数类别之间的失衡,会影响模型的分类预测效果。大多数类,即不会产生缺陷的代码更改会使模型具有虚高的预测准确率,难以在实际应用中获得预期的结果。并且缺陷数据集经过数据处理和特征工程后会产生很多特征,使得特征空间会变得非常大,而且存在很多冗余特征,也会影响模型预测准确率。


技术实现思路

1、鉴于上述存在的问题,提出了本专利技术。

2、因此,本专利技术所要解决的问题在于,现有方法中对于即时软件缺陷预测存在虚高的预测准确率的现象,难以在实际应用中获得预期的结果。

>3、为解决上述技术问题,本专利技术提供如下技术方案:加权stacking的即时软件缺陷预测方法,其包括,对原始缺陷数据集进行概率随机特征选择,给定概率p,每个初级模型根据概率百分比随机选取特征子集fn;利用不同的特征变换策略,对各个特征子集中的原始的特征数据进行缩放,分别在不同特征变换策略的基础上建立分类器;构建初级分类器,将数据集x分为训练集xtrain和对应的标签ytrain以及测试集xtest和对应的标签ytest;构建次级分类器lr,合并每个初级分类器对训练集xtrain的预测结果作为x′train输入到lr中,同时根据初级分类器在训练集上的测试精度对测试集xtest的预测结果进行加权平均形成x′test输入到lr中,求得新的训练集x″train和测试集x″test;将lr在测试集x″test上的预测结果y″test和ytest对比计算,得到集成模型的各种评价指标得分。

4、作为本专利技术所述加权stacking的即时软件缺陷预测方法的一种优选方案,其中:所述建立分类器包括,在minmax策略上建立随机森林rf分类器得到分类器m-rf,在z-score策略上建立lightgbmf分类器得到分类器z-lgbm,在robust策略上建立adaboost分类器得到分类器r-ada;所述初级分类器包括,将m-rf分类器、z-lgbm分类器和r-ada分类器结合构建初级分类器;所述求得新的训练集x″train和测试集x″test包括,对次级分类器lr的输入特征x′train和x′test进行特征多项式扩展,扩充特征维数,将数据映射到更高维的空间,增大模型对数据的适应范围,得到新的训练集x″train和测试集x″test。

5、作为本专利技术所述加权stacking的即时软件缺陷预测方法的一种优选方案,其中:所述给定概率p选取为0.9;所述特征子集fn表示为,fn=[f1,f2,f3,...,fn],其中n为特征个数;所述随机选取包括,每个初级模型选择特征子集之前,先打乱全部特征的顺序,模型从第一个特征开始选取90%的特征作为入模特征。

6、作为本专利技术所述加权stacking的即时软件缺陷预测方法的一种优选方案,其中:所述分类器m-rf包括,将训练集xtrain划分成五等份,

7、{xtrain_1,xtrain_2,xtrain_3,xtrain_4,xtrain_5}

8、对应的训练集标签也分为5份,

9、{ytrain_1,ytrain_2,ytrain_3,ytrain_4,ytrain_5}

10、测试集为xtest,将第i个训练集作为验证集,其余4份作为训练集训练rf分类器,训练好m-rf后,将xtrain_i输入到m-rf中得到预测结果y1i,验证集的真实标签为ytrain_i,计算y1i和ytrain_i的均方误差msei;将xtest输入到m-rf中得到预测结果y′1i,直到i>5结束训练;训练结束后,得到验证集预测结果集合{y11,y12,y13,y14,y15},合成一列得到m-rf在训练集上的预测结果y1;m-rf在验证集的均方误差集合mse表示为,

11、mse={mse1,mse2,mse3,mse4,mse5}

12、依据均方误差给m-rf分配权重,误差越大,权重越低,所述权重wi计算公式表示为,

13、

14、得到每次训练后m-rf的权重,对测试集的预测集合{y′11,y′12,y′13,y′14,y′15}进行加权求和得到最终结果表示为,

15、

16、作为本专利技术所述加权stacking的即时软件缺陷预测方法的一种优选方案,其中:所述分类器z-lgbm包括,将训练集xtrain划分成五等份,

17、{xtrain_1,xtrain_2,xtrain_3,xtrain_4,xtrain_5}

18、对应的训练集标签也分为5份{ytrain_1,ytrain_2,ytrain_3,ytrain_4,ytrain_5},测试集为xtest,将第i个训练集作为验证集,其余4份作为训练集训练rf分类器,训练好z-lgbm后,将xtrain_i输入到z-lgbm中得到预测结果y2i,验证集的真实标签为ytrain_i,计算y2i和ytrain_i的均方误差msei;将xtest输入到m-rf中得到预测结果y′2i,直到i>5结束训练;训练结束后,得到验证集预测结果集合{y21,y22,y23,y24,y25},合成一列得到z-lgbm在训练集上的预测结果y2;z-lgbm在验证集的均方误差集合为mse={mse1,mse2,mse3,mse4,mse5},依据均方误差给z-lgbm分配权重,得到每次训练后z-lgbm的权重,对测试集的预测集合{y′21,y′22,y′23,y′24,y′25}进行加权求和得到最终结果表示为,

19、

20、作为本专利技术所述加权stacking的即时软件缺陷预测方法的一种优选方案,其中:所述分类器r-ada包括,将训练集xtrain划分成五等份,

21、{xtrain_1,xtrain_2,xtrain_3,xtrain_4,xtrain_5}

22、对应的训练集标签也分为5份{ytrain_1,ytrain_2,ytrain_3,ytrain_4,ytrain_5},测本文档来自技高网...

【技术保护点】

1.加权Stacking的即时软件缺陷预测方法,其特征在于:包括,

2.如权利要求1所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述建立分类器包括,在MinMax策略上建立随机森林RF分类器得到分类器M-RF,在Z-Score策略上建立LightGBMF分类器得到分类器Z-LGBM,在Robust策略上建立AdaBoost分类器得到分类器R-Ada;

3.如权利要求2所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述给定概率p选取为0.9;所述特征子集Fn表示为,Fn=[f1,f2,f3,...,fn],其中n为特征个数;所述随机选取包括,每个初级模型选择特征子集之前,先打乱全部特征的顺序,模型从第一个特征开始选取90%的特征作为入模特征。

4.如权利要求3所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述分类器M-RF包括,将训练集Xtrain划分成五等份,

5.如权利要求4所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述分类器Z-LGBM包括,将训练集Xtrain划分成五等份,

6.如权利要求5所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述分类器R-Ada包括,将训练集Xtrain划分成五等份,

7.如权利要求6所述的加权Stacking的即时软件缺陷预测方法,其特征在于:所述X’train和X’test包括,将M-RF、Z-LGBM和R-Ada三个分类器在训练集上的预测结果整合在一起,形成X′train={Y1,Y2,Y3};将M-RF、Z-LGBM和R-Ada三个分类器在测试集上的预测结果整合在一起,形成X′test={Y1′,Y′2,Y′3};

8.一种采用如权利要求1~7任一所述的加权Stacking的即时软件缺陷预测方法的系统,其特征在于:包括特征获取模块、分类器构建模块和评价指标模块;

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的加权Stacking的即时软件缺陷预测方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的加权Stacking的即时软件缺陷预测方法的步骤。

...

【技术特征摘要】

1.加权stacking的即时软件缺陷预测方法,其特征在于:包括,

2.如权利要求1所述的加权stacking的即时软件缺陷预测方法,其特征在于:所述建立分类器包括,在minmax策略上建立随机森林rf分类器得到分类器m-rf,在z-score策略上建立lightgbmf分类器得到分类器z-lgbm,在robust策略上建立adaboost分类器得到分类器r-ada;

3.如权利要求2所述的加权stacking的即时软件缺陷预测方法,其特征在于:所述给定概率p选取为0.9;所述特征子集fn表示为,fn=[f1,f2,f3,...,fn],其中n为特征个数;所述随机选取包括,每个初级模型选择特征子集之前,先打乱全部特征的顺序,模型从第一个特征开始选取90%的特征作为入模特征。

4.如权利要求3所述的加权stacking的即时软件缺陷预测方法,其特征在于:所述分类器m-rf包括,将训练集xtrain划分成五等份,

5.如权利要求4所述的加权stacking的即时软件缺陷预测方法,其特征在于:所述分类器z-lgbm包括,将训练集xtrain划分成五等份,

6.如权利要求5所述的...

【专利技术属性】
技术研发人员:陈丽琼张庆庆孙怀英虞才珠
申请(专利权)人:上海应用技术大学
类型:发明
国别省市:

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

1