Coding Diary.

(Machine Learning) k-겹 교차 검증 본문

Coding/Machine Learning

(Machine Learning) k-겹 교차 검증

life-of-nomad 2023. 9. 21. 11:20
728x90
반응형

k-겹 교차 검증 (k-fold cross validation)은 머신러닝 모델의 성능을 조금 더 정확하게 평가할 수 있는 방법입니다.

 

지금까지 머신 러닝 알고리즘을 적용해서 모델을 만들 떄를 생각해봅시다. 가장 먼저 주어진 데이터를 training set과 test set으로 나눴습니다. training set 은 모델이 인풋 변수를 이용해서 아웃풋 변수를 예측할 수 있도록 학습시키는 데 사용했고, test set은 학습시킨 모델이 얼마나 예측을 잘 하는지, 모델의 성능이 얼마나 좋은지를 파악하기 위해서 썼습니다.

 

이렇게 모델의 성능을 파악하면 문제가 생길 수 있습니다.

이런 식으로 test set 에서만 성능이 좋은 걸 수 도 있고,

반대로 딱 test set 에서만 성능이 안 좋게 나올 수도 있습니다.

교차 검증은 이런 문제를 해결해주는 방법입니다. 교차 검증 중 가장 많이 쓰이는 k-겹 교차 검증에 대해서 알아보겠습니다.

 

k-겹 교차 검증

k-겹 교차 검증을 할 때는 먼저 전체 데이터를 k개의 같은 사이즈로 나눕니다. 예를 들어 k=5, 데이터가 총 1000개 있다면 이 데이터를 200개씩 5개의 셋으로 나누는 것입니다.

이 데이터 셋들을 이용해서 모델의 성능을 여러 번 검증할 건데 맨 처음에는 가장 위에 있는 데이터 셋을 test set으로 사용하고 나머지를 training set으로 사용합니다.

그다음에는 두 번째 데이터 셋을 test set으로 사용합니다. 나머지 4개를 training set으로 사용해서 다시 모델을 학습시키고, 성능을 파악합니다.

이 과정을 모든 데이터 셋에 반복해 줍니다. 그러면 5개의 테스트 셋에 대한 성능이 있을 텐데요, 이 성능 5개의 평균을 모델 성능으로 보는 겁니다. 모델의 성능을 여러 번 다른 데이터로 검증하기 때문에 평가에 대한 신뢰가 올라가는 것입니다.

 

k 고르기

k는 데이터가 몇 개가 있느냐에 따라 다르겠지만 가장 일반적으로 사용하는 숫자는 5입니다. 그리고 데이터가 많을수록 우연히 test set에서만 성능이 다르게 나올 확률이 적기 때문에 작은 k를 사용해도 됩니다.

728x90
반응형