모델 선택을위한 중첩 교차 검증


91

모델 선택을 위해 어떻게 중첩 교차 검증을 사용할 수 있습니까?

온라인에서 읽은 내용에서 중첩 CV는 다음과 같이 작동합니다.

  • 내부 CV 루프가 있으며 그리드 검색을 수행 할 수 있습니다 (예 : 사용 가능한 모든 모델 (예 : 하이퍼 파라미터 / 기능 조합)에 대해 K- 폴드 실행)
  • 외부 CV 루프가 있는데, 여기서 내부 폴드에서 얻은 모델의 성능을 별도의 외부 폴드에서 측정합니다.

이 프로세스가 끝나면 모델 ( 는 외부 루프의 접기 수)로 끝납니다 . 이러한 모델은 내부 CV 내에서 그리드 검색에서 이기는 모델이며, 서로 다를 수 있습니다 (예 : 그리드 검색에 따라 다른 커널을 가진 SVM, 다른 기능으로 훈련 됨).케이케이

이 출력에서 ​​모델을 어떻게 선택합니까? 모델에서 최고의 모델을 선택하는 것은 각 모델이 데이터 세트의 다른 부분에서 훈련되고 테스트 되었기 때문에 공정한 비교가 아닐 것입니다.케이

그러면 모델 선택에 중첩 CV를 어떻게 사용할 수 있습니까?

또한 중첩 모델 선택이 학습 절차를 분석하는 데 유용한 방법을 설명하는 스레드를 읽었습니다. 외부 K 접기에서 얻은 점수로 어떤 유형의 분석 / 확인을 수행 할 수 있습니까?

답변:


76

이 [외부 교차 검증] 출력에서 ​​모델을 어떻게 선택합니까?

짧은 대답 : 그렇지 않습니다.

대접 내부 모델 피팅 절차의 일환으로 교차 검증을. 이는 하이퍼 파라미터의 피팅을 포함하는 피팅 (내부 교차 검증이 숨겨지는 곳)이 다른 모델 분석 루틴과 동일하다는 것을 의미합니다.
외부 교차 검증은이 모형 적합 접근법의 성능을 추정합니다. 이를 위해 일반적인 가정을 사용하십시오.

  • 외부 대리 모델에 의해 만들어진 "진짜"모델에 해당합니다 모든 데이터.케이model.fitting.procedure
  • 또는 1. 고장 (리샘플링 검증의 비관적 편향)이 발생하는 경우, 적어도 외부 대리 모델이 서로 동등합니다. 이를 통해 테스트 결과를 풀링 (평균) 할 수 있습니다. 또한 기본적으로 동일하다고 가정하므로 선택하지 않아도됩니다. 이 두 번째 약한 가정의 세분화는 모델 불안정성입니다.케이

마십시오 하지 의 겉으로는 최고의 선택 대개 "수확"테스트 불확실성하고 낙관적 편견에 이르게 것이라고 - 대리 모델.케이

그러면 모델 선택에 중첩 CV를 어떻게 사용할 수 있습니까?

내부 CV 선택을한다.

K 모델에서 최고의 모델을 선택하는 것은 각 모델이 데이터 세트의 다른 부분에서 훈련되고 테스트 되었기 때문에 공정한 비교가 아닐 것입니다.

케이

  • 동일한 테스트 데이터가없는 경우 : 나중에 테스트 결과가 일반 데이터를 보지 못하도록 일반화된다고 주장하기 때문에 차이가 없습니다.
  • 동일한 교육 데이터가없는 경우 :
    • 모델이 안정적인 경우에는 차이가 없습니다. 여기서 안정적이란 몇 가지 사례를 다른 사례로 대체하여 교육 데이터가 "교란"된 경우 모델이 많이 변경되지 않음을 의미합니다.
    • 모델이 안정적이지 않으면 세 가지 고려 사항이 중요합니다.
      1. 케이
      2. 케이
      3. 불안정성이 실제 문제라면 "실제"모델의 성능을 잘 외삽 할 수 없습니다.

마지막 질문으로 안내합니다.

외부 K 접기에서 얻은 점수로 어떤 유형의 분석 / 확인을 수행 할 수 있습니까?

  • 예측의 안정성 확인 (반복 / 반복 교차 검증 사용)
  • 최적화 된 하이퍼 파라미터의 안정성 / 변형을 확인하십시오.
    한 가지로, 산란 하이퍼 파라미터는 내부 최적화가 작동하지 않았 음을 나타낼 수 있습니다. 또 다른 방법으로, 향후 유사한 상황에서 고비용의 최적화 단계없이 하이퍼 파라미터를 결정할 수 있습니다. 비용이 많이 드는 계산 리소스는 아니지만 "정상"모델 매개 변수를 추정하는 데 더 잘 사용될 수있는이 "비용"정보를 말합니다.

  • 선택한 모형의 내부 및 외부 추정값의 차이를 확인하십시오. 큰 차이가있는 경우 (내부가 지나치게 낙관적 임) 과적 합으로 인해 내부 최적화가 제대로 작동하지 않을 위험이 있습니다.


