中文

数据平衡改进自承认技术债务检测

软件工程 2021-03-25 v1

摘要

技术债务与非技术债务源代码注释之间存在高度不平衡。这种不平衡影响了自承认技术债务 (SATD) 检测性能,且现有文献缺乏关于平衡技术选择的经验证据。在本工作中,我们评估了多种平衡技术(包括数据级、分类器级和混合级)在项目的内部 (Within-Project) 和跨项目 (Cross-Project) 设置下对 SATD 检测的影响。我们的结果表明,数据级平衡技术 SMOTE 或分类器级集成方法随机森林 (Random Forest) 或 XGBoost 是合理的选择,具体取决于目标是最大化精确率 (Precision)、召回率 (Recall)、F1 还是 AUC-ROC。我们将性能最佳的模型与先前的 SATD 检测基准(代价敏感卷积神经网络)进行了比较。有趣的是,采用 SMOTE 采样的顶级 XGBoost 在项目的内部设置下将 F1 分数提高了 10%,但在跨项目设置下低了 9%。这支持了深度学习在跨项目 SATD 检测中更高的泛化能力,而在单个项目内工作时,经典机器学习算法可提供更佳性能。我们还评估并量化了重复源代码注释对 SATD 检测性能的影响。最后,我们采用 SHAP 并讨论了可解释的 SATD 特征。我们已包含复现包,并在本研究中共享了一个带有平衡技术的基于 Web 的 SATD 预测工具。

关键词

引用

@article{arxiv.2103.13165,
  title  = {Data Balancing Improves Self-Admitted Technical Debt Detection},
  author = {Murali Sridharan and Mika Mantyla and Leevi Rantala and Maelick Claes},
  journal= {arXiv preprint arXiv:2103.13165},
  year   = {2021}
}

备注

11 pages, 1 figure, for conference