학습/테스트 분할
데이터를 학습용과 평가용으로 적절히 나누는 것은 모델의 일반화 성능을 올바르게 추정하기 위한 첫 번째 단계입니다.학습 목표
- 학습/검증/테스트 분할의 목적과 비율을 이해합니다.
- 계층적 분할(Stratified Split)의 필요성을 파악합니다.
- 시계열 데이터의 특수한 분할 방법을 이해합니다.
- 데이터 누수(Data Leakage)를 방지하는 원칙을 적용할 수 있습니다.
왜 중요한가
학습 데이터에서의 성능은 실제 성능을 과대 추정합니다. 모델이 본 적 없는 데이터에서 얼마나 잘 작동하는지 추정하려면, 학습에 사용하지 않은 별도의 데이터가 필요합니다.핵심 개념
홀드아웃 방법 (Hold-out)
계층적 분할 (Stratified Split)
클래스 불균형 데이터에서 각 클래스의 비율을 유지하면서 분할합니다.시계열 분할
시계열 데이터는 무작위 분할이 불가합니다. 시간 순서를 반드시 유지해야 합니다.데이터 누수 방지 원칙
| 원칙 | 설명 |
|---|---|
| 분할 후 전처리 | 전처리(스케일링, 인코딩)는 학습 데이터에서만 fit |
| 특성 공학 주의 | 타겟 변수에서 파생된 특성 사용 금지 |
| 시간 순서 존중 | 미래 데이터로 과거 예측 불가 |
| 테스트 세트 격리 | 테스트 세트는 최종 1회 평가에만 사용 |
Q: 검증 세트와 테스트 세트의 차이는 무엇인가요?
Q: 검증 세트와 테스트 세트의 차이는 무엇인가요?
검증 세트는 모델 선택과 하이퍼파라미터 튜닝에 사용됩니다 (여러 번 참조 가능). 테스트 세트는 최종 모델의 성능을 한 번만 평가하는 데 사용됩니다. 교차검증을 사용하면 별도의 검증 세트가 불필요합니다.
Q: 데이터가 적을 때는 어떻게 분할하나요?
Q: 데이터가 적을 때는 어떻게 분할하나요?
데이터가 적으면 홀드아웃 대신 교차검증을 사용하세요. 모든 데이터를 학습과 검증에 번갈아 사용하여 더 안정적인 성능 추정이 가능합니다.
체크리스트
- 학습/검증/테스트 세트의 역할을 구분할 수 있다
- stratify 옵션의 필요성을 판단할 수 있다
- 시계열 데이터의 분할 원칙을 설명할 수 있다
- 데이터 누수의 대표적인 사례를 식별할 수 있다

