어제는 누수가 검증을 어떻게 망치는지 봤다. 오늘은 그 반대편 — 누수 없이 모델의 일반화 성능을 정직하게 추정하는 검증 설계를 만든다. 좋은 모델을 고르는 일은 결국 "보지 못한 데이터에서 얼마나 잘할지"를 믿을 수 있게 추정하는 일이고, 그 추정의 신뢰도는 전적으로 검증 설계에 달려 있다.
MLS-C01 시험은 검증 전략 선택을 반복해서 묻는다. 데이터가 작을 때, 클래스가 불균형할 때, 시계열일 때, 각각 무엇을 써야 하는가? 오늘은 3-way 분할, k-fold 교차검증, 층화 추출(stratified sampling), 시계열 분할을 다룬다.
가장 기본은 데이터를 세 부분으로 나누는 것이다. 각각의 역할이 다르다.
| 분할 | 역할 | 핵심 |
|---|---|---|
| 학습(train) | 모델 파라미터 학습 | 가장 큰 비중 (보통 60~80%) |
| 검증(validation) | 하이퍼파라미터 튜닝·모델 선택 | 반복적으로 본다 |
| 테스트(test) | 최종 성능의 단 한 번 평가 | 끝까지 봉인 |
핵심 원칙: 테스트셋은 모든 결정이 끝난 뒤 마지막에 단 한 번만 본다. 테스트셋을 보고 모델을 고치기 시작하면, 테스트셋이 사실상 검증셋이 되어 최종 추정이 낙관적으로 오염된다.