본문 바로가기
machine learning

k-fold cross validation, k겹 교차검증

by 단창 2014. 2. 3.


machine learning을 할때 사용자가 가지는 데이터는 오직 훈련집합(Training set) 과 테스트집합(Test set) 뿐이다. 집합내에 샘플의 수가 굉장히 많다면 물론 좋겠지만, 실제상황에서 샘플수가 무한정 제공 될 수는 없다. 

따라서 데이터의 양이 충분치 않을 때, 분류기 성능측정의 통계적 신뢰도를 높이기 위해서 쓰는 방법이 재샘플링(resampling) 기법을 사용하는데 대표적인 방법으로는 k-fold cross validation 과 bootstrap가 있다. 


지금은 cross validation , 교차검증 법을 알아보자... 


총 N개의 sample이 있다면 이 분류기의 성능은 어떻게 정의 할 수 있을 것인가? 

샘플을 k로의 집단으로 나눈다(이때, 각 집단의 mean은 비슷할 수 있도록 나눈다) 

분류기를 k-1개의 집합으로 학습을 시키고 나머지 1개의 집합으로 test하여 분류기의 성능을 측정한다

이 과정을 서로다른 k번 수행 하고 획득한 k번의 정확도를 평균하여 그것을 분류기의 성능으로 정의할 수 있다. 

극단적으로, K=N으로 하여, 샘플의 숫자만큼 반복 측정을 하는것을 하나 남기기(leave-one-out) 또는 잭나이프(jackknife)기법이라고 한다. 

leave one out방법에서는 1개의 샘플로 테스트를 반복해서 하는 것이다. 


교차검증의 장점은 가지고있는 샘플의 대부분을 training에 쓸수 있다는 것이 매력적이다. 특히 k가 N에 가까워 질 수록 그런데 그만큼 시간이 많이 걸린다. 



반응형