检测机器学习Python项目中的重构提交:一种基于机器学习的方法
软件工程
2024-04-11 v1
摘要
重构在不改变软件功能行为的前提下提升软件质量。理解开发者的重构活动对于改善软件可维护性至关重要。随着机器学习库和框架的使用日益增多,最大化其可维护性变得关键。由于机器学习项目的数据驱动特性,它们经常经历不同的重构操作(例如数据操作),而现有的重构工具缺乏针对机器学习的检测能力。此外,大量机器学习库是用Python编写的,而Python的重构检测工具有限。PyRef是一种基于规则且最先进的Python重构检测工具,可以识别11种重构操作。相比之下,Rminer可以检测Java项目的99种重构操作。我们引入了MLRefScanner,这是一个原型工具,应用机器学习技术来检测机器学习Python项目中的重构提交。MLRefScanner能够识别包含机器学习特定和一般重构操作的提交。在199个机器学习项目上评估MLRefScanner,其性能优于最先进的方法,实现了总体94%的精确率和82%的召回率。将其与PyRef结合使用,进一步将性能提升至95%的精确率和99%的召回率。我们的研究强调了机器学习驱动的方法在检测跨不同编程语言和技术领域的重构方面的潜力,解决了基于规则的检测方法的局限性。
引用
@article{arxiv.2404.06572,
title = {Detecting Refactoring Commits in Machine Learning Python Projects: A Machine Learning-Based Approach},
author = {Shayan Noei and Heng Li and Ying Zou},
journal= {arXiv preprint arXiv:2404.06572},
year = {2024}
}