[论文解读] The Impact of Feature Selection on Predicting the Number of Bugs
本研究探讨了在使用回归模型预测Java软件系统中的缺陷数量时,特征选择的影响。研究在五种机器学习模型中对比了基于相关性的过滤法(CFS)与包装法特征选择方法,发现包装法显著提升了预测准确率(最高达33%),同时将特征数量减少了一半以上,始终优于CFS,并在不同项目中选择了源代码度量与变更度量的混合组合。
Bug prediction is the process of training a machine learning model on software metrics and fault information to predict bugs in software entities. While feature selection is an important step in building a robust prediction model, there is insufficient evidence about its impact on predicting the number of bugs in software systems. We study the impact of both correlation-based feature selection (CFS) filter methods and wrapper feature selection methods on five widely-used prediction models and demonstrate how these models perform with or without feature selection to predict the number of bugs in five different open source Java software systems. Our results show that wrappers outperform the CFS filter; they improve prediction accuracy by up to 33% while eliminating more than half of the features. We also observe that though the same feature selection method chooses different feature subsets in different projects, this subset always contains a mix of source code and change metrics.
研究动机与目标
- 为解决在软件缺陷预测的回归问题中,特征选择影响研究不足的问题。
- 比较过滤法(CFS)与包装法特征选择方法在提升多种机器学习模型预测准确率方面的有效性。
- 探究不同软件项目中特征子集是否一致,或是否因项目和方法而异。
- 确定结合源代码度量与变更度量是否能获得更好的预测性能。
- 强调项目特定特征选择的必要性,并倡导提供更多包含实际缺陷数量的公开数据集。
提出的方法
- 在五个开源Java项目(Eclipse JDT Core、Eclipse PDE UI、Equinox、Lucene和Mylyn)上,对五种机器学习模型——K-近邻、线性回归、多层感知机、随机森林和支持向量机——进行实证评估。
- 采用基于相关性的特征选择(CFS)作为过滤法,采用以模型特定准确率为适应度函数的包装法作为包装法。
- 使用10折交叉验证,评估所有模型和项目在有无特征选择情况下的预测准确率(RMSE)。
- 测量特征减少量、模型复杂度,以及不同项目和方法间所选特征的一致性。
- 分析所选特征子集的构成,以确定源代码度量与变更度量的相对重要性。
- 使用统计显著性检验验证不同特征选择方法之间的性能差异。
实验结果
研究问题
- RQ1RQ1:特征选择对预测缺陷数量的机器学习模型预测准确率有何影响?
- RQ2RQ2:包装法特征选择方法是否优于过滤法以提升预测准确率?
- RQ3RQ3:不同特征选择方法在不同项目中是否选择不同的特征子集?
- RQ4RQ4:是否存在一个在多个项目中都适用的稳定特征集合,还是特征选择必须针对每个项目单独进行?
主要发现
- 包装法特征选择在76%的实验中将预测准确率提升了最高达33%,且从未降低性能;而CFS仅在32%的实验中提升了准确率,且在24%的实验中导致性能下降。
- 包装法将特征数量最多减少了87%,显著简化了模型,同时保持或提升了性能。
- 随机森林模型对特征选择表现出可忽略的敏感性,表明其对冗余或相关特征具有鲁棒性。
- 尽管方法和项目存在差异,所有所选特征子集均包含源代码度量与变更度量的混合,表明二者在预测中具有协同重要性。
- 在不同项目之间不存在一致的特征子集,证实特征选择必须针对每个新项目单独执行。
- 本研究证实,在缺陷预测作为回归问题的背景下,特征选择至关重要,且包装法在此情境下优于过滤法。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。