교차 검증 및 파라미터 튜닝


17

교차 검증 결과가 정확히 무엇인지 알려주는 사람이 있습니까? 그것은 단지 평균 정확도입니까 아니면 매개 변수가 조정 된 모델을 제공합니까?

교차 검증이 매개 변수 조정에 사용된다고 들었습니다.

답변:


26

교차 유효성 검사는 데이터의 임의의 여러 파티션을 훈련 및 테스트 샘플로 평균화하여 샘플 외부 정확도를 측정합니다. 매개 변수의 여러 (또는 많은) 가능한 값에 대해 교차 검증을 수행하고 가장 낮은 교차 검증 평균 오류를 제공하는 매개 변수 값을 선택하여 매개 변수 튜닝에 자주 사용됩니다.

따라서 프로세스 자체는 모델 또는 매개 변수 추정치를 제공하지 않지만이를 사용하여 대안 중에서 선택할 수 있습니다.


12

Jonathan의 답변에 추가하십시오.

그러나 파라미터 튜닝에 교차 검증을 사용하는 경우 실제로 아웃 샘플이 모델의 일부가됩니다. 따라서 최종 모델의 성능을 올바르게 측정하려면 다른 독립 샘플이 필요합니다.

모델 성능 측정을 위해 사용 된 교차 검증은 평균 정확도 이상
을 측정 할 수 있습니다. 교차 검증으로 측정 할 수있는 두 번째 사항은 변화하는 교육 데이터와 관련하여 모델 안정성입니다. 교차 검증은 학습 된 많은 "대리"모델을 구축합니다. 약간 다른 훈련 세트. 모델이 안정적이면 이러한 모든 대리 모델이 동일하며 훈련이 불안정하면 대리 모델이 많이 다릅니다. 예를 들어 동일한 샘플에 대한 서로 다른 대리 모델의 예측 분산 (반복 / 반복 교차 검증) 또는 대리 모델 매개 변수의 분산으로이 "많이 변화"를 정량화 할 수 있습니다.


3

이전 답변에 추가하기 위해 처음부터 시작하겠습니다.

모델을 훈련 데이터에 과도하게 맞출 수있는 방법은 몇 가지가 있으며, 일부는 분명하지만 덜 적습니다. 첫째, 가장 중요한 것은 훈련 매개 변수 (가중치)를 데이터 (로지스틱 회귀 분석의 곡선 맞춤 매개 변수, 신경망의 네트워크 가중치 등)에 과적 합하는 것입니다. 그런 다음 데이터의 노이즈를 모델링합니다. 과적 합하면 기본 생성 함수뿐만 아니라 표본 크기 및 표본이 모집단을 완벽하게 표현한 것이 아니기 때문에 임의성을 포착 할 수 있습니다. 이 과적 합은 모델의 특정 속성 (일반적으로 복잡성)에 불이익을 주어 어느 정도 완화 할 수 있습니다. 이는 신경망에서 일부 뉴런을 제거함으로써 (트랜 아웃이라고 함) 열차 샘플의 성능이 더 이상 크게 개선되지 않으면 훈련을 중단하여 수행 할 수 있습니다.https://ieeexplore.ieee.org/document/614177/ ) 등). 그러나 이러한 정규화 전략은 자체적으로 매개 변수화됩니다 (중지 할 때, 제거 할 뉴런 수 등). 또한 대부분의 머신 러닝 모델에는 교육을 시작하기 전에 설정해야하는 여러 하이퍼 파라미터가 있습니다. 그리고 이러한 하이퍼 파라미터는 파라미터 튜닝 단계에서 조정됩니다.

이를 통해 두 번째로 더 미묘한 유형의 오버 피팅 : 하이퍼 파라미터 오버 피팅이 가능합니다. 교차 검증을 사용하여 샘플의 k-1 배에서 처음부터 모델을 반복적으로 훈련하고 마지막 배에서 테스트함으로써 "최상의"하이퍼 파라미터를 찾을 수 있습니다.

