감독 된 머신 러닝 모델이 과적 합인지 판단하는 방법?


27

감독 된 머신 러닝 모델이 과적 합인지 판단하는 방법을 아는 사람이 있습니까? 외부 검증 데이터 세트가없는 경우 10 배 교차 검증의 ROC를 사용하여 과적 합을 설명 할 수 있는지 알고 싶습니다. 외부 유효성 검사 데이터 집합이있는 경우 다음에 어떻게해야합니까?

답변:


29

한마디로 : 모델을 검증함으로써. 유효성 검증의 주요 이유는 초과 적합이 발생하지 않고 일반화 된 모델 성능을 추정하기위한 것입니다.

과적

먼저 과적 합이 실제로 무엇인지 살펴 보겠습니다. 모델은 일반적으로 훈련 세트에서 일부 손실 기능을 최소화하여 데이터 세트에 맞게 훈련됩니다. 그러나이 교육 오류를 최소화하면 더 이상 모델의 실제 성능에 도움이되지 않고 특정 데이터 세트의 오류 만 최소화 할 수있는 한계가 있습니다. 이는 본질적으로 모델이 학습 세트의 특정 데이터 포인트에 너무 단단히 고정되어 노이즈에서 시작된 데이터의 패턴을 모델링하려고 시도했음을 의미합니다. 이 개념을 초과 적합 이라고 합니다 . 과적 합의 예는 아래에 표시되며 훈련 세트는 검은 색으로, 실제 인구는 백그라운드에서 더 큰 세트입니다. 이 그림에서 파란색 모델이 훈련 세트에 너무 단단히 고정되어 기본 노이즈를 모델링 한 것을 볼 수 있습니다. 여기에 이미지 설명을 입력하십시오

모델이 과적 합인지 여부를 판단하려면 모델이 향후 데이터에 미칠 일반화 된 오류 (또는 성능)를 추정하고이를 훈련 세트의 성능과 비교해야합니다. 이 오류를 추정하는 방법에는 여러 가지가 있습니다.

데이터 세트 분할

일반화 된 성능을 추정하는 가장 간단한 방법은 데이터 집합을 교육 집합, 유효성 검사 집합 및 테스트 집합의 세 부분으로 분할하는 것입니다. 훈련 세트는 데이터를 맞추기 위해 모델을 훈련시키는 데 사용되며, 검증 세트는 최상의 모델을 선택하기 위해 모델 간의 성능 차이를 측정하고 모델 선택 프로세스가 첫 번째에 과도하게 적합하지 않다고 테스트 세트하는 데 사용됩니다. 두 세트.

과적 합의 양을 추정하려면 테스트 세트의 관심 메트릭을 마지막 단계로 평가하고이를 트레이닝 세트의 성능과 비교하십시오. ROC를 언급했지만 내 의견으로는 모델 성능을 보장하기 위해 브리 어 점수 또는 보정 플롯과 같은 다른 메트릭도 살펴 봐야합니다. 이것은 물론 문제에 따라 다릅니다. 많은 측정 항목이 있지만 여기에는 문제가 없습니다.

이 방법은 매우 일반적이며 존중되지만 데이터 가용성에 대한 요구가 높습니다. 데이터 세트가 너무 작 으면 성능이 많이 저하 될 수 있으며 결과는 분할에 편향됩니다.

교차 검증

검증 및 테스트에 데이터의 많은 부분을 낭비하지 않는 한 가지 방법은 모델 검증에 사용 된 것과 동일한 데이터를 사용하여 일반화 된 성능을 추정하는 교차 검증 (CV)을 사용하는 것입니다. 교차 유효성 검사의 기본 개념은 데이터 집합을 특정 수의 하위 집합으로 분할 한 다음 나머지 데이터를 사용하여 모델을 학습하는 동안 테스트 집합으로 지정된 각 하위 집합을 차례로 사용하는 것입니다. 모든 접기에 대한 메트릭을 평균하면 모델 성능을 추정 할 수 있습니다. 최종 모델은 일반적으로 모든 데이터를 사용하여 학습됩니다.

그러나 CV 추정치는 편향되지 않습니다. 그러나 접는 횟수가 많을수록 바이어스가 더 작지만 대신 분산이 커집니다.

데이터 세트 분할에서와 같이 모델 성능을 추정하고 초과 적합성을 추정하기 위해 단순히 CV의 메트릭을 훈련 세트의 메트릭을 평가하여 얻은 메트릭과 비교하면됩니다.

부트 스트랩

부트 스트랩의 기본 개념은 CV와 유사하지만 데이터 세트를 부품으로 나누는 대신 전체 데이터 세트에서 트레이닝 세트를 반복적으로 교체하고 각 부트 스트랩 샘플에 대해 전체 트레이닝 단계를 수행하여 트레이닝에 임의성을 도입합니다.

