Leave-one-out 교차 검증(loocv)에 대한 빠른 소개


데이터 세트에 대한 모델의 성능을 평가하려면 모델의 예측이 관찰된 데이터와 얼마나 잘 일치하는지 측정해야 합니다.

이를 측정하는 가장 일반적인 방법은 다음과 같이 계산되는 평균 제곱 오차(MSE)를 사용하는 것입니다.

MSE = (1/n)*Σ(y i – f( xi )) 2

금:

  • n: 총 관측치 수
  • y i : i번째 관측값의 응답 값
  • f(x i ): i 번째 관측치의 예측 반응 값

모델 예측이 관측값에 가까울수록 MSE는 낮아집니다.

실제로 우리는 주어진 모델의 MSE를 계산하기 위해 다음 프로세스를 사용합니다.

1. 데이터 세트를 훈련 세트와 테스트 세트로 나눕니다.

기계 학습 교육 및 테스트

2. 훈련 세트의 데이터만 사용하여 모델을 생성합니다.

머신러닝의 LOOCV

3. 모델을 사용하여 테스트 세트에 대해 예측하고 MSE를 측정합니다. 이를 테스트 MSE 라고 합니다. 훈련 또는 테스트 세트

MSE 테스트는 이전에 본 적이 없는 데이터, 즉 모델을 “훈련”하는 데 사용되지 않은 데이터에 대해 모델이 얼마나 잘 수행되는지에 대한 아이디어를 제공합니다.

그러나 단일 테스트 세트를 사용하는 경우의 단점은 훈련 및 테스트 세트에 사용된 관측값에 따라 MSE 테스트가 크게 달라질 수 있다는 것입니다.

훈련 세트와 테스트 세트에 대해 서로 다른 관측 세트를 사용하면 테스트 MSE가 훨씬 더 크거나 작아질 수 있습니다.

이 문제를 피하는 한 가지 방법은 매번 다른 훈련 및 테스트 세트를 사용하여 모델을 여러 번 적합시킨 다음 테스트 MSE를 모든 테스트 MSE의 평균으로 계산하는 것입니다.

이 일반적인 방법을 교차 검증이라고 하며 특정 형태를 Leave-One-Out 교차 검증 이라고 합니다.

Leave-One-Out 교차 검증

Leave-one-out 교차 검증에서는 다음 접근 방식을 사용하여 모델을 평가합니다.

1. 하나의 관측치를 훈련 세트의 일부로 사용하여 데이터 세트를 훈련 세트와 테스트 세트로 분할합니다.

LOOCV

훈련 세트 “외부”에 하나의 관측값만 남겨둔다는 점에 유의하세요. 이것이 바로 이 메소드가 “leave-one-out” 교차 검증이라는 이름을 얻는 곳입니다.

2. 훈련 세트의 데이터만 사용하여 모델을 생성합니다.

LOOCV 접근 방식으로 모델 구축

3. 모델을 이용하여 모델에서 제외된 단일 관측값의 반응값을 예측하고 MSE를 계산합니다.

수동 교차 검증

4. 이 과정을 n 번 반복합니다.

마지막으로, 이 프로세스를 n 번 반복합니다(여기서 n 은 데이터세트의 총 관측값 수). 매번 훈련 세트에서 다른 관측값을 제외합니다.

그런 다음 테스트 MSE를 모든 테스트 MSE의 평균으로 계산합니다.

MSE 테스트 = (1/n)*ΣMSE i

금:

  • n: 데이터 세트의 총 관측치 수
  • MSEi: i 번째 모델 피팅 기간 동안의 MSE 테스트입니다.

LOOCV의 장점과 단점

일대일 교차 검증은 다음과 같은 이점을 제공합니다.

  • n-1개의 관측값을 포함하는 데이터 세트에 모델을 반복적으로 적합시키기 때문에 단일 테스트 세트를 사용하는 것에 비해 MSE 테스트의 편향이 훨씬 덜한 측정값을 제공합니다.
  • 단일 테스트 세트를 사용하는 것에 비해 테스트의 MSE를 과대평가하지 않는 경향이 있습니다.

그러나 핸드오프 교차 검증에는 다음과 같은 단점이 있습니다.

  • n 이 큰 경우 이 프로세스를 사용하는 데 시간이 오래 걸릴 수 있습니다.
  • 모델이 특히 복잡하고 데이터 세트를 맞추는 데 오랜 시간이 걸리는 경우에도 시간이 많이 걸릴 수 있습니다.
  • 이는 계산 비용이 많이 들 수 있습니다.

다행스럽게도 최신 컴퓨팅은 대부분의 영역에서 효율성이 높아져 수년 전보다 LOOCV를 사용하는 것이 훨씬 더 합리적인 방법이 되었습니다.

LOOCV는 회귀 및 분류 컨텍스트에서도 사용될 수 있습니다. 회귀 문제의 경우 MSE 테스트를 예측과 관찰 간의 평균 제곱근 차이로 계산하는 반면, 분류 문제에서는 모델의 n 번 반복 조정에 대해 올바르게 분류된 관찰의 백분율로 MSE 테스트를 계산합니다.

R 및 Python에서 LOOCV를 실행하는 방법

다음 튜토리얼에서는 R 및 Python에서 특정 모델에 대해 LOOCV를 실행하는 방법에 대한 단계별 예를 제공합니다.

R의 Leave-One-Out 교차 검증
Python의 Leave-One-Out 교차 검증

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다