일반 영어로 교차 검증?


답변:


54

다음 상황을 고려하십시오.

지하철을 타서 내 사무실로 가고 싶습니다. 내 계획은 내 차를 타고 지하철에 주차 한 다음 기차를 타고 내 사무실로가는 것입니다. 나의 목표는 매일 오전 8시 15 분에 열차를 타서 정시에 사무실에 도착하는 것입니다. 다음 사항을 결정해야합니다. (a) 집을 떠나야하는 시간 및 (b) 역으로 운전하기 위해 취할 경로.

위의 예에서는 두 가지 매개 변수 (예 : 집에서 출발하는 시간과 역으로가는 경로)가 있으며 오전 8시 15 분까지 역에 도착하도록 이러한 매개 변수를 선택해야합니다.

위의 문제를 해결하기 위해 월요일, 수요일 및 금요일에 다른 '매개 변수'(즉, 출발 및 경로 시간의 다른 조합)를 시도하여 어떤 조합이 '최고의'조합인지 확인할 수 있습니다. 아이디어는 일단 최고의 조합을 확인한 후에는 매일 사용할 수있어 목표를 달성 할 수 있다는 것입니다.

과적 합 문제

위의 접근 방식의 문제점은 내가 과도하게 맞을 수 있다는 것입니다. 이는 본질적으로 내가 식별 한 최상의 조합이 어떤 의미에서 월, 수 및 금요일에 고유 할 수 있으며 그 조합이 Tue 및 Thu에 작동하지 않을 수 있음을 의미합니다. 시간과 경로의 최상의 조합을 검색 할 때 화 / 목 / 금에 발생하지 않는 Mon / Wed / Fri의 교통 상황을 악용하면 과적 합이 발생할 수 있습니다.

과적 합에 대한 하나의 솔루션 : 교차 검증

교차 검증은 과적 합에 대한 하나의 솔루션입니다. 아이디어는 최적의 매개 변수 조합 (이 경우 시간 및 경로)을 식별 한 후 다른 컨텍스트에서 해당 매개 변수 집합의 성능을 테스트한다는 것입니다. 따라서 우리는 선택이 그 당시에도 제대로 작동하는지 확인하기 위해 Tue와 Thu를 테스트하고 싶을 수도 있습니다.

통계에 비유 확장

통계적으로 비슷한 문제가 있습니다. 우리는 종종 알려지지 않은 미지의 파라미터를 추정하기 위해 제한된 데이터 세트를 사용합니다. 만약 우리가 과적 합하면 우리의 모수 추정값은 기존 데이터에 대해서는 잘 작동하지만 다른 상황에서 사용할 때는 적합하지 않습니다. 따라서 교차 검증은 모수 추정치가 추정치에 사용 된 데이터에 고유하지 않다는 확신을 제공함으로써 위의 과적 합 문제를 피하는 데 도움이됩니다.

물론, 교차 검증은 완벽하지 않습니다. 지하철의 예로 돌아가서 교차 유효성 검사 후에도 다양한 문제 (예 : 건설, 시간 경과에 따른 교통량 변화 등)로 인해 1 개월 동안 최선의 매개 변수 선택이 작동하지 않을 수 있습니다.


2
기술적으로 이것은 홀드 아웃 유효성 검사이지만 지하철 예제를 교차 유효성 검사 컨텍스트로 확장하는 것을 상상할 수 있습니다. 도움이된다면 교차 유효성 검사에 맞게 예제와 나머지 텍스트를 다시 작성하겠습니다.

@srikant .. 단어로서 과적 합이라는 단어는 무언가가 "과도하게"수행되었다는 것을 의미합니다. 변수가 없습니까? 여러 번 과적 합이라는 용어를 듣게되어 죄송합니다.이 문제를 해결하기 위해이 기회를 잡으십시오.
ayush biyani

1
CV가 홀드 아웃 테스트와 어떻게 다른지에 대한 핵심 인 접기 개념을 추가하여이 답변을 개선 할 수 있다고 생각합니다. 예에서 (월요일은 약어 M, 화요일은 T, ..., R은 목요일 ...) : TWRF에서 가장 좋은 조합을보고 M에서 작동하는 방식을 확인한 다음 MWRF를 확인하십시오. 따라서 T 등에서 작동합니다. 따라서 매일 문제의 한 부분으로 네 번, 문제를 한 번 확인하는 데 사용되지만 같은 라운드에서 문제와 확인으로 사용되지는 않습니다.
Wayne

