데이터분석

교차 검증 전략 (Cross-Validation Strategies)

장수우 2025. 4. 30. 00:52

개념

  • 교차검증(Cross-validation)은 주어진 데이터셋을 여러 개의 "접힘(fold)"로 나눠, 각 접힘을 검증 세트로 순차적 사용하여 모델을 학습, 평가해 일반화 성능을 추정하는 방법입니다.
  • 데이터가 한 번만 학습,평가에 사용될 때보다 안정적인 성능 추정이 가능합니다.

수학적 기초

  • 실제 위험(Generalization Error)
    • R(f) = E(x,y)~p[L(f(X), Y)]
      L : 손실함수(제곱오차, 로그손실)입니다.
  • K-Fold 교차검증 추정치
    • R^CV=K1k=1KDk1(xi,yi)DkL(f(k)(xi),yi)
      Dk: k번째 fold의 검증 데이터

      f^(-k): Dk를 제외한 데이터로 학습한 모델

주요 기법 및 적용 상황

 

기법 특징 사용 예시
KFold
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html?utm_source=chatgpt.com
데이터를 균등한 크기의 K개로 분할하여 순차 평가 범주형 불균형이 크지 않은 일반 회귀, 분류
StratifiedKFold
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedGroupKFold.html?utm_source=chatgpt.com
각 fold가 클래스 비율을 유지 이진, 다중 분류에서 클래스 불균형
GroupKFold
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GroupKFold.html?utm_source=chatgpt.com
같은 그룹(label, 고객ID 등)이 훈련/검증에 중복되지 않도록 분할 고객,환자 등 그룹별 종속성이 있을 때
TimeSeriesSplit
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html?utm_source=chatgpt.com
과거 -> 미래 순서 보존, 훈련 세트가 점점 커지는 시계열 전용 주가, 수요예측 등 시계열 예측
Purged K-Fold / CPCV
https://stats.stackexchange.com/questions/443159/what-is-combinatorial-purged-cross-validation-for-time-series-data?utm_source=chatgpt.com

검증 구간과 겹치는 라벨 또는 특징을 제거(purge)하고 embargo 기간을 두어 누수 방지 금융 시계열, 이벤트 중심 데이터 ("진짜 미래" 평가 보장)
반응형