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 을 통해 진행하는 일반적인 학습법에 비해 시간 소요가 크다.
'Programming > Deep Learning' 카테고리의 다른 글
KNN(K - Nearest Neighbors Alogorithm) - K-최근접 알고리즘 (0) | 2019.03.06 |
---|