[Machine Learning] k겹 교차 검증

k겹 교차 검증

k겹 교차 검증은 머신 러닝 모델의 성능을 좀 더 정확하게 평가할 수 있는 방법입니다.

여태는 그냥 데이터를 트레이닝 셋과 테스트 셋으로 한 번 나누고,
트레이닝 셋을 학습시키는 데 사용하고,
테스트 셋을 평가하는 데 사용했습니다.

이런식으로 하면 실제와는 상관없이 운이 좋게 테스트 셋이 나와서 성능이 좋게 보일 수 있고,
운이 나쁘게 테스트 셋이 나와서 성능이 안좋게 보일 수도 있습니다.
이런 경우에는 모델의 실제 성능을 제대로 파악했다고 말하기 어렵습니다.

교차 검증은 이 문제를 해결해주는 방법이고, k겹 교차 검증은 교차 검증 중에 가장 흔히 쓰이는 방법입니다.

k겹 교차 검증은 먼저 전체 데이터를 k개의 같은 사이즈의 데이터로 나눕니다.

맨 처음에는 첫 번째 데이터 묶음을 테스트 셋으로 사용하고 나머지 데이터를 트레이닝 셋으로 활용합니다.
그 다음에는 두 번째 데이터 묶음을 테스트 셋으로 사용하고 나머지 데이터를 트레이닝 셋으로 활용합니다.
이런식으로 나눠진 모든 테이터 묶음에 반복해줍니다.

결국에는 각 테스트 셋에 대한 성능이 있을텐데,
그 성능들의 평균을 모델의 전체 성능으로 봅니다.
이렇게 하면 모델의 성능을 여러 번 다른 데이터로 검증하기 때문에 평가에 대한 신뢰도가 올라가게 됩니다.

k로 가장 많이 활용하는 숫자는 5입니다.

k로 5를 사용할 경우에는 5겹 교차검증, 10을 사용할 경우에는 10겹 교차검증이라고 부르기도 합니다.

scikit-learn으로 k겹 교차 검증 해보기

Updated:

Leave a comment