데이터를 교육 및 테스트 세트로 분할하는 것만으로는 충분하지 않은 이유


18

분류기의 성능에 액세스하려면 데이터를 훈련 / 테스트 세트로 분할해야한다는 것을 알고 있습니다. 그러나 이것을 읽으십시오 :

SVM에 대해 수동으로 설정해야하는 C 설정과 같은 추정기의 다른 설정 (“하이 파라미터”)을 평가할 때 추정기가 최적으로 수행 될 때까지 매개 변수를 조정할 수 있으므로 테스트 세트에 과적 합의 위험이 여전히 있습니다. 이런 식으로 테스트 세트에 대한 지식이 모델에 "누설"될 수 있으며 평가 지표는 더 이상 일반화 성능에 대해보고하지 않습니다. 이 문제를 해결하기 위해 데이터 집합의 또 다른 부분을 소위 "유효성 검사 세트"라고 할 수 있습니다. 훈련은 훈련 세트에서 진행된 후 유효성 검사 세트에서 평가가 수행되고 실험이 성공한 것으로 보입니다 테스트 세트에서 최종 평가를 수행 할 수 있습니다.

하이퍼 파라미터 튜닝 중에 테스트 세트를 과적 합하여 정당화되는 또 다른 (제 3의) 검증 세트가 도입되었음을 알 수 있습니다.

문제는이 과잉 적합이 어떻게 나타날 수 있는지 이해할 수 없으므로 세 번째 세트의 정당성을 이해할 수 없다는 것입니다.


2
나는 여기에 많은 혼란이 "유효성"이라는 용어의 2 ~ 3 개의 다른 의미에서 비롯된 것이라고 생각합니다. 교차 유효성 검사의 유효성 검사는 대부분 교체없이 절차를 나누는 이름입니다. 인용 된 텍스트에 설정된 "유효성 검증"은 IMHO가 "튜닝"또는 "최적화 세트"로 더 잘 이해 될 것입니다. 엔지니어링 또는 분석 화학과 같은 "유효성 검증"은 주어진 최종 방법이 목적에 적합 함을 입증하는 것을 의미합니다. 이는 "테스트"세트에 의해 수행 (시뮬레이션, 근사화)됩니다. (나에게, 테스트는 검증보다 훨씬 덜 최종적인 소리입니다 ...)
cbeleites는 Monica

답변:


17

훈련 데이터에 대해서만 모델을 훈련 시키더라도 테스트 세트를 기반으로 하이퍼 파라미터 (예 : SVM의 경우 를 최적화 합니다. 따라서 본질적으로 최상의 결과를보고하기 때문에 성능 추정치가 낙관적 일 수 있습니다. 이 사이트의 일부 사람들이 이미 언급했듯이 최적화는 통계의 모든 악의 근원입니다 .C

성능 평가는 항상 완전히 독립적 인 데이터에서 수행해야합니다. 테스트 데이터를 기반으로 일부 측면을 최적화하는 경우 테스트 데이터가 더 이상 독립적이지 않으므로 유효성 검사 세트가 필요합니다.

이를 처리하는 또 다른 방법은 중첩 된 교차 유효성 검사 를 사용하는 것입니다.이 유효성 검사는 서로를 감싸는 두 가지 교차 유효성 검사 절차로 구성됩니다. 내부 교차 검증은 튜닝에 사용되며 (최적화 된 주어진 하이퍼 파라미터 세트의 성능을 추정하기 위해) 외부 교차 검증은 전체 기계 학습 파이프 라인의 일반화 성능을 추정합니다 (즉, 하이퍼 파라미터 최적화 + 최종 모델 교육) ).


내가 틀렸을 수도 있지만 테스트 세트는 하이퍼 매개 변수를 튜닝 할뿐만 아니라 대답에 표시된대로 LDA 또는 임의 포리스트와 비교하여 SVM의 성능과 같은 다양한 유형의 기술을 비교하기위한 것입니다.

@fcoppens 그렇습니다. 나는 이것을 명시 적으로 언급하지 않았지만 그것은 분명히 그 단계에 적합합니다.
Marc Claesen

1
보다 일반적으로, 여기서 튜닝 또는 최적화는 모든 종류의 데이터 중심 (내부 교차 검증에 의한) 프로세스입니다.
cbeleites는

@MarcClaesen 질문이 있습니다. 하이퍼 파라미터의 두 가지 값이 있고이 두 모델을 훈련 세트에 적용한 다음 테스트 세트에 적용하면 테스트 세트에서 얻은 오류율이 이 2 가지 모델은? 다른 독립 테스트 데이터 세트를 제공하면이 새로운 테스트 데이터 세트는 본질적으로 이전 테스트 세트와 동일합니다. 따라서 모델의 테스트 점수가 더 좋은 경우 새 테스트 데이터 세트에서 다른 모델보다 성능이 우수해야합니다. 검증 세트가 필요한 이유는 무엇입니까?
KevinKim

