Skip to main content
QUICK REVIEW

[论文解读] Bellwethers: A Baseline Method For Transfer Learning

Rahul Krishna, Tim Menzies|arXiv (Cornell University)|Mar 17, 2017
Software Engineering Research参考文献 101被引用 6
一句话总结

本文提出了一种名为 bellwethers 的方法——即在其他项目中始终能产生最佳预测结果的项目——作为软件工程中迁移学习的简单而有效的基线方法。通过在数据集上循环遍历以识别单一代表性项目,bellwether 方法在缺陷预测、工作量估计、坏味道检测和问题生命周期预测等多个任务中,实现了与最先进迁移学习技术相当的性能。

ABSTRACT

Software analytics builds quality prediction models for software projects. Experience shows that (a) the more projects studied, the more varied are the conclusions; and (b) project managers lose faith in the results of software analytics if those results keep changing. To reduce this conclusion instability, we propose the use of "bellwethers": given N projects from a community the bellwether is the project whose data yields the best predictions on all others. The bellwethers offer a way to mitigate conclusion instability because conclusions about a community are stable as long as this bellwether continues as the best oracle. Bellwethers are also simple to discover (just wrap a for-loop around standard data miners). When compared to other transfer learning methods (TCA+, transfer Naive Bayes, value cognitive boosting), using just the bellwether data to construct a simple transfer learner yields comparable predictions. Further, bellwethers appear in many SE tasks such as defect prediction, effort estimation, and bad smell detection. We hence recommend using bellwethers as a baseline method for transfer learning against which future work should be compared

研究动机与目标

  • 解决软件分析中的结论不稳定性问题,即预测结果在不同项目间波动显著,从而削弱管理信任。
  • 通过识别一个单一、稳定的项目(即 bellwether)来减缓结论变化的速度,该项目能可靠地预测整个项目群体的结果。
  • 建立一种简单、普适的迁移学习基线方法,其性能优于或等同于复杂的最先进技术。
  • 证明 bellwether 方法在多种软件工程任务中的通用性和鲁棒性,包括缺陷预测、工作量估计和代码坏味道检测。
  • 为未来迁移学习研究提供一种实用、低复杂度的基准,鼓励与一种稳定、可解释的基线进行比较。

提出的方法

  • 通过在 N 个项目上循环遍历,使用标准数据挖掘器(如随机森林)评估每个项目在其余所有项目上的预测性能,从而识别 bellwether 项目。
  • 使用选定的 bellwether 项目的数据,训练一个单一的迁移学习器(如随机森林),用于预测其他项目的结果。
  • 在多个软件工程任务中应用 bellwether 方法:缺陷预测、工作量估计、问题关闭时间预测和坏味道检测(如 God Class、Feature Envy)。
  • 将 bellwether 方法的性能与先进的迁移学习技术(如 TCA+、迁移朴素贝叶斯和价值认知增强)进行比较。
  • 通过 30 次重复运行结合随机森林和 SMOTE 方法,减少随机性,确保性能估计的稳定性。
  • 使用单一指标 G(公式 2)评估性能,更多指标见复制包中。

实验结果

研究问题

  • RQ1在一个项目群体中,是否存在一个单一项目,能够作为所有其他项目预测结果的稳定、高性能参考?
  • RQ2bellwether 方法是否能在多种软件工程任务中实现与复杂最先进迁移学习算法相当的预测性能?
  • RQ3在准确性和稳定性方面,bellwether 方法与基于相似性或维度变换的迁移学习方法相比如何?
  • RQ4bellwether 效应在不同粒度(文件、类、方法)和不同软件工程子领域中是否具有一致性?
  • RQ5bellwether 方法能否作为未来软件工程迁移学习研究中可靠、简单的基线?

主要发现

  • bellwether 效应在多个软件工程任务中存在,包括缺陷预测、工作量估计、问题生命周期预测和坏味道检测。
  • bellwether 方法的预测性能与 TCA+、迁移朴素贝叶斯和价值认知增强等先进迁移学习技术相当。
  • bellwether 方法实现简单——仅需在标准数据挖掘器外包裹一个 for 循环——因此高度可访问且高效。
  • 该方法提供稳定结论,因为只要 bellwether 项目保持最优,预测结果就保持一致。
  • 在同质迁移学习设置下(源项目与目标项目具有相同属性),bellwether 方法优于或等同于更复杂的迁移学习方法。
  • 在异质迁移学习(属性集合不同)场景下,作者建议改用维度变换方法,因为此时 bellwether 效应尚未得到充分验证。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。