@ user99889의 질문을 업데이트하십시오. 외부 CV가 불안정성을 발견하면 어떻게해야합니까?

우선, 외부 CV 루프에서 모델이 안정적인 예측을 제공하지 않는다는 점을 감지하는 것은 사전 오류가 응용 프로그램에 비해 너무 높은 것을 감지하는 것과 실제로 다르지 않습니다. 모델 검증 (또는 검증)의 가능한 결과 중 하나는 우리가 보유한 모델이 목적에 맞지 않음을 암시합니다.

@davips에 대한 의견에서 나는 내부 CV 의 불안정성을 해결하려고 생각했습니다. 즉, 모델 최적화 프로세스의 일부입니다.

그러나 외부 CV의 결과를 바탕으로 모델을 변경하는 경우 변경된 모델에 대한 또 다른 독립적 인 테스트가 필요합니다.
그러나 외부 CV의 불안정성은 최적화가 제대로 설정되지 않았 음을 나타내는 신호이므로 외부 CV의 불안정성을 발견하면 내부 CV가 필요한 방식으로 불안정성을 페널티하지 않았 음을 의미합니다. 그러한 상황에서 비평. 다시 말해 최적화가 왜 모델을 과도하게 적합하게 만들 수 있습니까?

그러나 여기서 IMHO 정확한 상황신중하게 고려한 후 "최종"모델의 추가 변경 을 용인 할 수 있다는 특이점이 있습니다 . 방향이어야 이하 overfitting (overfitting 또는 적은 경향이 상기 하이퍼 파라미터에서). 독립적 인 테스트의 포인트는 과적 합을 감지하는 것입니다. 과적 합은 훈련 과정에서 이미 사용 된 데이터로 감지 할 수 있습니다.

예를 들어 PLS 모델에서 잠재적으로 유사한 잠재적 변수의 수를 추가로 줄이는 것에 대해 이야기하고 있다면 제안 된 변경이 완전히 다른 유형의 모델 인 경우 SVM 대신 PLS라고 말하면 모든 베팅이 해제됩니다. ), 우리가 어쨌든 모델링의 중간 단계에 있다는 것을 알고 있다면 더 편할 것입니다. 결국 최적화 된 모델이 여전히 불안정하다면 더 많은 사례가 필요하다는 의문의 여지가 없습니다. 또한 많은 상황에서 결국 성능의 다양한 측면을 올바르게 테스트하도록 설계된 연구를 수행해야합니다 (예 : 미래에 수집 한 데이터에 대한 일반화). 그래도 전체 모델링 프로세스를보고해야하며 이러한 늦은 변경의 의미를 신중하게 논의해야한다고 주장합니다.

또한 이미 사용 가능한 결과를 통해 종합적인 아날로그 CV 추정값을 포함한 집계 가 가능할 것입니다. 이것은 여기서 양성 적이라고 생각할 모델의 다른 유형의 "후 처리"입니다. 그럼에도 불구하고, 연구가 처음부터 집계가 개별 예측에 비해 이점을 제공하지 않는지 확인하는 것이 더 나았을 것입니다 (이는 개별 모델이 안정적이라고 말하는 또 다른 방법입니다).


업데이트 (2019) :이 상황에 대해 더 많이 생각할수록 "중첩없이 중첩 교차 검증"접근법 을 선호합니다 .


Wrt 모델 선택은 분류 기가 불안정한 경우 최상의 성능 중에서 중간 성능을 가진 모델을 선택해야합니까? 이 선택은 내부 성능과 외부 성능을 비교하려는 제안과 유사합니다.
viyps

2
@davips : 모형이 불안정하면 최적화가 작동하지 않습니다 (불안정성으로 인해 추가 편차가 발생 함). 그러나 중간 (또는 평균) 성능을 가진 하나의 모델을 선택해도 도움이되지 않습니다. 대신 모델이 불안정한 경우 더 제한적인 모델 (예 : 더 강력한 정규화)을 수행하거나 모델 앙상블 (하나의 모델을 선택하는 것과 근본적으로 다른)을 구성하는 것이 좋습니다.
cbeleites

1
@ user99889 : 업데이트 된 답변을 참조하십시오.
cbeleites 16:24에

1
@ user99889 : 예-그러나 기적을 기대하지 마십시오. 80 %의 사례 (k = 5)로 훈련 할 때 안정성이 문제인 경우 80 % / k = 5 대리 모델에 비해 k = 10, 즉 90 %의 n = 추가 12.5 % 인 경우 여전히 문제가 될 수 있습니다.
cbeleites

1
@cbeleites : 관련 가설. 매개 변수 공간 c : [1,2,3]을 검색하기로 결정했다고 가정하십시오. 전체 데이터 세트에서 중첩 CV를 수행하고 성능이 그리 좋지 않습니다. 따라서 검색 공간을 c : [0.5,1,1.5,2,2.5,3,3.5,4]로 확장합니다. 내가 아주 나쁜 일을 했습니까? 테스트 데이터에서 얻은 지식을 기반으로 매개 변수 공간 (모델링 프로세스의 일부)을 본질적으로 변경 했으므로 현재 데이터 세트 외부의 데이터 세트에서 평가해야합니까? 최선이라고 생각되면 별도로 질문하십시오.
user0

