테스트 세트와 교차 검증 세트의 목적은 다릅니다. 둘 중 하나를 삭제하면 다음과 같은 이점이 사라집니다.
교차 검증 세트를 사용하여 모델의 성능을 정확하게 측정 할 수는 없습니다. 수백 가지의 매개 변수에 대해 최상의 메트릭을 얻기 위해 결과를 조정 하기 입니다. 따라서 교차 검증 결과는 너무 낙관적 일 수 있습니다.
같은 이유로 교차 검증 세트를 삭제하고 하이퍼 파라미터를 선택하기 위해 테스트 세트를 사용할 수 없습니다. 모델의 성능을 과대 평가하는 것이 거의 보장됩니다. 이상적인 세계에서는 테스트 세트를 한 번만 사용하거나 "중립"방식으로 사용하여 다른 실험을 비교하십시오.
교차 검증하고 최상의 모델을 찾은 다음 훈련 할 테스트 데이터를 추가하면 가능합니다. (일부 상황에서 아마도 매우 가능성) 모델이 향상 될 것입니다. 그러나 실제로 이러한 상황이 발생했는지 여부를 확인할 수있는 방법이 없으며 새로운 성능이 무엇인지에 대한 편견없는 추정값이 없습니다.
많은 Kaggle 경쟁을 목격 한 결과, 제 경험은 테스트를 과도하게 사용하여 테스트 세트를 튜닝하는 것이 실제적인 일이며 이러한 경쟁에 큰 영향을 미친다는 것입니다. 공개 리더 보드를 올라가서 테스트에서 최고의 모델 (공개 리더 보드는 사실상 테스트 세트 임)을 선택한 반면, 교차 검증에 대해서는 철저하지 않은 경쟁자 그룹이 종종 있습니다. . . 새로운 경쟁자가 끝날 때이 경쟁자들은 순위표를 내립니다.
합리적인 방법 중 하나는 테스트하기 전에 찾은 하이퍼 파라미터를 사용하여 데이터를 재사용 (트레이닝 + cv)하여 재사용하는 것입니다. 이렇게하면 더 많은 데이터를 학습 할 수 있으며 결국에도 독립적 인 성능 측정 값을 얻을 수 있습니다.
교차 검증에서 더 많은 것을 얻으려면 일반적인 접근 방식은 k-fold cross validation 입니다. Kaggle 경쟁에서 일반적인 트릭은 k- 폴드 교차 검증을 사용하고 데이터를 더 큰 (train + cv) 훈련 세트로 재결합하는 대신 cv 결과를 메타 모델로 앙상블하거나 쌓는 것입니다.
마지막으로, 검증 및 테스트를위한 분할이 데이터 세트 내에서 가능한 상관 관계에 대해 강력한 지 항상 확인하십시오.