본문 바로가기

Programming/Deep Learning

K-Fold Cross Validaion(교차 검증) 정의 및 설명

K Folds Cross Validaion Method


1. Sample Data를 K개로 나눈다.

2. 1개를  Test를 위해 사용하고, K-1개를 Train한다.

3. Test Set을 순환하여 Train하는 과정을 K번 반복한다.

4. 반복하여 얻은 결과에 근거하여 *예상되는 수치 를 결정한다.


* 평균 제곱근 오차(Mean Square Error)

  오분류 에려율(Misclassification error rate)

  신뢰구간(Confidence interval)



정의

- 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 에서 Validation 역학을 했던 Set은 다시 Training Set으로 활용한다.

- 이를 K번 반복한다.


과정(이어서)

- 각각의 Fold 의 시도에서 기록된 Error를 바탕(에러들의 평균)으로 최적의 모델(조건)을 찾는다.

- 해당 모델(조건)을 바탕으로 전체 Training Set 의 학습을 진행한다.

- 해당 모델을 처음에 분할하였던 Test set을 활용하여 평가한다.


단점

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