정의
- 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 을 통해 진행하는 일반적인 학습법에 비해 시간 소요가 크다
'데이터분석 > with R' 카테고리의 다른 글
베깅(Bagging) 과 랜덤포레스트, 부스팅의 정의 및 설명 (0) | 2018.03.12 |
---|---|
[R] Rattle을 이용한 데이터 분석(머신러닝) 알고리즘 구현 (0) | 2018.01.22 |
[R] R로 구현하는 상품추천기술(IBCF, UBCF) - (2) (0) | 2018.01.09 |
[R] R로 구현하는 상품추천기술(IBCF, UBCF) - (1) (2) | 2018.01.09 |
[R] 상품추천기술: 협업필터링의 정의와 예시 (0) | 2018.01.02 |