세 데이터셋, 세 역할
- 학습셋 — 모델이 봐. Weight 갱신.
- 검증셋 — 모델이 절대 학습 X. 하이퍼파라미터 (모델 크기, 학습률, 정규화 강도) 튜닝에 사용.
- 테스트셋 — 모델이 절대 학습 X AND 너도 절대 튜닝 X. 끝에 한 번 사용해 실전 성능 추정.
왜 셋 다
train + test 만 있으면, 테스트 성능 보면서 하이퍼파라미터 튜닝하고 싶은 유혹 — 테스트셋이 비밀스럽게 학습 데이터 됨. 최종 보고 숫자 = 낙관적. 검증셋이 튜닝 흡수, 테스트셋 진짜 hold out 으로 남음.
흔한 재앙
- 데이터 leakage — 테스트 데이터가 학습에 sneak (종종 전처리 통해). 학습 통계만으로 표준화, 전체 데이터셋 X.
- 테스트셋 peek — 개발 중 테스트셋 반복 실행. 충분 peek 후 테스트셋 오염.
- 시계열 leakage — 시간 데이터에서 미래가 과거로 leak. 시계열은 늘 시간순 분할.
Kaggle 리더보드 효과. 상위 팀이 가끔 public 리더보드 (사실상 검증셋) overfit, private (테스트) 리더보드에서 극적으로 떨어짐. 수학이 peek 처벌 — 집계된 peek 도.
테스트셋은 신성. 한 번 봐. 두 번 = 평가 오염.