[논문 리뷰] Preserving Order of Data When Validating Defect Prediction Models
이 연구는 시간순열 검증(walk-forward)과 비시간순열 방법(CV, 부트스트랩)을 사용하여 결함 예측 모델의 정확도를 평가하며, AUC에 상당한 차이를 발견한다. 10겹 교차검증의 경우 -0.20에서 0.22까지, 부트스트랩의 경우 -0.17에서 0.43까지의 변동을 보이며, 각각 45%와 56%의 경우에서 통계적으로 유의미한 차이를 보인다. 결과적으로 소프트웨어 결함 예측에서 데이터 분할 시 시간적 순서를 유지하는 것이 모델 평가의 현실성에 매우 중요하다고 강조한다.
[Context] The use of defect prediction models, such as classifiers, can support testing resource allocations by using data of the previous releases of the same project for predicting which software components are likely to be defective. A validation technique, hereinafter technique defines a specific way to split available data in training and test sets to measure a classifier accuracy. Time-series techniques have the unique ability to preserve the temporal order of data; i.e., preventing the testing set to have data antecedent to the training set. [Aim] The aim of this paper is twofold: first we check if there is a difference in the classifiers accuracy measured by time-series versus non-time-series techniques. Afterward, we check for a possible reason for this difference, i.e., if defect rates change across releases of a project. [Method] Our method consists of measuring the accuracy, i.e., AUC, of 10 classifiers on 13 open and two closed projects by using three validation techniques, namely cross validation, bootstrap, and walk-forward, where only the latter is a time-series technique. [Results] We find that the AUC of the same classifier used on the same project and measured by 10-fold varies compared to when measured by walk-forward in the range [-0.20, 0.22], and it is statistically different in 45% of the cases. Similarly, the AUC measured by bootstrap varies compared to when measured by walk-forward in the range [-0.17, 0.43], and it is statistically different in 56% of the cases. [Conclusions] We recommend choosing the technique to be used by carefully considering the conclusions to draw, the property of the available datasets, and the level of realism with the classifier usage scenario.
연구 동기 및 목표
- 시간순열 검증 기법이 비시간순열 방법에 비해 결함 예측 모델 정확도에 다른 결과를 초래하는지 평가하기.
- 소프트웨어 프로젝트 릴리스 간 결함 비율 변화가 관측된 정확도 차이의 원인으로 기여하는지 조사하기.
- 결함 예측 모델의 현실성과 목적에 따라 연구자 및 실무자가 검증 기법을 선택하는 데 도움을 주기.
- 실제 오픈소스 및 프라이빗 소스 프로젝트를 활용해 데이터 순서가 분류기 성능에 미치는 영향 평가하기.
제안 방법
- 10개의 분류기와 13개의 오픈소스, 2개의 프라이빗 소스 프로젝트를 대상으로 3가지 검증 기법(10겹 교차검증, 부트스트랩, 워크포워드(시간순열))를 적용.
- 각 분류기와 프로젝트 조합의 모델 정확도를 ROC 곡선 아래 면적(AUC)으로 측정.
- 워크포워드 검증을 통해 시간 순서를 유지하여 훈련 데이터가 테스트 데이터보다 이전에 오도록 보장.
- 검증 기법 간 AUC 결과를 비교하여 통계적으로 유의미한 차이를 식별.
- 성능 차이의 잠재적 원인을 탐색하기 위해 릴리스 간 결함 비율 분석 수행.
실험 결과
연구 질문
- RQ1특히 시간순열 대비 비시간순열 기법을 선택할 경우, 결함 예측 모델의 측정된 정확도에 영향을 미치는가?
- RQ2워크포워드 검증이 10겹 교차검증 또는 부트스트랩을 사용할 때 AUC 값에 통계적으로 유의미한 차이를 보이는가?
- RQ3소프트웨어 프로젝트 릴리스 간 결함 비율 변화가 검증 기법 간 관측된 정확도 차이를 설명하는가?
- RQ4성능 차이는 다양한 분류기와 프로젝트 간에서 어떻게 달라지는가?
주요 결과
- 동일한 분류기의 AUC는 10겹 교차검증에서 워크포워드 검증 대비 -0.20에서 0.22까지 변동하며, 이 중 45%의 경우에서 통계적으로 유의미한 차이를 보였다.
- 부트스트랩을 사용한 AUC는 워크포워드 검증 대비 -0.17에서 0.43까지 변동하며, 이 중 56%의 경우에서 통계적으로 유의미한 차이를 보였다.
- 릴리스 간 결함 비율이 변동하는 것으로 확인되어, 결함 데이터의 시간적 동적 특성이 검증 기법 간 성능 차이를 유발함을 시사한다.
- 이 연구는 비시간순열 기법이 향후 릴리스의 데이터 유출로 인해 잘못된 정확도 추정을 낳을 수 있음을 확인한다.
- 워크포워드 검증은 훈련 및 테스트 데이터의 시간적 순서를 유지함으로써 일관되게 더 현실적인 성능 추정을 제공한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.