K-Fold 교차검증 (K-Fold Cross Validation)

Youngho LEE·2025년 5월 25일

교차검증(CV)

  • 과적합(overfitting)을 피하면서 파라미터를 튜닝하고, 일반적인 모델을 만들고, 더 신뢰성 있는 모델 평가를 진행하기 위함.

K-Fold CV

  • K개의 fold를 만들어서 진행하는 교차검증
  • 총 데이터 갯수가 적은 데이터 셋에 대하여 정확도를 향상시킬 수 있다.
  • 데이터 수가 적은데 검증과 테스트에 데이터를 더 뺏기면, underfitting 등 성능이 미달되는 모델이 학습된다.
  • 한번만 교차 검증하는 방법에 비해 시간이 오래 걸린다.

과정

     - 기존 과정과 같이 Training Set과 Test Set을 나눈다.
     - Training을 K개의 fold로 나눈다.
     - 한 개의 fold에 있는 데이터를 다시 K개로 쪼갠 다음, K-1개는 Training Data, 마지막 한 개는 Validataion Data set으로 지정한다.
     - 모델을 생성하고 예측을 진행하여, 이에 대한 에러값을 추출한다.
     - 다음 fold에서는 Validation set을 바꿔서 지정하고, 이전 fold에서 Validataion 역할을 했던 set은 다시 Training set으로 활용한다.
     - 이를 K번 반복한다.
     - 각각의 fold의 시도에서 기록된 error를 바탕(에러들의 평균)으로 최적의 모델(조건)을 찾는다.
     - 해당 모델(조건)을 바탕으로 전체 Training set의 학습을 진행한다.
     - 해당 모델을 처음에 분할했던 Test set을 활용하여 평가한다.

🤔 K값을 선택할때 고려해야할 점은❓

  • 작은 K값
        - 각 fold가 크게 나뉘어 학습 샘플 수가 적어지므로, 편향(bias)가 높아질 수 있다.
        - 분산(variance)은 작아짐.

  • 큰 K값
        - 편향은 거의 없지만, 분산이 커짐.
        - 계산 비용이 커짐.

  • k값을 5~10으로 사용 후 비교해본다.

  • 소량 데이터일수록 큰 K값으로 학습 데이터 확보량을 최대화한다.

  • 대용량 데이터는 k값은 5정도로 한다.



    출처
    blog
    blog
    blog

profile
개발자

0개의 댓글