중첩 교차 검증 사용


14

Model Selection 의 Scikit Learn 페이지 에는 중첩 교차 검증 사용에 대해 언급되어 있습니다.

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

두 개의 교차 검증 루프가 병렬로 수행됩니다. 하나는 감마를 설정하기 위해 GridSearchCV 추정기에 의해, 다른 하나는 추정기의 예측 성능을 측정하기 위해 cross_val_score에 의해 다른 것입니다. 결과 점수는 새 데이터에 대한 예측 점수의 편향되지 않은 추정치입니다.

내가 이해 한 바에 따라 clf.fit교차 검증을 기본적으로 사용하여 최상의 감마를 결정합니다. 이 경우 왜 위에서 주어진 cv를 사용해야합니까? 이 노트는 중첩 된 cv가 예측 점수의 "편견없는 추정치"를 생성한다고 언급합니다. 그것도 그렇지 clf.fit않습니까?

또한 cross_validation.cross_val_score(clf, X_digits, y_digits)절차 에서 clf 최상의 추정치를 얻을 수 없었습니다 . 어떻게 할 수 있는지 조언 해 주시겠습니까?

답변:


18

GC Cawley 및 NLC Talbot, 성능 평가에서 모델 선택 및 후속 선택 바이어스에 과적 합, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, 2010 년 7 월. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf )

예시적인 예와 실험적 평가에 대한 편견의 이유는 논문에서 찾을 수 있지만, 본질적으로 요점은 성능 평가 기준이 어떤 방식 으로든 모델에 대한 선택을한다면, 그 선택은 (i) 일반화 성능의 진정한 개선 및 (ii) 성능 평가 기준이 평가되는 특정 데이터 샘플의 통계적 특성. 다시 말해, 하이퍼 파라미터를 튜닝 할 때 교차 검증 오류에 너무 적합 할 수 있기 때문에 바이어스가 발생합니다.


5

홀드 아웃 테스트 세트를 사용 clf.fit하면 편향되지 않은 추정값 하나가 생성 되고 중첩 교차 검증 cross_val_score여러 개의 편향되지 않은 추정값 이 생성 됩니다. 중첩 교차 검증의 장점은 알고리즘에서 아직 보지 못한 데이터를 사용하여 실제 성능을 더 잘 평가할 수 있다는 것입니다. 예를 들어, 1 개 대신 중첩 된 cv로 3 개의 테스트 점수를 얻으므로보다 나은 평가가 가능합니다.

최고의 추정치에 관한 두 번째 질문에 대한 대답은 현재 (v0.14) 중첩 된 cv를 사용하여 적합 모델의 매개 변수를 얻을 수 없다는 것 cross_val_score입니다. 예를 들어 여기에 내 대답을 참조하십시오 .

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