43

나는 이것이 다음 그림 과 함께 가장 잘 설명되어 있다고 생각합니다 (이 경우 k- 겹 교차 검증).

대체 텍스트

교차 검증은 특히 데이터 양이 제한 될 수있는 경우 예측 모델에서 과적 합을 방지하기 위해 사용되는 기술입니다. 교차 유효성 검사에서는 고정 된 수의 데이터 접기 (또는 파티션)를 만들고 각 접기에 대해 분석을 실행 한 다음 전체 오류 추정의 평균을 구합니다.


2
이 사이트의 다른 곳에서는 k- 폴드 교차 검증이 교차 검증의 한 유형일 뿐이며 교차 검증이 무엇인지 설명하는 일반적인 작업을 수행하지 않는다고 설명합니다.
russellpierce

3
@ drknexus : 그것은 공평하지만 k- 폴드라고 언급하고 프로세스를 시각화하여 프로세스를 설명하고 싶었습니다.
Shane

빠른 설명 : nfold = 4는 테스트 세트에 대해 25 %를 의미합니다. nfold = 5는 시험 세트에 대해 20 %를 의미하고; nfold = 10은 테스트 세트에 대해 10 %를 의미합니다. nfold = n은 100 / n 퍼센트가 테스트 세트에 들어가는 것을 의미합니까?
johnjps111

9

"훈련 된 모델이 독립적 인 데이터에서 잘 작동하도록하여 학습 데이터를 마음에 배우지 마십시오."


3
이것은 cv 자체에 대한 설명이 아니라 cv에 대한 동기입니다.
jbaums

6

어떤 과정을 조사한다고 가정 해 봅시다. 이를 설명하는 데이터를 수집했으며 모델을 작성했습니다 (통계 또는 ML은 중요하지 않음). 그러나 지금, 그것이 정상인지 판단하는 방법? 아마도 그것은 그것이 구축 된 데이터에 의심스럽게 적합하기 때문에 아무도 당신의 모델이 당신이 생각하기에 너무 훌륭하다고 생각하지 않을 것입니다.
첫 번째 아이디어는 데이터의 하위 집합을 분리하고이를 사용하여 나머지 데이터에 대한 방법으로 모델 빌드를 테스트하는 것입니다. 이제 결과는 확실히 과적 합하지 않고 그럼에도 불구하고 (특히 작은 세트의 경우) 더 운이 적고 테스트하기가 더 간단한 사례가 될 수 있으므로 예측하기가 더 어려워집니다. 오차 / 양호 추정치는 분포에 대해 아무것도 모르기 때문에 모델 비교 / 최적화에는 쓸모가 없습니다.
확실하지 않은 경우에는 무차별 대입을 사용하므로 위의 프로세스를 복제하고 정확도 / 오류 / 양호에 대한 몇 가지 추정치를 수집하여 평균화하면 교차 검증이 가능합니다. 더 나은 추정치 중에서도 히스토그램을 얻을 수 있으므로 분포를 근사화하거나 일부 비모수 적 검정을 수행 할 수 있습니다.
그리고 이것입니다; 테스트 트레인 분할의 세부 사항은 CV 유형이 다른 이유이지만, 드문 경우와 작은 강도 차이를 제외하고는 동일합니다. 실제로 그것은 방탄 공정 방법이기 때문에 큰 이점입니다. 그것을 속이는 것은 매우 어렵다.


3

교육 시점에 테스트 데이터에 액세스 할 수없고 보이지 않는 테스트 데이터에서 모델이 잘 작동하기를 원하기 때문에 작은 부분을 반복적으로 서브 샘플링하여 일부 테스트 데이터에 액세스 할 수 있다고 가정합니다. 학습 데이터를 학습하고 모델을 학습하는 동안이 세트를 보유한 다음 보류 된 세트를 테스트 데이터에 대한 프록시로 취급합니다 (보류 된 데이터에서 최상의 성능을 제공하는 모델 매개 변수 선택). 학습 데이터에서 다양한 하위 집합을 무작위로 샘플링하여 테스트 데이터처럼 보이게 만들 수 있기를 희망하므로 학습 된 모델 매개 변수는 테스트 데이터 (예 : 모델)에도 적합합니다. 보이지 않는 데이터에 대해 잘 일반화합니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.