다른 모델 중에서 어떻게 선택하나요?
기계 학습을 평가하는 과정은 모델이 적용에 얼마나 안정적이고 효과적인지 결정하는 데 도움이 됩니다. 여기에는 성능, 지표, 예측 또는 의사 결정의 정확성과 같은 다양한 요소를 평가하는 작업이 포함됩니다.
어떤 모델을 선택하든 다양한 모델 유형, 튜닝 매개변수, 기능 등 모델 중에서 선택할 수 있는 방법이 필요합니다. 또한 모델이 보이지 않는 데이터를 얼마나 잘 일반화할지 추정하려면 모델 평가 절차가 필요합니다. 마지막으로 모델 성능을 정량화하기 위해 다른 절차와 짝을 이루는 평가 절차가 필요합니다.
진행하기 전에 다양한 모델 평가 절차와 작동 방식을 살펴보겠습니다.
위에서 다음과 같이 추론할 수 있습니다.
동일한 데이터에 대한 훈련 및 테스트는 새 데이터에 일반화되지 않고 실제로 유용하지 않은 지나치게 복잡한 모델을 구축하는 과적합의 전형적인 원인입니다.
Train_Test_Split은 샘플 외부 성능에 대해 훨씬 더 나은 추정치를 제공합니다.
K-폴드 교차 검증은 체계적으로 K 열차 테스트를 분할하고 결과를 함께 평균화함으로써 더 나은 성능을 발휘합니다.
요약하자면, train_tests_split은 속도와 단순성으로 인해 교차 검증에 여전히 수익성이 있으며, 이것이 바로 이 튜토리얼 가이드에서 사용할 것입니다.
선택한 절차를 진행하려면 항상 평가 지표가 필요하며, 지표 선택은 해결하려는 문제에 따라 달라집니다. 분류 문제의 경우 분류 정확도를 사용할 수 있습니다. 하지만 이 가이드에서는 다른 중요한 분류 평가 지표에 중점을 둘 것입니다.
새로운 평가 지표를 알아보기 전에 분류 정확도를 검토하고, 장점과 단점에 대해 이야기해 보겠습니다.
이 튜토리얼에서는 768명의 환자의 건강 데이터와 당뇨병 상태가 포함된 Pima Indians 당뇨병 데이터세트를 선택했습니다.
데이터를 읽고 데이터의 처음 5개 행을 인쇄해 보겠습니다. 라벨 열에는 환자에게 당뇨병이 있는 경우 1, 당뇨병이 없는 경우 0이 표시되며, 우리는 다음 질문에 답하려고 합니다.
질문: 환자의 건강 상태를 측정하여 당뇨병 상태를 예측할 수 있습니까?
우리는 기능 메트릭 X와 응답 벡터 Y를 정의합니다. train_test_split을 사용하여 X와 Y를 훈련 및 테스트 세트로 분할합니다.
다음으로 훈련 세트에서 로지스틱 회귀 모델을 훈련합니다. 그런 다음 맞춤 단계에서 logreg 모델 개체는 X_train과 Y_train 간의 관계를 학습합니다. 마지막으로 테스트 세트에 대한 클래스 예측을 수행합니다.
이제 테스트 세트에 대한 예측을 수행했으며 간단히 정확한 예측의 백분율인 분류 정확도를 계산할 수 있습니다.
그러나 분류 정확도를 평가 지표로 사용할 때마다 항상 가장 빈번한 클래스를 예측하여 달성할 수 있는 정확도인 Null 정확도와 이를 비교하는 것이 중요합니다.
무정확도가 질문에 답합니다. 내 모델이 지배적인 클래스를 100% 예측한다면 얼마나 자주 정확할까요? 위 시나리오에서 y_test의 32%는 1입니다. 즉, 환자에게 당뇨병이 있다고 예측하는 멍청한 모델은 68% 확률(0)이 맞습니다. 이는 로지스틱 회귀를 측정할 수 있는 기준선을 제공합니다. 모델입니다.
Null 정확도 68%와 모델 정확도 69%를 비교해 보면 우리 모델이 그다지 좋아 보이지는 않습니다. 이는 모델 평가 지표로서 분류 정확도의 한 가지 약점을 보여줍니다. 분류 정확도는 테스트 테스트의 기본 분포에 대해 아무 것도 알려주지 않습니다.
요약:
이제 혼동행렬을 살펴보겠습니다.
혼란행렬은 분류 모델의 성능을 설명하는 표입니다.
분류기의 성능을 이해하는 데 유용하지만 모델 평가 지표는 아닙니다. 따라서 scikit이 최고의 혼동 행렬을 사용하여 모델을 선택하도록 지시할 수 없습니다. 그러나 혼동 행렬에서 계산할 수 있는 측정항목이 많으며 모델을 선택하는 데 직접 사용할 수 있습니다.
몇 가지 기본 용어를 설명하겠습니다.
측정항목을 어떻게 계산하는지 살펴보겠습니다.
결론:
위 내용은 기계 학습 분류 모델 평가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!