"테스트 데이터를 기반으로 일부 측면을 최적화하는 경우 테스트 데이터는 더 이상 독립적이지 않으며 검증 세트가 필요합니다." 통찰력
Sudip Bhandari

11

이런 식으로 생각하는 것이 가장 쉽다고 생각합니다. 모델 / 알고리즘 의 하이퍼 파라미터조정하고 모델 / 알고리즘 의 성능평가하는 데 교차 검증이 사용되는 두 가지가 있습니다.

알고리즘의 실제 훈련의 일부로 처음 사용하는 것을 고려하십시오. 예를 들어, GLM의 정규화 강도를 결정하기위한 교차 검증은 GLM의 최종 결과를 설정하는 것의 일부입니다. 이 사용을 일반적으로 내부 교차 검증 이라고 합니다 . (하이퍼) 파라미터가 여전히 설정되고 있기 때문에, 튜닝 세트 손실 은 실제 알고리즘 성능의 큰 척도가 아닙니다.

교차 검증의 두 번째 용도는 모델을 생성 한 전체 프로세스에서 유지 된 데이터를 사용하여 예측력을 테스트하는 것입니다. 이 과정을 외부 교차 검증 이라고 합니다 .

내부 검증은 모델을 생성 한 프로세스의 일부일 수 있으므로 많은 경우 내부 및 외부 교차 검증이 필요합니다.


개인적으로, 나는 "외부 교차 검증"이라는 문구를 사용하지 않을 것입니다. 교차 검증은 모델 선택 및 튜닝 목적을 위해 훈련 세트와 다른 검증 세트가 반복적으로 분리되는 것으로 볼 수 있기 때문입니다. 최종 세트의 성능을 판단하는 데 사용되는 향후 알 수없는 데이터에 대한 일회성 프록시이므로 테스트 세트를 사용하여이 작업을 반복적으로 수행 할 수 없습니다.
Henry

3
헨리, 나는 당신이 외부 교차 검증을 이해하고 있다고 생각하지 않습니다. 나머지 부분에 대한 전체 교육 절차 (내부 교차 검증 포함)를 실행하는 동안 테스트 목적으로 전체 데이터의 일부를 반복적으로 유지하면서 "테스트 세트를 사용하여이 작업을 반복적으로 수행"할 수 있습니다. 외부 교차 검증은 일반적으로 폴드 단위로 수행되며 모든 원본 데이터가 어느 시점에서 테스트 세트에있게합니다.
jlimahaverford 오전

αα

2

모델 구축 중에는 훈련 샘플 에서 모델을 훈련 시킵니다. 서로 다른 모델을 훈련 시킬 수 있습니다 (예 : SVM, LDA, 랜덤 포레스트 등의 다른 기술 또는 튜닝 매개 변수의 값이 다른 동일한 기술 또는 혼합).

훈련 한 다른 모든 모델 중에서 하나선택 해야 하므로 검증 샘플 을 사용 하여 테스트 샘플에서 가장 작은 오류가있는 모델을 찾습니다.

이 '최종'모델의 경우 여전히 오류추정해야 하므로 테스트 샘플을 사용합니다 .


1
두 번째 및 세 번째 단락의 문구를 뒤집을 것입니다. 유효성 검사 세트를 사용하여 최상의 모델을 찾고 하이퍼 파라미터를 조정합니다 (몇 가지 유효성 검사 세트를 사용하여 훈련 세트를 분할 하여이 교차 유효성 검사를 수행함 ). 모델의 샘플 성능에 대한 예제를 보려면 테스트 세트에 적용하십시오.
Henry

@ 헨리 : OK 헨리, 나는 단계의 레이블이 그들의 순서 / 내용보다 덜 중요하다고 생각하지만, 당신의 말이 나에게 이해가됩니다. 감사합니다 (+1),

1

교차 검증은 모델 선택에서 과적 합 문제를 완전히 극복하지 못하고 감소시킵니다. 교차 유효성 검사 오류는 사용하는 데이터 세트에 따라 다릅니다. 데이터 세트가 작을수록 교차 검증 오류가 더 높습니다.

또한 모형 선택의 자유도가 높은 경우 교차 검증 기준이 과적 합되어 모형의 성능이 저하 될 위험이 있습니다.

따라서 데이터를 훈련 및 테스트 세트라고하는 두 세트로 나누면 분할이 정적으로 수행됩니다. 따라서 훈련 세트를 과도하게 적합시킬 수 있습니다. 그러나 교차 검증 세트는 k- 폴드 교차 검증, LOOCV (Leave-out-one-Cross-Validation) 등과 같은 다른 방법을 통해 생성 되어 2 세트 분할의 정확한 적합 보상이 제거되도록합니다. 따라서 과도한 착용 가능성이 줄어 듭니다.

이것들 은 당신이 더 잘 이해하는 데 도움 되는 몇 가지 자료 입니다.

따라서 교차 검증은 더 작은 데이터 세트가 아닌 더 큰 데이터 세트가있을 때 도움이됩니다.

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