교차검증
교차검증(Cross-Validation)은 데이터를 여러 번 분할하여 모델의 성능을 더 안정적으로 추정하는 기법입니다.학습 목표
- K-Fold, Stratified K-Fold, Leave-One-Out CV의 차이를 이해합니다.
- 교차검증 결과를 올바르게 해석할 수 있습니다.
- Nested CV가 필요한 상황을 판별할 수 있습니다.
- scikit-learn의
cross_val_score를 활용할 수 있습니다.
왜 중요한가
단일 홀드아웃 분할은 어떤 데이터가 학습/테스트에 포함되느냐에 따라 결과가 크게 달라질 수 있습니다. 교차검증은 이 문제를 해결하여 더 신뢰할 수 있는 성능 추정을 제공합니다.핵심 개념
K-Fold 교차검증
Stratified K-Fold
클래스 비율을 각 Fold에서 유지합니다. 불균형 데이터에 필수적입니다.Nested CV (모델 선택 + 성능 추정)
하이퍼파라미터 튜닝과 성능 추정을 동시에 수행할 때 사용합니다.CV 방법 비교
| 방법 | K | 적합한 상황 | 계산 비용 |
|---|---|---|---|
| K-Fold | 5-10 | 일반적 사용 | 중간 |
| Stratified K-Fold | 5-10 | 불균형 데이터 | 중간 |
| Leave-One-Out | n | 데이터 매우 적음 (< 100) | 높음 |
| Repeated K-Fold | 5-10 x 반복 | 안정적 추정 필요 | 높음 |
| TimeSeriesSplit | 5-10 | 시계열 데이터 | 중간 |
Q: K 값은 어떻게 결정하나요?
Q: K 값은 어떻게 결정하나요?
일반적으로 K=5 또는 K=10을 사용합니다. K가 크면 편향은 줄지만 분산이 증가하고 계산 비용이 높아집니다. 데이터가 1000건 이상이면 K=5, 그보다 적으면 K=10을 권장합니다.
Q: 교차검증을 하면 테스트 세트가 필요 없나요?
Q: 교차검증을 하면 테스트 세트가 필요 없나요?
아닙니다. 교차검증은 모델 선택과 하이퍼파라미터 튜닝에 사용합니다. 최종 모델의 성능은 교차검증에 전혀 사용되지 않은 테스트 세트로 1회 평가해야 합니다.
체크리스트
- K-Fold와 Stratified K-Fold의 차이를 설명할 수 있다
- cross_val_score 결과를 올바르게 해석할 수 있다
- Nested CV가 필요한 상황을 판별할 수 있다
- 시계열 데이터에 적합한 CV 방법을 선택할 수 있다

