티스토리 뷰

교차 검증이란?

교차 검증은 모형의 예측 정확도를 추정하는 방법입니다. 모델을 평가하는 한 가지 방법은 모델에 적합한 데이터를 얼마나 잘 예측하는지를 보는 것입니다. 하지만 이것은 너무 낙관적입니다. 특정 데이터 집합에 맞춘 모델은 새로운 데이터보다 해당 데이터 집합에 대해 더 나은 예측을 할 수 있습니다. 또 다른 방법은 일부 데이터를 홀드하고 나머지 데이터를 사용하여 모델을 맞추는 것입니다. 그런 다음 홀딩된 데이터에 대한 정확도를 테스트할 수 있습니다. 교차 검증은 이와 같이 수행되지만 데이터를 보다 효율적으로 사용하려고 합니다. 데이터를 10개의 동등한 부분으로 나눈 다음 각 부분을 연속적으로 홀드 하고 나머지 부분을 사용하여 모형을 적합시킵니다. 이를 통해 예측 정확도의 추정치 10개를 전체 측도로 결합할 수 있습니다.

 

사용 목적

교차 검증은 예측 모델의 일반화 능력을 평가하고 과적합을 방지하기 위해 가장 널리 사용되는 데이터 리샘플링 방법 중 하나입니다. 실제 미래 사례의 예측을 위한 최종 모델을 구축하기 위해 학습 함수(또는 학습 알고리즘) f는 일반적으로 전체 학습 세트에 적용됩니다. 이 최종 모델은 교차 검증할 수 없습니다. 모델 구축 단계에서 교차 검증의 목적은 새로운 데이터에 대한 이 최종 모델의 성능에 대한 추정치를 제공하는 것입니다. 교차 검증은 모델 파라미터들, 예를 들어 k-근접 이웃 분류기에서 최적의 가장 가까운 이웃 수를 조정하기 위해 자주 사용됩니다. 여기서, 교차 검증은 조정 파라미터의 상이한 값들에 대해 여러 번 적용되고, 이후 교차 검증된 오차를 최소화하는 파라미터는 최종 모델을 구축하기 위해 사용됩니다. 따라서, 교차 검증은 과적합 문제를 해결합니다. 회귀 모델링 알고리듬에 적응된 교차 검증, Y-랜덤화 및 테스트 세트 평가와 같은 대부분의 이전 검증 방법도 '혼란 행렬'의 사용에 기초하여 약간의 수정을 거친 후 분류기로 확장할 수 있습니다. 후자는 실제 및 예측 분류에 대한 정보를 포함하며 분류 시스템의 성능을 평가하기 위해 여러 통계적 매개 변수를 도출할 수 있습니다.

 

검검증 방법

대표적으로 K-fold 방법이 있습니다. K-fold 교차 검증에서는 훈련 데이터를 k개의 부분으로 나누거나 접습니다. k-1개의 접힌 데이터를 기반으로 모델을 구축하고 나머지 접힌 부분(검증 집합)에서 모델을 테스트합니다. 우리는 다양한 매개변수 집합을 사용하여 모델의 변형을 구축할 수 있습니다. 그런 다음, 매번 모델 구축에서 다른 접힌 부분을 제외하고 이 절차를 k-1번 반복합니다. 작업을 마친 후 각 매개변수에 대한 값을 선택하기 위해 각 k개의 검증 집합에서 가장 좋은 결과를 얻은 매개변수에 대한 값의 평균을 취할 수 있습니다. 데이터를 훈련, 검증, 테스트의 세 가지 서로 다른 집합으로 나누면 모델을 훈련하는 데 사용되는 관측치 수를 크게 줄일 수 있습니다. K-폴드 교차 검증을 사용하면 모델 매개 변수의 유효성을 여전히 검사할 수 있지만, 더 이상 훈련에 사용할 수 없는 별도의 검증 집합을 유지할 필요는 없습니다. 또한 테스트 세트에 대한 성능 측정치가 나올 때까지 매개 변수를 조정하면 테스트 데이터에 대한 지식이 모델에 '누수'될 수 있으므로 테스트 세트의 매개 변수를 선택하는 것은 좋지 않습니다. 데이터를 훈련 및 검증 집합으로 나누는 이유는 검증 집합을 사용하여 훈련 데이터에 대해 모델이 얼마나 잘 훈련되고 보이지 않는 데이터에 대해 얼마나 잘 수행되는지를 추정하기 위해서였습니다. 이때 K의 크기가 클수록 추정에 유리할 수 있지만, 분할을 많이 하면 검증 집합의 크기가 감소한다는 것을 명심해야 합니다. 다시 말해, 모델을 자신 있게 평가할 수 있는 검증 집합의 샘플이 충분하지 않을 수 있습니다. 계층화-K fold cv, 시간 기반 K-fold cv, 그룹화된 K-fold cv 등 다양한 방법으로 K-fold 교차 검증을 수행할 수 있습니다.