[AI] K-fold 교차 검증(K-fold cross-validation)

JAsmine_log·2025년 10월 1일
0

K-fold 교차 검증(K-fold cross-validation)

K-fold 교차 검증은 모델의 일반화 성능을 신뢰성 있게 측정하는 중요한 표준 도구

머신러닝에서 데이터셋을 K개의 하위 집합(폴드)으로 나누어 반복적으로 학습과 평가를 수행하는 대표적인 검증 기법이다. 전체 데이터를 K개로 나눈 뒤, 각 폴드가 한 번씩 검증 세트로 사용되고 나머지 폴드는 학습 세트로 사용되어 총 K번의 학습-검증이 이루어짐

K-Fold 구조와 과정

  • 주어진 전체 데이터가 K개로 고르게 분할
  • 반복적으로, 한 폴드를 검증 세트로, 나머지 K-1개 폴드를 학습 세트로 사용
  • 각 반복(iteration)마다 모델이 학습되고 평가
  • 마지막에는 K번 평가 결과의 평균이 최종 모델의 성능 지표로 활용

주요 특징과 활용

  • 데이터가 적거나 불균형한 경우에도 일반적인 검증보다 더 신뢰성 있게 모델 성능을 평가할 수 있음
  • K 값은 데이터 크기와 상황에 따라 정하며, 일반적으로 5~10을 많이 사용
  • 불균형 데이터셋에는 계층적 분할(Stratified K-Fold)을 적용해 폴드별 클래스 분포를 일정하게 할 수 있음

예시 코드 (Python, scikit-learn)

  • 이 코드는 데이터를 5개 폴드로 섞어서 분할하고, 각 폴드마다 학습 및 평가를 반복
from sklearn.model_selection import KFold

kf = KFold(n_splits=5, shuffle=True, random_state=42)
for train_idx, test_idx in kf.split(X):
    X_train, X_test = X[train_idx], X[test_idx]
    y_train, y_test = y[train_idx], y[test_idx]
    # 모델 학습 및 평가
profile
Everyday Research & Development

0개의 댓글