1.一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,在构建决策树的分类阶段以及形成的随机森林模型的投票分类阶段,分别引入根据不同对象定义的代价敏感因子,训练出基于代价敏感的改进随机森林模型cost‑RF,然后利用该模型对软件缺陷进行预测,训练cost‑RF模型并进行软件缺陷预测的具体步骤如下:S1.从NASA MDP获取公开的软件缺陷预测真实数据集Data进行数据预处理,产生预处理后的数据集Data′;
S2.根据Data′的大小,将其按照自定义比例随机划分为训练数据集TrainD和测试数据集TestD;
S3.利用Bagging技术,对训练数据集TrainD进行数据扰动,有放回的随机抽取训练数据集TrainD中的样本,将抽取的样本作为训练ID3决策树的训练集TrainD_train,剩下的样本则作为训练集中的测试集TrainD_test;
S4.引入属性扰动,在TrainD_train上进行属性扰动,生成属性扰动后的TrainD_trainM;
S5.使用TrainD_trainM,采用二元切分法,构建ID3决策树;
S6.在ID3决策树中,引入与Data′中不同类别数量相关的代价敏感因子Acost,判断每个样本是否是缺陷模块;
代价敏感因子Acost的公式为:
Acost=(numx+1)/(numy+1)×η±λ (1)其中,numy是Data′中真实缺陷样本的数量,numx是Data′中真实非缺陷样本的数量,η、λ是辅助参数;
S7.设置最佳模型判别标值,利用TrainD_test筛选整体性能较优的ID3决策树;
S8.引入二次筛选ID3决策树的条件和森林中对ID3决策树的数量限制,构建随机森林;
S9.引入受限于随机森林中对样本预测结果不同的决策树数量和Data′中不同类别的样本数量的代价敏感因子Bcost,判断每个样本是否是缺陷模块;
代价敏感因子Bcost的公式为:
其中,treesx是将样本预测为非缺陷类别的ID3决策树的数量,treesy是将样本预测为缺陷类别的ID3决策树的数量,tx为Data′中真实非缺陷样本的数量,ty为Data′中真实缺陷样本的数量,η、λ、γ为辅助参数;
S10.使用随机森林对TestD中的样本进行预测,判断每个样本是否是缺陷模块。
2.根据权利要求1所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S1中,数据预处理包括:删除重复和矛盾数据,采用缺失值所在列的中位数赋值处理某条合理数据的缺失值,赋值处理的具体公式为:其中,n为数据集Data中的样本总数,dpn/2j为第n/2个样本的第j个属性,dpn+1/2j为第n+1/2个样本的第j个属性。
3.根据权利要求2所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S7中,最佳模型判别标值根据错误率、召回率、精准率指标的自定义取值设置。
4.根据权利要求2所述的一种基于代价敏感与随机森林的软件缺陷预测方法,其特征在于,所述步骤S8中,二次筛选ID3决策树的条件为:错误率 召回率 和精准率 其中,numTrees
为构建的ID3决策树数量;森林中对ID3决策树的数量numF限制条件为:numTrees为用户指定构建的决策树数量。