27

cebeleites 우수 답변 (+1) 외에도 기본 검증은 교차 검증이 모델 자체가 아닌 모델 피팅 방법 의 성능을 평가하는 데 사용된다는 것입니다. 모델 선택을 수행해야하는 경우 교차 검증 절차의 각 접힘에서 모델 피팅 절차의 필수 부분이므로 독립적으로 수행해야합니다. 교차 유효성 검사 기반 모델 선택 절차를 사용하면 중첩 된 교차 유효성 검사가 끝납니다. 각 교차 검증의 목적을 고려하는 것이 도움이됩니다. 하나는 모델 선택이고 다른 하나는 성능 평가입니다.

중첩 교차 유효성 검사를 사용하여 해당 모델에서 기대할 수있는 성능에 대한 아이디어를 얻은 후 모델 (모델 선택 포함)을 전체 데이터 세트에 피팅하여 최종 모델을 만들 것입니다.


1
왜해야 get an idea of the performance합니까?
viyps

1
@davips 일반적으로 통계적 방법이 실제적인 목적으로 사용될 경우, 사용자는 종종 그것이 얼마나 잘 작동하는지에 대한 아이디어를 원할 것입니다 (예 : 의료 검진 테스트). 또한 기계 학습 알고리즘을 개발하는 경우 경쟁 방법과 비교하여 성능이 얼마나 좋은지에 대한 편견없는 추정값을 갖는 것이 유용합니다. 또한 방법이 실제로 작동하는지 여부를 검증하는 유용한 수단이기도합니다 (이는 교차 검증을 사용하여 매개 변수를 선택하고 성능을 추정하는 경우 무효화 됨).
Dikran Marsupial

5
따라서 최종 모델에서 사용할 매개 변수를 실제로 결정하려면 내부 루프를 한 번 수행하십시오. 따라서 내부 루프가 10 배 검증 인 경우 각 모델의 1/10을이 모델에서 10 회 반복 한 다음 평균 오류가 가장 작은 파라미터 값을 선택합니까? 그런 다음 전체 데이터 세트에서 해당 매개 변수 값으로 모델을 재교육합니까?
emschorsch

2
네 맞습니다. r
Dikran Marsupial

1
@FedericoTedeschi 편견없는 성능 추정값을 얻기 위해 단순히 다른 분할이 아닌 교차 검증을 중첩해야합니다 (내 논문 jmlr.csail.mit.edu/papers/volume11/cawley10a/cawley10a.pdf 의 섹션 5.3 참조 ) . 일반적으로 LOOCV는 효율적으로 계산할 수있는 모델의 모델 선택에 대해서만 LOOCV를 사용하고 모델의 작은 데이터 세트에 대해서는 부트 스트랩 / 배지를 사용합니다 (OOB 오류가 외부 교차 검증을 대체 함).
Dikran Marsupial

7

나는 아무도 첫 번째 질문에 실제로 대답했다고 생각하지 않습니다. "교차 된 교차 유효성 검사"를 통해 GridSearch와 결합 할 수 있다고 생각합니다. 일반적으로 GridSearch에는 CV가 내장되어 있으며 테스트하려는 접기 수에 대한 매개 변수를 사용합니다. 이 두 가지를 결합하는 것이 좋은 방법이라고 생각하지만 GridSearch 및 CrossValidation의 모델은 최종 모델이 아닙니다. 최상의 매개 변수를 선택하고 결국에는 모든 데이터를 사용하여 새 모델을 교육하거나 보이지 않는 데이터에 대해서도 CrossValidation을 수행 한 다음 모델이 실제로 좋은 경우 모든 데이터에 대해 교육해야합니다. 이것이 최종 모델입니다.


3
파이썬에서 명확히하기 위해 scikit-learn GridSearchCV(refit=True)은 실제로 최상의 매개 변수를 사용하여 FULL 데이터에 모델을 다시 맞추 므로 추가 단계가 필요하지 않습니다. 문서보기
Paul

당신은 개조 옵션에 대해 옳습니다. 나는 단지 명백한 tbe를 진술하고 있었다!!
anselal

"GridSearch의 모델은 최종 모델이 아닙니다". 하지만 내 포인트는 수리 = TRUE와 그리드 검색 모델이다 입니다 최종 모델. 당신과 내가 같은 페이지에 있다는 것을 의미합니까? 그러나 CV를 사용한 그리드 검색에서 중첩이 발생하는 위치를 여전히 알 수 없습니다. 그것은 나에게 CV의 단일 레이어처럼 보입니다 (예 : 그리드 검색에서 5 배 CV는 CV의 단일 레이어입니다).
Paul

우리는 수리에 대해 같은 페이지에 있습니다. 그러나 중첩 된 CV와 함께 우리는 당신이 훈련에서 일부 데이터를 떠나이 일반화된다 있는지 확인하기 위해 최종-최종 모델을 테스트, 당신의 GridSearch 외부의 다른 CV 루프를 만드는 것을 의미한다 (알 수없는 데이터에 대한 좋은 예측한다)
anselal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.