k- 폴드 교차 검증을 사용할 때 테스트 세트가 필요합니까?


21

k- 폴드 유효성 검사에 대해 읽었으며 작동 방식을 이해하고 싶습니다.

홀드 아웃 방법의 경우 데이터가 세 세트로 분할되며 테스트 세트는 모델 성능을 평가하기 위해 맨 마지막에만 사용되는 반면 검증 세트는 하이퍼 파라미터 등을 조정하는 데 사용됩니다.

k-fold 방법에서, 우리는 여전히 최종 테스트 세트를 유지하고 훈련 및 하이퍼 파라미터 튜닝을 위해 나머지 데이터 만 사용합니다. 즉, 나머지 데이터를 k 배로 나눈 다음 훈련 후 평균 정확도를 사용합니다 각 접힘 (또는 하이퍼 파라미터를 튜닝하기 위해 선택한 성능 측정 항목)과 함께? 아니면 별도의 테스트 세트를 전혀 사용하지 않고 전체 데이터 세트를 k 폴드로 간단히 분할합니까 (이 경우 k 폴드의 평균 정확도를 최종 정확도로 간주한다고 가정합니다)?


3
그것은 당신이하고 싶은 것에 달려 있습니다. 일반화 된 성능 추정치를 원한다면 모델은 이전에는 본 적이없는 데이터를 테스트해야합니다. 그러나 이것이 단일 홀드 아웃 반복이어야한다는 의미는 아닙니다. 동일한 목표를 달성하기 위해 리샘플링을 사용할 수 있습니다.
Firebug

2
... 이는 하이퍼 파라미터 최적화 / 모델 튜닝에 "유효성 검사"결과를 사용할 때마다 해당 튜닝과 무관 한 다른 검증 단계가 필요하다는 것을 의미합니다. 두 단계 모두에 대해 교차 검증 또는 보류 (또는 부트 스트랩 또는 ...)를 사용할 수 있습니다. CV + CV는 + 당신이 언급 한 3 세트 설치에 리드 버틸 버틸 중첩 CV라고
cbeleites 지원 모니카

답변:


9

K-Fold 방법에서, 우리는 여전히 최후의 테스트 세트를 유지하고 훈련 및 하이퍼 파라미터 튜닝을 위해 나머지 데이터 만 사용합니까 (즉, 나머지 데이터를 k 배로 나눈 후 평균 정확도를 사용합니다) 하이퍼 파라미터를 조정하기 위해 각 폴드 (또는 우리가 선택한 성능 메트릭)에 대한 교육)?

예. 일반적으로 테스트 세트를 사용하여 모델 (예 : 하이퍼 파라미터)을 변경해서는 안됩니다.

그러나 교차 검증은 때때로 하이퍼 파라미터 튜닝 이외의 목적으로 사용될 수 있습니다 (예 : 열차 / 테스트 분할이 결과에 미치는 영향 정도 결정).


6
+1이지만 교차 유효성 검사 + 테스트 세트의 대안으로 중첩 된 교차 유효성 검사를 언급 할 수 있습니다.
amoeba는

1
"때로는 하이퍼 파라미터 튜닝 이외의 목적으로 사용될 수 있습니다". 예를 들어, 검증 목적으로 교차 검증을 사용할 수 있습니다 (= 알 수없는 사례를 테스트하여 일반화 오류를 측정).
cbeleites는 Monica

3

일반적으로 그렇습니다. 기본적으로 바이어스-분산 트레이드 오프에 대해 이야기하고 있습니다. 데이터를 사용하여 모델을 구축하고 (트레이닝 및 유효성 검사 데이터) 다른 하이퍼 파라미터를 반복하고 평균 성능 메트릭을 최대화하려고하면 모델이 표시된 것보다 좋지 않을 수 있습니다.

그러나 특히 작은 데이터 세트의 경우 추가 분할로 인해 더 작은 트레이닝 세트가 생겨 모델이 잘못 될 수 있습니다.


2
이것은 질문에 대한 실제 답변이 아닙니다.
마이클 R. 체닉

수락 된 답변과 상당히 자세한 주석에 무언가를 추가하도록 이것을 확장 할 수 있습니까?
mdewey

1

이상적으로는 (모델 선택을위한) 유효성 검사와 최종 테스트를 혼합해서는 안됩니다. 그러나 k 값이 높거나 일회성으로 남은 경우 테스트 결과를 사용하여 모델 선택을 안내하는 것은 덜 해 롭습니다. 이 시나리오에서는 학술 논문을 작성하는 경우 설명하지 않으려는 경우를 제외하고하지 마십시오. 즉, 항상 별도의 테스트 세트가 있습니다. 실용적인 프로젝트를 구축하고 있다면 괜찮습니다.

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