1.一种基于特征映射和属性转换的软件缺陷预测模型,其特征包括如下步骤:步骤1,利用交叉验证合理划分数据集,对测试所用到的样本集进行采样与归一化预处理,以得到更加平衡的缺陷数据集;
步骤2,应用属性补偿方法解决跨项目间数据分布差异问题,使目标项目的数据分布与源项目的数据分布更加契合;
步骤3,在获取到经过度量补偿技术处理过的样本集后,再利用迁移学习技术最小化源数据与目标数据的数据距离以得到更加相似的数据分布;
步骤4,根据步骤3得到的训练样本集与测试样本集,利用决策树分类模型对数据进行缺陷分类,根据预测结果进而评估模型的预测性能。
2.如权利要求1所述方法,其特征在于,所述步骤1的具体实现包括如下步骤:步骤1.1,利用loadtxt()文件读取方法对模型性能进行验证所需的数据集进行合理划分,将相应的训练样本集和测试样本集中的度量数据和标签数据读取出来,以”,”为读取分割标识,读取数据的前N列作为度量数据存进x_list列表中,第N+1列的数据即为缺陷数据的标签存进y_list列表中;
步骤1.2,利用离差标准化方法对经过标准化操作的数进行归一化,将标准化后的数据转换到[0,1]内,得到规范化的训练集数据,从而让各度量属性的数据具有更强的可视化操作;
步骤1.3,利用SMOTE采样方法对训练数据进行过采样,有效缓解缺陷数据的类不平衡问题并提高数据集的训练精度,根据样本不平衡比例设置采样比例以确定采样倍率,对于少数类中的每一个样本,以欧式距离为标准计算它到少数类样本集中所有样本的距离,排序后得到该样本的k近邻进而扩充少数类的样本。
3.如权利要求1所述方法,其特征在于,所述步骤2的具体实现包括如下步骤:步骤2.1,将经预处理后的训练数据样本集以列表的形式存储,针对目标训练集的每一个样例,用原始数据乘以一个权重值,该权重值为训练数据与目标数据均值之比,从而得到新的更适应源数据分布的目标数据集。同理针对源数据集中的所有样例,用目标数据与源数据均值之比作为源数据集为适应目标数据分配的新权重,从而得到一轮属性值转换后的同时适应源与目标数据的数据集,上述源与目标数据转换的计算方式为:其中:
其中source[i,j]表示源项目数据中第i条数据实例的第j个度量值,metric_mean_source表示源项目所有数据实例在第j个度量中的均值;同理,target[i,j]表示目标项目数据中第i条数据实例的第j个度量值,metric_mean_target表示目标项目所有数据实例在第j个度量中的均值;
步骤2.2,用sour1[i,j]表示步骤2.1求解得到的所需新的源数据第i个数据实例中的第j个度量值,用metric_mean_source和metric_mean_target表示再次计算处理过后的源数据与目标数据第j个度量的均值,并对源数据重新做一次类似步骤2.1所做的数据处理,让源数据集针对目标数据的分布做属性值的二次转换,从而进一步提高源数据与目标数据的相似性与契合性,完成新的源与目标数据的二轮度量映射,sour1的计算方式为:sour1[i,j]=(sour1[i,j]*metric_mean_target)/metric_mean_source。
步骤2.3,将经过属性值变换的源数据与目标数据作为新的迁移学习方法的参数传入,从而进行下一步基于特征映射的转换。
4.如权利要求1所述方法,其特征在于,所述步骤3的具体实现包括如下步骤:步骤3.1,利用SSTCA迁移成分分析技术进一步改善训练数据XS和测试数据XT的分布,从而提高缺陷预测模型的鲁棒性,将两个域中的距离利用最大均值差异MMD算法计算,其中MMD(XS,XT)=tr(KL),L是MMD算法引进的矩阵,K是利用核函数映射得到的核矩阵,tr(KL)表示的是对拼接矩阵KL求解得到的矩阵的迹;
步骤3.2,采用核函数将已经量化的距离转化成核函数的学习过程,首先计算自定义的L和H矩阵,其中定义 这里的H是一个中心矩阵,n1,n2为源域Xsrc和目标域Xtar的实例个数,xi,xj表示域中的样本数据,进而计算求得核矩阵K;
‑1
步骤3.3,利用步骤3.2计算出的核矩阵K,进而求解(KLK+μI) KHK前m个特征值,同前文提及,L是MMD算法引进的矩阵,K是利用核函数映射得到的核矩阵,H是中心矩阵,μ为引进的参数,I为算法中引进的中间矩阵;利用SSTCA算法计算降维后的矩阵,传入源域XS和目标域XT,以及降维后希望的数据维度dim,得到的新的源数据特征和新的目标数据特征,即源域与数据域的降维后的结果,其中X的行数为原始数据的特征数,列为总的特征数。
5.如权利要求1所述方法,其特征在于,所述步骤4的具体实现包括如下步骤:步骤4.1,对于训练样本集,经过上述属性转换和迁移成分分析操作处理后,得到分布相似且维度降低的缺陷数据,创建相应的决策树分类器对象,利用决策树分类器对目标数据集进行缺陷数据的类别预测;
步骤4.2,对同一目标数据的预测结果由多个不同训练数据训练出来的模型综合决定,对于一个选定的目标数据,用多个不同的训练数据集训练出若干个预测性能不同的分类模型,最后根据多个模型的预测结果的均值作为目标数据的最终预测值。