K-폴드 교차 검증에 대한 간단한 가이드
데이터 세트에 대한 모델의 성능을 평가하려면 모델의 예측이 관찰된 데이터와 얼마나 잘 일치하는지 측정해야 합니다.
이를 측정하는 가장 일반적인 방법은 다음과 같이 계산되는 평균 제곱 오차(MSE)를 사용하는 것입니다.
MSE = (1/n)*Σ(y i – f( xi )) 2
금:
- n: 총 관측치 수
- y i : i번째 관측값의 응답 값
- f(x i ): i 번째 관측치의 예측 반응 값
모델 예측이 관측값에 가까울수록 MSE는 낮아집니다.
실제로 우리는 주어진 모델의 MSE를 계산하기 위해 다음 프로세스를 사용합니다.
1. 데이터 세트를 훈련 세트와 테스트 세트로 나눕니다.
2. 훈련 세트의 데이터만 사용하여 모델을 생성합니다.
3. 모델을 사용하여 테스트 세트에 대해 예측하고 테스트의 MSE를 측정합니다.
MSE 테스트는 모델이 이전에 본 적이 없는 데이터에 대해 얼마나 잘 수행되는지에 대한 아이디어를 제공합니다. 그러나 단일 테스트 세트를 사용하는 경우의 단점은 훈련 및 테스트 세트에 사용된 관측값에 따라 MSE 테스트가 크게 달라질 수 있다는 것입니다.
이 문제를 피하는 한 가지 방법은 매번 다른 훈련 및 테스트 세트를 사용하여 모델을 여러 번 적합시킨 다음 테스트 MSE를 모든 테스트 MSE의 평균으로 계산하는 것입니다.
이러한 일반적인 방법을 교차 검증(cross-validation)이라고 하며 특정 형태를 k-겹 교차 검증(k-fold cross-validation) 이라고 합니다.
K-폴드 교차 검증
K-겹 교차 검증에서는 다음 접근 방식을 사용하여 모델을 평가합니다.
1단계: 데이터 세트를 대략 동일한 크기의 k개 그룹, 즉 “접기”로 무작위로 나눕니다.
2단계: 접힌 부분 중 하나를 고정 세트로 선택합니다. 템플릿을 나머지 k-1 접기로 조정합니다. 인장된 플라이의 관찰에 대한 MSE 테스트를 계산합니다.
3단계: 매번 다른 세트를 제외 세트로 사용하여 이 프로세스를 k 번 반복합니다.
4단계: 테스트의 k MSE 평균으로 테스트의 전체 MSE를 계산합니다.
검정 MSE = (1/k)*ΣMSE i
금:
- k: 접힌 횟수
- MSE i : i번째 반복에서 MSE를 테스트합니다.
K를 선택하는 방법
일반적으로 k-겹 교차 검증에 사용하는 접기가 많을수록 MSE 테스트 편향은 낮아지지만 분산은 높아집니다. 반대로, 접는 횟수가 적을수록 편향은 높아지지만 분산은 낮아집니다. 이는 머신러닝의 편향-분산 트레이드오프의 전형적인 예입니다.
실제로 우리는 일반적으로 5~10겹을 사용하도록 선택합니다. An Introduction to Statistical Learning 에서 언급했듯이 이 접기 수는 편향과 분산 간의 최적의 균형을 제공하여 테스트의 MSE에 대한 신뢰할 수 있는 추정치를 제공하는 것으로 나타났습니다.
요약하자면, k-겹 교차 검증에서 k를 선택하는 것과 관련된 편향-분산 트레이드오프가 있습니다.
일반적으로 이러한 고려 사항을 고려할 때 k = 5 또는 k = 10을 사용하여 k-겹 교차 검증을 수행합니다. 이러한 값은 지나치게 높은 편향이나 매우 높은 분산을 겪지 않는 테스트 오류율 추정치를 산출하는 것으로 경험적으로 나타났습니다.
-페이지 184, 통계 학습 소개
K-폴드 교차 검증의 이점
데이터 세트를 단일 훈련 세트와 단일 테스트 세트로 분할하면 테스트 세트의 관측값에 대해 계산된 테스트 MSE는 훈련 세트와 테스트 세트에 사용된 관측값에 따라 크게 달라질 수 있습니다.
k-겹 교차 검증을 사용하면 다양한 훈련 및 테스트 세트 변형을 사용하여 MSE 테스트를 계산할 수 있습니다. 이는 테스트의 MSE에 대한 편견 없는 추정치를 얻을 수 있는 훨씬 더 큰 기회를 제공합니다.
K-겹 교차 검증은 또한 LOOCV(Leave-One-Out 교차 검증) 에 비해 계산상 이점을 제공합니다. 왜냐하면 모델을 n 번이 아닌 k 번만 적합하면 되기 때문입니다.
피팅하는 데 오랜 시간이 걸리는 모델의 경우 k-겹 교차 검증은 LOOCV보다 훨씬 빠르게 테스트 MSE를 계산할 수 있으며 많은 경우 충분한 수의 폴드를 사용하면 각 접근 방식으로 계산된 테스트 MSE가 상당히 유사합니다.
K-폴드 교차 검증 확장
k-겹 교차 검증에는 다음을 포함하여 여러 가지 확장이 있습니다.
반복된 k-겹 교차 검증: k-겹 교차 검증이 단순히 n 번 반복되는 경우입니다. 훈련 세트와 테스트 세트가 혼합될 때마다 일반 k-겹 교차 검증보다 완료하는 데 시간이 더 오래 걸리지만 테스트 MSE 추정의 편향이 더욱 줄어듭니다.
Leave-One-Out 교차 검증: 이것은 k = n 인 k-겹 교차 검증의 특별한 경우입니다. 이 방법에 대한 자세한 내용은 여기에서 알아볼 수 있습니다.
층화된 k-겹 교차 검증: 이는 각 접기가 전체를 대표하는 방식으로 데이터 세트를 재배열하는 k-겹 교차 검증의 버전입니다. Kohavi 가 언급한 것처럼 이 방법은 일반적인 k-겹 교차 검증에 비해 편향과 분산 사이에서 더 나은 균형을 제공하는 경향이 있습니다.
중첩 교차 검증(Nested Cross-Validation): 각 교차 검증 접기에서 k-겹 교차 검증이 수행되는 곳입니다. 이는 모델 평가 중에 하이퍼파라미터 튜닝을 수행하는 데 자주 사용됩니다.