欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017114175946
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于协同迁移的软件缺陷预测方法,其特征在于:所述方法包括以下步骤:

1)通过四种不同的标准化方法与TCA迁移学习方法同时结合,将原源项目数据集扩充进四个的新的同等规模源项目数据集,过程如下:

1.1)首先,将目标项目中已知类标的样本根据类标等分为两部分:目标训练集和目标测试集,其中要求两者的同类标样本数相同且都必须含有有缺陷样本,目标项目中其他无类标的样本作为目标待测样本;

1.2)对于当前所有与目标项目相关的源数据集,结合目标测试集进行标准化处理,采用4种标准化处理方法:第一种方法为最大最小标准化,计算方法如下:

第二种方法为基于源项目和目标项目共同的平均值与标准差的Z-score标准化,计算方法如下:第三种方法为基于源项目平均值与标准差的Z-score标准化,计算方法如下:第四种方法为基于目标项目平均值与标准差的Z-score标准化,计算方法如下:其中,x代表源项目与目标训练集合并后的数据集中某一维特征的向量表达,xi代表x中第i个样本的值,min()为取最小值,max()为取最大值,mean()为取平均值,std()为取标准差,xi'为xi经标准化处理后的值;

1.3)调用TCA算法分别对经上述4种标准化处理后的源项目数据集和处理前的原源项目数据集针对各自对应的目标测试集进行迁移学习,得到新的源项目数据集和目标测试集;

2)利用基于协同迁移的软件缺陷预测算法对目标项目构建协同分类器,过程如下:

2.1)对每一个扩充后数据集中的源项目数据集和目标训练集利用机器学习中的决策树算法分别生成一个子分类器,所述策树算法选用WEKA中的J48算法;

2.2)结合协同分类器的性能,为每个子分类器进行自适应权重分配;

3)对目标项目中新的待预测样本进行缺陷预测,过程如下:

3.1)对新的样本进行预处理,预处理由四种标准化方法和TCA迁移学习组成;

3.2)调用训练好的协同分类器对预处理后的每个新样本进行分类,预测其是否含有缺陷。

2.如权利要求1所述的基于协同迁移的软件缺陷预测方法,其特征在于:所述步骤1.3)的过程如下:

1.3.1)确定TCA迁移后得到的数据集重表达特征维数,即潜在特征空间的维数,将其设置为原来的一半;

1.3.2)根据所设置的潜在空间维数,借助高斯核函数确定一种转换关系,使得源项目数据集和目标数据集从原特征空间转换到潜在特征空间后,两者最大均值差异最小,最大均值差异计算方式为:其中src为源项目数据集,tar为目标项目数据集,n1为源项目数据集样本数,n2为目标项目数据集样本数,srci为源项目中第i个样本,tari为目标项目中第i个样本;

1.3.3)将原N个源项目数据集和1个目标测试集扩充为5*N个源项目数据集和相对应的

4*N+1个目标测试集。

3.如权利要求1或2所述的基于协同迁移的软件缺陷预测方法,其特征在于:所述步骤

2.2)的过程如下:

2.2.1)首先对协同分类器和评价其优劣的指标F-meaure进行定义:定义1:将所有子分类器根据各自贡献有侧重地进行结合后得到的分类器为协同分类器,协同分类器对于一个新样本j通过以下方式进行分类:其中Scorei(j)表示每一个子分类器Ci给出的置信度,即该样本j为有缺陷样本的可能性,置信度的区间为0到1之间,wi为每个子分类器的权重,用来表示该子分类器对于协同分类器的贡献大小,M为子分类器的个数,threshold为判断该样本是否含有缺陷的置信度阈值,所有子分类器的加权置信度之和Comp(j)若大于该阈值则将该样本分类为有缺陷,否则为无缺陷的;

定义2:对于自适应权重分配这一优化过程,将F-measure作为目标函数,其计算方法为:F=(2×P×R)/(P+R)  (8)

P=TP/(TP+FP)  (9)

R=TP/(TP+FN)  (10)

其中,TP为真正样本数,代表预测为有缺陷的样本中真的含有缺陷的样本数;FP为假正样本数,代表预测为有缺陷的样本中实际上不含缺陷的样本数;FN为假反样本数,代表预测为无缺陷的样本中实际上含有去缺陷的样本数;在此基础上可以计算出,P为分类的准确率,指预测为有缺陷的样本中真实为有缺陷的样本比例,该值越高代表分类器越准;R为分类的召回率,指真实为有缺陷的样本中被预测为有缺陷的样本比例;F-measure为准确率和召回率的调和平均值;

2.2.2)在对子分类器进行权重自适应分配时采用了PSO算法,为所有子分类器分配了一系列权重(w1,w2,..,wn)和一个缺陷判别阈值threshold,首先设置粒子群规模以及最大迭代数,然后根据粒子群规模随机生成一系列粒子进行粒子群初始化;权重和阈值的一个组合为一个解,所有解组成的解集被表示为一个搜索空间中的粒子群;一个粒子所在的位置由一系列坐标值描述,每个值代表了一个解的一部分,即权重值或阈值;

2.2.3)计算每一个粒子的适应度,适应度为利用该组权重和阈值组成的协同分类器对目标测试集的预测效果,用F-measure表示;

2.2.4)然后根据该粒子经历过的最好位置以及整个粒子群所经历过的最好位置,即所得F-measure最大时的权重分配和阈值设置,来更新该粒子的位置和速度,速度表示该粒子移动的距离和方向;

2.2.5)返回步骤2.2.3)进行迭代,直到最大迭代数,输出粒子群中得到最大F-measure值的粒子位置,作为最优的权重和阈值;

2.2.6)根据最优的权重和阈值,将所有子分类器共同构建成一个最终的协同分类器。