정확히 어떻게 이루어 집니까? 검색 전략 (tenshi에서 제공)에 따라 모델의 하이퍼 파라미터를 설정하고 매번 다른 테스트 접기를 사용하여 모델을 k 번 훈련합니다. 모든 테스트 폴더에서 모델의 평균 성능을 "기억"하고 다른 하이퍼 파라미터 세트에 대해 전체 절차를 반복하십시오. 그런 다음 교차 유효성 검사 중 최고의 성능에 해당하는 하이퍼 파라미터 세트를 선택합니다. 보다시피,이 절차의 계산 비용은 고려해야 할 하이퍼 파라미터 세트의 수에 따라 크게 다릅니다. 그렇기 때문에이 세트를 선택하기위한 몇 가지 전략이 개발되었습니다 (여기서는 tenshi의 말을 일반화하겠습니다).

  1. 그리드 검색 : 각 하이퍼 파라미터에 대해 유한 한 수의 값 을 열거 합니다. 그런 다음 열거 된 하이퍼 파라미터의 모든 조합에 대해 철저한 절차가 수행됩니다. 연속 하이퍼 파라미터가 있으면 모두 시도 할 수 없습니다.
  2. 무작위 그리드 검색 : 일반 그리드 검색과 유사하지만 이번에는 모든 조합을 철저하게 시도하지 않고 가능한 모든 값에 대해 정해진 횟수만큼 샘플링합니다. 여기에서 하이퍼 파라미터에 가능한 값을 열거 할 수있을뿐만 아니라 표본에 대한 분포를 제공 할 수도 있습니다.
  3. BayesianSearch-하이퍼 파라미터 값의 조합이 점수의 예상 개선을 최대화하기 위해 선택됩니다. 자세한 내용 : http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf . 그리고 https://github.com/hyperopt/hyperopt 만 다루는 라이브러리입니다 . tenshi가 권장하는 것만 큼 sklearn과 결합하기가 쉽지 않으므로 sklearn으로 작업하지 않는 경우에만 사용하십시오.
  4. 하이퍼 파라미터 공간에서 안내 검색을위한 다른 방법. 내 경험상 그들은 거의 사용되지 않으므로 여기서 다루지 않습니다.

그러나 하이퍼 파라미터가 데이터를 과도하게 적합하게 할 수 있기 때문에 이것이 끝이 아닙니다. 대부분의 경우 당신은 그것과 함께 살 수 있지만 모델의 일반화 능력을 최대화하려면 하이퍼 매개 변수도 시도하고 규칙 화 할 수 있습니다. 먼저 중첩 그리드 검색 (상세 정보 : http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html) , 토론 : 중첩 교차 검증 을 사용하여 샘플 외부 데이터의 성능을 조금 더 잘 평가할 수 있습니다 . 모델 선택) 또는 하이퍼 파라미터 튜닝에 사용되지 않는 유효성 검사 세트 만 사용하십시오. 하이퍼 파라미터 공간에서의 정규화에 관해서는 다소 개방적인 질문입니다. 일부 아이디어에는 최상의 하이퍼 매개 변수 값이 아니라 중간에 더 가까운 것을 선택하는 것이 포함됩니다. 추론은 다음과 같습니다 : 최고의 하이퍼-파라미터 값은 다른 열차 데이터보다 성능이 좋기 때문에 데이터에 적합 할 가능성이 높고, 잘못된 매개 변수는 나쁜 것입니다. . 앤드류 응 (Andrew Ng)은 이에 관한 논문을 썼습니다. 또 다른 옵션은 검색 공간을 제한하는 것입니다 (여기에 강력한 바이어스를 도입하여 규칙 화하고 있습니다-검색 공간 외부의 값은 분명히 선택되지 않습니다).

참고 사항 : 성능 메트릭으로 정확도를 사용하는 것은 대부분의 경우 매우 나쁜 생각입니다. f1 및 f_beta 점수를 살펴보십시오. 이러한 메트릭은 대부분 이진 분류 문제에서 실제로 최적화하려는 항목을 더 잘 반영합니다.

요약하면, 교차 검증 자체는 샘플 외부 데이터에 대한 모델의 성능을 평가하는 데 사용되지만 하이퍼 매개 변수 공간의 검색 전략 중 하나와 함께 하이퍼 매개 변수를 조정하는 데 사용될 수도 있습니다. 우수한 하이퍼 파라미터를 찾으면 과적 합을 피하거나 최소한 줄일 수 있지만 하이퍼 파라미터도 데이터에 과적 합할 수 있습니다.


2

scikit-learn 배경 출신이라면이 답변이 도움이 될 수 있습니다.

k- 폴드 교차 검증은 데이터를 k파티션 으로 분할하는 데 사용되며 , 추정기는 파티션에서 학습 된 다음 k-1파티션에서 테스트됩니다 kth. 이와 같이, 어떤 파티션을 선택하면해야 kth파티션, 거기 k가능성은. 따라서 추정기 k의 모든 k가능성에 대한 결과 를 얻습니다 .

이것들은 계산 비용이 많이 드는 방법이지만, 다른 추정기를 시도하려면 CV와 함께 하이퍼 파라미터 튜닝을 수행하기 위해 다음 세 가지를 시도 할 수 있습니다.

나는. GridSearchCV- 모든 추정기의 하이퍼 파라미터에 대해 가능한 모든 P 및 C의 전체 목록입니다. 결국 특정 추정기 CV의 평균을 사용하여 최상의 하이퍼 파라미터를 제공합니다.

ii. RandomizedSearchCV- 하이퍼 파라미터의 모든 P 및 C를 수행하지는 않지만 무작위 접근 방식에서는 계산에 더 많은 비용을 절약 할 수있는 가장 정확한 정확한 추정기가 제공됩니다.

iii. BayesSearchCV-scikit-learn 무작위 검색 및 적합 결과를 수행하기위한 Bayesian 최적화의 일부는 아니지만 일부입니다 .

tl : dr : CV는 전달하는 데이터로 인해 추정기에 대한 높은 바이어스 및 높은 분산을 피하기 위해 사용됩니다. 도움이 되었기를 바랍니다.

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