中文

勿想当然:用于软件开发工作量估算的开源机器学习库比较

软件工程 2022-07-06 v1 机器学习

摘要

在过去二十年中,若干机器学习(ML)库已可免费获取。许多研究使用此类库对预测性软件工程(SE)任务进行实证调查。然而,使用某一库而非另一库所带来的差异被忽视了,人们隐式地假设使用这些库中的任何一个都会给用户提供相同或非常相似的结果。本文旨在提升人们对不同 ML 库用于软件开发工作量估算(SEE)——最受广泛研究的 SE 预测任务之一——时所产生差异的认识。为此,我们研究了由 3 个最流行的、用不同语言编写的开源 ML 库(即 Scikit-Learn、Caret 和 Weka)所提供的 4 个确定性机器学习器。我们开展了一项详尽的实证研究,在 5 个 SEE 数据集上比较这些机器学习器在两种最常见 SEE 场景(即开箱即用 ML 与调参 ML)下的性能,并深入分析其 API 的文档与代码。我们的研究结果显示,在总计 105 个案例中有 95% 的案例平均而言 3 个库给出的预测不同。这些差异在大多数情况下显著很大,并导致每个项目高达约 3,000 小时的误估算。此外,我们的 API 分析揭示这些库在用户可操控参数的控制级别上提供不同水平,且总体上缺乏清晰性与一致性,这可能误导用户。我们的发现强调 ML 库是 SEE 研究的一项重要设计选择,可能导致性能差异。然而,这种差异未被充分记录。我们最后指出了开放性挑战,并对库的开发者以及使用它们的研究人员与实践者给出了建议。

关键词

引用

@article{arxiv.2207.01705,
  title  = {Do Not Take It for Granted: Comparing Open-Source Libraries for Software Development Effort Estimation},
  author = {Rebecca Moussa and Federica Sarro},
  journal= {arXiv preprint arXiv:2207.01705},
  year   = {2022}
}