K-Fold 교차 검증과 K 값 선택 기준
머신러닝에서 모델 성능을 평가할 때 훈련/테스트 단일 분할만 사용하면 분할 운에 따라 점수가 크게 달라질 수 있습니다. 이 문제를 줄이기 위한 대표 방법이 교차 검증(Cross-Validation)입니다.
1. 교차 검증의 기본 아이디어
데이터를 여러 조각으로 나누고, 각 조각을 번갈아 검증 데이터로 사용합니다.
여러 번의 평가 결과를 평균내면 단일 분할의 우연성을 줄이고 모델의 실제 성능을 더 안정적으로 추정할 수 있습니다.
2. K-Fold 교차 검증의 구조
- 데이터를 K개의 Fold로 나눕니다.
- K번 학습을 반복합니다.
- 매 반복마다 Fold 하나를 검증 데이터로 사용하고 나머지는 학습에 사용합니다.
- K번의 성능을 평균내 최종 성능으로 봅니다.
즉, 데이터를 돌려가며 모두 검증에 활용하는 방식입니다.
3. K 값 선택 기준
K 선택은 데이터 크기, 계산 비용, 문제 특성의 균형입니다.
데이터 양이 적을 때
- 보통 K를 크게(예: 10-Fold)
- 이유: 작은 데이터를 최대한 효율적으로 활용
데이터 양이 많을 때
- 보통 K를 작게(예: 5-Fold)
- 이유: 충분한 데이터에서는 Fold를 과도하게 늘려도 이득이 작고 계산량이 커짐
실무에서 자주 쓰는 기본값
5-Fold또는10-Fold- 일반적으로 성능 안정성과 계산 효율의 균형점
4. K-Fold의 주요 변형
- Stratified K-Fold: 분류 문제에서 클래스 비율 유지
- Leave-One-Out (LOO): 한 샘플만 검증에 사용하는 방식(데이터 매우 적을 때)
- Group K-Fold: 같은 그룹이 다른 Fold에 섞이지 않게 분할
- Time Series Split: 시계열 데이터에서 시간 순서 보존
즉, K 값뿐 아니라 데이터 구조에 맞는 분할 방식 선택도 중요합니다.
5. Grid Search와의 연결
K-Fold는 하이퍼파라미터 탐색에서 특히 강력합니다.
- Grid Search는 여러 하이퍼파라미터 조합을 시도
- 각 조합을 K-Fold로 평가해 공정하게 비교
- 최종적으로 일반화 성능이 좋은 조합을 선택
6. 결론
K-Fold 교차 검증은 데이터 분할 운의 영향을 줄여 모델 성능을 안정적으로 평가하는 방법입니다.
K는 보통 5 또는 10을 기준으로 시작하고, 데이터 크기/계산 자원/문제 구조를 반영해 조정합니다.
결국 K 선택은 단순 숫자 선택이 아니라, 모델 성능과 운영 효율을 함께 좌우하는 전략적 결정입니다.