정의

- K개의 fold를 만들어서 진행하는 교차검증


사용 이유

- 총 데이터 갯수가 적은 데이터 셋에 대하여 정확도를 향상시킬수 있음

- 이는 기존에 Training / Validation / Test 세 개의 집단으로 분류하는 것보다, Training과 Test로만 분류할 때 학습 데이터 셋이 더 많기 때문

- 데이터 수가 적은데 검증과 테스트에 데이터를 더 뺐기면 underfitting 등 성능이 미달되는 모델이 학습됨




과정 

- 기존 과정과 같이 Training Set과 Test Set을 나눈다

- Training을 K개의 fold로 나눈다 

- 위는 5개의 Fold로 나눴을때 모습이다

- 한 개의 Fold에 있는 데이터를 다시 K개로 쪼갠다음, K-1개는 Training Data, 마지막 한개는 Validation Data set으로 지정한다

- 모델을 생성하고 예측을 진행하여, 이에 대한 에러값을 추출한다

- 다음 Fold에서는 Validation셋을 바꿔서 지정하고, 이전 Fold에서 Validatoin 역할을 했던 Set은 다시 Training set으로 활용한다

- 이를 K번 반복한다




과정(이어서)
- 각각의 Fold의 시도에서 기록된 Error를 바탕(에러들의 평균)으로 최적의 모델(조건)을 찾는다
- 해당 모델(조건)을 바탕으로 전체 Training set의 학습을 진행한다
- 해당 모델을 처음에 분할하였던 Test set을 활용하여 평가한다

단점
- 그냥 Training set / Test set 을 통해 진행하는 일반적인 학습법에 비해 시간 소요가 크다


+ Recent posts