Core Concepts
기계 학습 기반 접근법을 통해 기계 학습 Python 프로젝트에서 리팩토링 커밋을 효과적으로 탐지할 수 있다.
Abstract
이 연구는 기계 학습 Python 프로젝트에서 리팩토링 커밋을 탐지하기 위한 MLRefScanner라는 프로토타입 도구를 소개한다.
기존 도구들은 Python 코드의 리팩토링 유형을 충분히 탐지하지 못하고, 특히 기계 학습 도메인의 특정 리팩토링 유형을 탐지하지 못한다는 한계가 있다.
MLRefScanner는 커밋 메시지, 프로세스 정보, 코드 메트릭 등 다양한 특징을 활용하여 기계 학습 Python 프로젝트의 리팩토링 커밋을 정확하게 탐지할 수 있다.
실험 결과, MLRefScanner는 기존 도구보다 우수한 성능을 보였으며(정확도 94%, 재현율 82%), 기존 도구로는 탐지하지 못했던 기계 학습 특화 리팩토링 유형과 추가적인 리팩토링 유형을 탐지할 수 있었다.
또한 MLRefScanner와 기존 도구를 결합하면 정확도 95%, 재현율 99%까지 성능을 높일 수 있다.
이 연구는 기계 학습 기반 접근법을 통해 다른 프로그래밍 언어나 기술 분야에서도 리팩토링 활동을 효과적으로 탐지할 수 있는 가능성을 보여준다.
Stats
리팩토링 기여도가 높을수록 리팩토링 커밋일 가능성이 높다.
삭제된 라인 수가 많을수록 리팩토링 커밋일 가능성이 높다.
추가된 라인 수가 많을수록 리팩토링 커밋일 가능성이 높다.
코드 엔트로피가 높을수록 리팩토링 커밋일 가능성이 높다.
선언적 코드 라인 수가 많을수록 리팩토링 커밋일 가능성이 높다.
메서드의 총 순환 복잡도가 높을수록 리팩토링 커밋일 가능성이 높다.
메서드의 평균 코드 라인 수가 많을수록 리팩토링 커밋일 가능성이 높다.
Quotes
"update", "remove", "refactor", "improve", "move", "rename", "clean", "cleanup", "add", "simplify", "split", "unused", "restructure", "option", "name", "parameter", "argument"와 같은 단어가 커밋 메시지에 나타나면 해당 커밋이 리팩토링일 가능성이 높다.