가장 간단한 형태의 부트 스트랩 유효성 검사는 훈련 세트에없는 샘플 (즉, 누락 된 샘플)의 메트릭을 평가하고 모든 반복에 대한 평균을 계산합니다.

이 방법을 사용하면 대부분의 경우 CV보다 편향이 적은 모델 성능을 추정 할 수 있습니다. 다시 한 번 훈련 세트 성능과 비교하면 오 버핏을 얻을 수 있습니다.

부트 스트랩 유효성 검사를 향상시키는 방법이 있습니다. .632+ 방법은 과도 적합을 고려하여 일반화 된 모델 성능을보다 강력하고 정확하게 추정하는 것으로 알려져 있습니다. (관심있는 원본 기사는 다음과 같습니다 . 교차 검증 개선 사항 : 632+ 부트 스트랩 방법 )

이것이 귀하의 질문에 답변되기를 바랍니다. 모델 검증에 관심이 있으시면 온라인에서 무료로 제공되는 통계 학습의 요소 : 데이터 마이닝, 추론 및 예측 책에서 검증에 대한 부분을 읽는 것이 좋습니다 .


2
모든 필드에서 검증 대 테스트에 대한 용어를 따르지는 않습니다. 예를 들어, 내 분야 (분석 화학) 검증 은 모델이 잘 작동하고 있음을 입증하는 절차입니다. 최종 모델 로 수행되며 이후에는 더 이상 변경이 허용되지 않습니다 (그렇게하면 독립적 인 데이터로 다시 검증해야합니다). 따라서 유효성 검사 세트를 "내부 테스트 세트"또는 "최적화 테스트 세트"라고합니다. "외부"테스트 데이터는 과적 합을 막지않지만 과적 합 정도를 측정하는 데 사용될 수 있습니다.
cbeleites는

좋아, 나는 당신의 분야에 경험이 없습니다. 설명해 주셔서 감사합니다. 다른 분야에서도 마찬가지 일 것입니다. 나는 마지막에 링크 된 책에서 사용 된 용어를 사용했습니다. 너무 혼란스럽지 않기를 바랍니다.
동안

7

과적 합 정도를 추정하는 방법은 다음과 같습니다.

  • 내부 오류 추정치를 얻으십시오. resubstitutio (= 훈련 데이터 예측) 또는 하이퍼 파라미터를 최적화하기 위해 내부 교차 "검증"을 수행하는 경우에도 해당 측정이 관심 대상이됩니다.
  • 독립적 인 테스트 세트 오류 추정치를 얻으십시오. 일반적으로 리샘플링 (또는 아웃 오브 부트 스트랩 * 권장 교차 유효성 검사를 반복.하지만 당신은 데이터 누출이 발생하지 않도록주의해야합니다. 즉, 리샘플링 루프가 다시 계산해야합니다 모든 이상의 경우에 걸친 계산이 단계를. 즉, 사전 포함 센터링, 스케일링 등의 처리 단계. 또한 같은 환자의 반복 측정과 같은 "계층 적"( "클러스터형"데이터 구조라고도 함) (=> 환자 재 샘플링) 최고 수준으로 분할해야합니다. ).
  • 그런 다음 "내부"오차 추정치가 독립된 것보다 얼마나 나은지 비교하십시오.

예를 들면 다음과 같습니다.
과적 합
Trefferrate = 적중률 (정확하게 분류 된 %), Variablenzahl = 변수 수 (= 모델 복잡성)
기호 :. 재 치환, + 하이퍼 파라미터 옵티마이 저의 내부 휴가 1 회 평가, o 환자 수준과 독립적 인 외부 교차 검증

이것은 ROC 또는 Brier의 점수, 감도, 특이성 등과 같은 성능 측정과 함께 작동합니다 ...

* 나는 여기에 .632 또는 .632+ 부트 스트랩을 권장하지 않습니다 : 그들은 이미 대체 대체 오류가 혼합되어 있습니다 : 나중에 다시 대체 및 부트 아웃 추정에서 나중에 계산할 수 있습니다.


0

과적 합은 단순히 통계적 파라미터를 고려한 직접적인 결과이며, 결과는 임의의 방식으로 획득되지 않았 음을 확인하지 않고 유용한 정보로 얻을 수 있습니다. 따라서 과적 합의 존재를 추정하기 위해서는 실제와 동일하지만 무작위로 생성 된 값을 가진 데이터베이스에서 알고리즘을 사용해야합니다.이 작업을 여러 번 반복하면 임의의 방식으로 동등하거나 더 나은 결과를 얻을 확률을 추정 할 수 있습니다 . 이 확률이 높으면 과적 합 상황 일 가능성이 높습니다. 예를 들어, 4 차 다항식이 평면에서 임의의 점 5 개와 1의 상관 관계를 가질 확률은 100 %이므로이 상관 관계는 쓸모가 없으며 과적 합 상태에 있습니다.

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