본문 바로가기
👩🏻‍💻TECH/개념정리

[개념정리] K-폴드 교차검증

by Alicia03 2024. 10. 28.

1. K- 폴드 교차검증 

K-폴드 교차검증은 모델의 일반화된 성능을 평가하기 위해 사용되는 방법이다. 

더하여, 모델을 생성하기 전 다양한 모델의 종류에서 어떤 것이 가장 일반적으로 성능이 좋은지를 판단하기 위해서 사용되기도 한다.

 

원리는 다음과 같다.

1) 데이터를 K개로 나눈다.
2) k-1개의 데이터를 학습하고 나머지 하나를 검증용으로 사용하여 k번 검증을 시행한다.  

 

만약 한 번만 데이터를 학습, 검증 데이터로 나누어 사용한다면 우연에 의해 한쪽으로 특정 데이터가 몰리는 경우를 고려할 수 없다. 하지만 데이터를 여러 번 나누어 검증하게 되면 학습, 검증 데이터가 다양하게 구성된 환경에서 모델이 어느정도 나오는지를 살펴볼 수 있다.  

 

2. K의 값을 선택할 때 고려해야 할 점

 

K의 값을 작게 선택하면 계산이 빠르게 나오지만 일반화가 비교적 덜 된 성능을 확인하게 될 수도 있다.

K의 값을 크게 선택하면 정교하게 일반화된 성능이 나오지만 계산이 느리다. 

 

실제로 모델을 생성할 때 k를 5부터 100까지 늘려본 적이 있는데 5개였을 때는 몇초만에 나오던 결과가 100개였을 때는 15분이 넘어 나왔다.

 

k의 값은 정해진 것은 없으나 5~10까지가 자주 사용하는 숫자이며, 데이터의 크기나 특징에 따라 폴드를 늘려가며 성능을 확인하는 것이 좋다. 덧붙여, 데이터셋이 불균형한 경우(e.g. yes의 값이 10%, no의 값이 90%)에는 각 폴드에 클래스가 균형있게 분포하도록 하는 층화 교차검증을 사용하여 데이터의 불균형을 고려한 검증을 해보는 것이 좋다.