论文部分内容阅读
软件缺陷预测被用来检测待测软件是否有错误,它利用该软件历史版本的数据进行学习,来得出一种预测模型,对当前软件进行测试,来检测该软件的错误倾向。到目前为止,已经有很多方法被提出,如机器学习、统计方法等,这些方法都被用在软件预测上,且取得了很好的效果,本文在介绍软件缺陷预测的基础上,对特征提取技术进行探究,并做出了以下工作:(1)在软件工程中,大部分的模块数据是无标签的,所以想要得到大量的有标签的数据样本是不现实的,为了适应现实情况,很多方法已经引入了半监督学习,而拉普拉斯特征映射(LE)方法是一种无监督的维数简约方法,它没有充分利用样本数据中的标签数据,本文在LE方法上将样本标签考虑在内,提出了基于半监督学习的拉普拉斯特征映射方法(SSLE)。该方法将有类别标记和无类别标记的样本共同处理,在LE中使用半监督学习,改进LE方法。通过该方法可以有效改善特征提取的鉴别性。(2)LE方法能够很好的保留样本间的局部信息,但一般其所得投影向量是非正交的,这样LE方法得到的投影变换就会在样本间存在冗余信息,本文提出了基于半监督学习的整体正交拉普拉斯特征映射方法(SSHOLE)。该方法的基本思路是,先使用上面提出的基于半监督学习的拉普拉斯特征映射方法构建出目标函数,再在目标函数中加入正交约束,这样可以获得自然正交的投影向量。这种方法可以有效消除样本间的冗余信息,改善分类预测效果。(3)另外,现实生活中,软件数据通常具有非线性关系,为了能够很好的提取非线性数据的流形结构,本文使用核方法将样本投影到高维核空间中,将非线性样本变得线性可分,在该高维核空间中使用上面提到的基于半监督学习的整体正交拉普拉斯特征映射方法,提出了核半监督整体正交拉普拉斯特征映射方法(KSSHOLE)。该方法可以有效地改善预测模型的预测效果。本文将所提方法和对比方法应用在NASA、AEEEM和ReLink三个库上。经实验验证,可得本文提出的三个方法的有效性,并且和其他对比的特征提取方法相比,在分类性能上有一定的提升。