论文部分内容阅读
随着计算机技术的发展,软件在人们的生活和工作中应用越来越普遍,软件系统的规模和复杂度也在日益增大,但能够保证软件质量的软件缺陷预测技术却发展的比较缓慢,软件缺陷预测技术在很大程度上限制了软件应用系统的发展,因而提高软件缺陷预测模型的预测精度是发展软件系统必不可少的重要一环。由于缺陷数据的不平衡性,在建立软件缺陷预测模型时,需要考虑数据集的不平衡问题,而现有的软件缺陷预测模型大多对缺陷数据没有针对性的进行处理,然而高风险模块被错分的代价要远远大于低风险模块被错分的代价。本文在建立软件缺陷预测模型时,首先针对高风险模块的样本也叫正类样本提出了一种基于边界样本过采样的不平衡数据分类算法B-oversampling,该方法是针对正类中容易被错分的边界样本进行过采样。B-oversampling方法使用两类之间的距离确定正类样本的边界样本,并重点在边界样本处使用样本的定义域合成新的正类样本,使其基本与低风险模块样本也叫负类样本的数量持平。这样不但能够增大正类样本的数目,而且能够最大限度的扩展正类的边界,提高正类样本的辨识率。然后又针对负类样本提出一种基于安全样本欠采样的不平衡数据方法,SENN-Bagging方法使用聚类一致性系数确定负类的边界样本和安全样本,在此基础上,使用SENN欠采样规则对安全样本进行欠采样,同时使用Bagging算法来对欠采样后的数据进行分类。SENN-Bagging方法在减少多数类样本同时,可以减少多数类样本重要信息的丢失。在上述两种方法的基础上,建立了基于集成分类器的缺陷预测模型BS-Boosting,该模型由过采样方法B-oversampling和欠采样方法SENN以及Boosting集成分类器组成。BS-Boosting缺陷预测模型首先使用不同的方法确定正类和负类的边界样本,然后对于负类,使用SENN欠采样规则减少负类中的安全样本。对于正类类,采取B-oversampling方法对边界样本过采样,重点增加少数类边界部分的样本数量。在Boosting算法的迭代过程中,不断合成正类样本,并使用分类器对新样本集进行分类,删除被错分的正类合成样本。迭代结束后,将各个基分类器集成就形成了软件缺陷预测模型。BS-boosting缺陷预测模型在缺陷数据处理方面,增大了缺陷数据两类之间的区别,使缺陷数据能够被更准确的区分。在分类器方面,Boosting集成算法可以提高分类器的适应能力,防止分类器过拟合。