论文部分内容阅读
现代社会中,计算机软件产业迅速发展,生活中的各个角落都充斥着计算机软件的影子。软件缺陷预测是软件开发工程中的重要环节,如果在开发的过程中可以及时发现并纠正软件中潜在的缺陷,可以在一定的程度上提高软件的质量。所以,软件缺陷预测在保证软件质量中发挥着重要的作用。软件缺陷预测的目的是有效地识别出有缺陷的样本。为了预测软件中的缺陷,许多数据挖掘算法已被提出,如支持向量机和贝叶斯等。然而,真实的软件缺陷预测中的数据往往是类别不平衡的,这些传统的方法并不能有效地处理此类数据。鉴于此,研究者提出了重采样、代价敏感学习和集成学习等方法。但这些方法或者改变了原始数据集的真实性,或者只是单纯地在训练阶段或决策阶段处理类别不平衡。为了处理软件缺陷中这种类别不平衡问题,本文提出了一个基于改进的类权自适应、软投票与阈值移动的Bagging集成模型,该模型在不改变原始数据集比例的情况下,从训练和决策两个阶段同时考虑处理类别不平衡问题。为了证明文中提出的方法的有效性,实验采用NASA和Eclipse软件缺陷标准数据集进行预测,并与最近几年提出的软件缺陷预测方法进行对比,实验表明,该文提出的处理软件缺陷预测中类别不平衡问题的方法整体性能优于其它软件缺陷预测方法,具有较好的预测效果。本文的主要研究工作如下:(1)为了避免错分带来惨痛的代价,我们给不同的类别赋予不同的权值为使分类器在训练过程中对不同的类赋予不同的关注度。本文在不改变原始数据集比例的情况下(训练集和测试集上的类别不平衡率相等),对每类样本进行类权值自适应学习,分别得到不同类样本的最优权值。(2)训练阶段,由于选择分类器要满足“好而不同”(基分类器要有一定的“准确性”和“多样性”)的特点,本文选择决策树(DT)、支持向量机(SVM)和逻辑回归(LR)三个经典分类器,使用第一步得到的最优权值训练三个基分类器,并通过软集成的方法组合三个基分类器,得到三个类加权基分类器,同时计算每个类加权基分类器的置信度。(3)决策阶段,在测试集上分别计算三个类加权基分类器的分类概率,使用软投票的方法对分类器预测的结果进行投票。最后,根据阈值移动模型来作出决策,得出最终预测类别。