교차 검증 및 파라미터 최적화


14

10 배 교차 검증을 사용할 때 매개 변수 최적화에 대한 질문이 있습니다.

모든 접기 모델 훈련 중에 매개 변수를 수정해야하는지 여부를 묻고 싶습니다. 즉 (1) 모든 접기의 평균 정확도에 대해 최적화 된 매개 변수 집합을 하나 선택합니다.

또는

(2) 모든 접기마다 최적화 된 매개 변수를 찾은 다음 모든 접기마다 다른 최적화 된 매개 변수를 사용하여 모델을 학습 한 다음 접기 테스트 데이터를 각각 테스트하고 결과적으로 모든 접기의 정확도를 평균화해야합니까?

교차 검증을위한 올바른 방법은 무엇입니까? 고마워


이 질문 : stats.stackexchange.com/questions/1826/… 두 가지 큰 답변 (최고 점수)이 있습니다. 귀하의 질문에 도움이 될 것이라고 생각합니다. 두 번째는 정확히 당신이 원하는 것입니다. OBS .:이 의견을 의견으로 작성하고 싶지만 답변을 드릴 수 없습니다.
Augusto

답변:


11

먼저 모델 매개 변수 (예 : 회귀 분석의 특징에 대한 가중치)와 학습 알고리즘에 대한 매개 변수 (및 하이퍼 파라미터)의 두 매개 변수 세트를 구별 해 보겠습니다. 교차 유효성 검사의 목적은 각 접힘에서 학습 한 모집단 샘플에서 잘 일반화되는 학습 매개 변수를 식별하는 것입니다.

보다 구체적으로 : 우리는 학습 매개 변수에 대한 공간을 전 세계적으로 검색하지만 각 폴드 내에서 학습 매개 변수를 수정하고 모델 매개 변수를 학습합니다. 결과는 모든 분야에서 평균적으로 최상의 성능을 발휘하는 학습 매개 변수 여야합니다. 그런 다음이를 사용하여 전체 데이터 세트에서 모델을 학습시킬 수 있습니다.


죄송합니다. 질문하신 매개 변수의 종류는 하이퍼 파라미터입니다.
케빈

libSVM의 매개 변수 c 및 g와 같은. 따라서 위에서 언급 한 (2) 방법과 동일한 c 및 g를 사용하여 모든 접기 모델을 학습 한 다음 가장 좋은 방법을 선택해야합니까? 대단히 감사합니다.
케빈

2
위의 (1)과 (2)는 명확하지 않으므로 명시 적으로 언급하지 않았습니다. 접기에 걸쳐 평균을 계산할 때 작업 메트릭을 최대화하는 c & g 공간을 검색해야합니다. 따라서 c & g를 일정한 값으로 설정하고 모든 접기에서 훈련 및 테스트 절차를 실행하고 평균을 내고 점수를 유지하고 c 또는 g를 수정 한 후 반복합니다. 궁극적으로 최상의 C & G를 찾고 모든 데이터에서 최종 모델을 훈련시킬 수 있습니다.
Joel

대단히 감사합니다. 답변을 요약하려고합니다. fold-1 : (train1, test1) ... fold-10 : (train10, test10) 그런 다음 (c1, g1)을 사용하여 fold-1에서 fold-10으로 훈련하고 테스트합니다. 모든 접기 정확도를 평균하십시오. 동일한 프로세스를 수행하려면 다른 (c2, g2)를 시도하십시오 ... 내가 가장 좋은 (c, g)를 찾을 때까지 반복하십시오. 그리고 최고의 (c, g)의 평균 정확도는 10 배 교차 검증의 결과입니다.
케빈

1
올바른 소리 ...
Joel

16

현재 승인 된 답변이 불행히도 불완전하다고 생각합니다. 나는 문장에 동의하지 않는다

교차 유효성 검사의 목적은 각 접힘에서 학습 한 모집단 샘플에서 잘 일반화되는 학습 매개 변수를 식별하는 것입니다.

이것은 실제로 교차 검증의 매우 중요한 적용이지만 유일한 것은 아닙니다. 일반적으로 두 가지 작업을 수행하려고합니다.

  1. 최고의 모델을 만드십시오
  2. 그것이 얼마나 잘 수행되는지에 대한 정확한 인상을 얻으십시오

이제 알고리즘에 따라 목표 1을 완료하려면 일부 하이퍼 파라미터를 조정해야 할 수 있으며 이는 종종 교차 검증에 의해 수행됩니다. 그러나 이것은 목표 2를 아직 달성하지 못합니다.이를 위해서는 기본적으로 다음과 같이 교차 유효성 검사를 중첩해야합니다.

  • 전체 데이터를 n 개로 분리
  • 각각에 대해 훈련 데이터를 다시 접고 하위 폴더로 분리하십시오.
  • 좋은 하이퍼 파라미터를 배우려면 하위 폴더에서 교차 검증을 사용하십시오.
  • 이러한 하이퍼 파라미터를 사용하면 해당 접기의 훈련 데이터에 대한 모델을 구축 할 수 있습니다
  • 테스트 데이터에서 모델 테스트
  • 다음 배에 반복

좋은 모델을 만들려면 내부 교차 검증이 필요합니다. 좋은 모델을 얻으려면 여전히 그렇게해야합니다. 그러나 모델 성능을 제대로 평가하려면 교차 검증 체계 내에서 모델 구축의 전체 프로세스를 수행해야합니다. 여기에는 대치 등의 단계도 포함됩니다.


1
Erik,이 과정을 수행하는 방법에 대한 참조를 제공해 주시겠습니까?
chao

안녕하세요 @Erik이므로 일반적인 분석 순서는 (1) 교차 검증을 통해 최적의 튜닝 매개 변수 찾기, (2) 전체 교육 데이터 세트에서 모델을 재교육하여 (조정 된 튜닝 매개 변수 사용) 모델 매개 변수를 얻습니다. ) 중첩 된 교차 검증을 사용하여이 방법의 전체 성능 추정치를 확인합니까? 내가 혼란스럽게하는 것은 중첩 CV 프로세스에서 다른 하이퍼 매개 변수를 선택할 수 있다는 것입니다. 따라서 중첩 CV는 위에서 얻은 하이퍼 매개 변수 / 모델 매개 변수의 전반적인 성능을 구체적으로 조사하지 않습니까?
Michelle

1
대화에 조금 늦었지만이 방법을 "중첩"또는 "이중 교차 검증"이라고하며 Tom Fearn의 좋은 설명scikit-의 코드가
MD004
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.