머신러닝에서 모델 성능을 평가할 때 훈련/테스트 단일 분할만 사용하면 분할 운에 따라 점수가 크게 달라질 수 있습니다. 이 문제를 줄이기 위한 대표 방법이 교차 검증(Cross-Validation)입니다.

1. 교차 검증의 기본 아이디어

데이터를 여러 조각으로 나누고, 각 조각을 번갈아 검증 데이터로 사용합니다.
여러 번의 평가 결과를 평균내면 단일 분할의 우연성을 줄이고 모델의 실제 성능을 더 안정적으로 추정할 수 있습니다.

2. K-Fold 교차 검증의 구조

  1. 데이터를 K개의 Fold로 나눕니다.
  2. K번 학습을 반복합니다.
  3. 매 반복마다 Fold 하나를 검증 데이터로 사용하고 나머지는 학습에 사용합니다.
  4. 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 선택은 단순 숫자 선택이 아니라, 모델 성능과 운영 효율을 함께 좌우하는 전략적 결정입니다.