> 백엔드 개발 > 파이썬 튜토리얼 > 기계 학습 분류 모델 평가

기계 학습 분류 모델 평가

WBOY
풀어 주다: 2024-09-07 14:01:07
원래의
1158명이 탐색했습니다.

개요

  • 모델 평가의 목표는 무엇인가요?
  • 모델 평가의 목적은 무엇이며, 어떤 것들이 있나요? 일반적인 평가 절차는 무엇인가요?
  • 분류정확도의 사용법은 무엇이며, 그 의미는 무엇입니까? 제한이 있나요?
  • 혼란 행렬은 성능을 어떻게 설명합니까? 분류기?
  • 혼란 행렬에서 어떤 측정항목을 계산할 수 있나요?

T모델 평가의 목표는 질문에 답하는 것입니다.

다른 모델 중에서 어떻게 선택하나요?

기계 학습을 평가하는 과정은 모델이 적용에 얼마나 안정적이고 효과적인지 결정하는 데 도움이 됩니다. 여기에는 성능, 지표, 예측 또는 의사 결정의 정확성과 같은 다양한 요소를 평가하는 작업이 포함됩니다.

어떤 모델을 선택하든 다양한 모델 유형, 튜닝 매개변수, 기능 등 모델 중에서 선택할 수 있는 방법이 필요합니다. 또한 모델이 보이지 않는 데이터를 얼마나 잘 일반화할지 추정하려면 모델 평가 절차가 필요합니다. 마지막으로 모델 성능을 정량화하기 위해 다른 절차와 짝을 이루는 평가 절차가 필요합니다.

진행하기 전에 다양한 모델 평가 절차와 작동 방식을 살펴보겠습니다.

모델 평가 절차 및 작동 방식.

  1. 동일 데이터에 대한 학습과 테스트
    • 훈련 데이터에 "과적 적합"하고 일반화할 필요가 없는 지나치게 복잡한 모델을 보상합니다
  2. 학습/테스트 분할
    • 데이터 세트를 두 부분으로 분할하여 모델을 다양한 데이터에 대해 훈련하고 테스트할 수 있습니다
    • 표본 외 성능에 대한 더 나은 추정치이지만 여전히 "높은 분산" 추정치입니다
    • 속도, 단순성, 유연성으로 인해 유용함
  3. K-겹 교차 검증
    • 체계적으로 "K" 학습/테스트 분할을 생성하고 결과의 평균을 구합니다
    • 표본 외 성능에 대한 더 나은 예측
    • 학습/테스트 분할보다 "K"배 느리게 실행됩니다.

위에서 다음과 같이 추론할 수 있습니다.

  • 동일한 데이터에 대한 훈련 및 테스트는 새 데이터에 일반화되지 않고 실제로 유용하지 않은 지나치게 복잡한 모델을 구축하는 과적합의 전형적인 원인입니다.

  • Train_Test_Split은 샘플 외부 성능에 대해 훨씬 더 나은 추정치를 제공합니다.

  • K-폴드 교차 검증은 체계적으로 K 열차 테스트를 분할하고 결과를 함께 평균화함으로써 더 나은 성능을 발휘합니다.

요약하자면, train_tests_split은 속도와 단순성으로 인해 교차 검증에 여전히 수익성이 있으며, 이것이 바로 이 튜토리얼 가이드에서 사용할 것입니다.

모델 평가 지표:

선택한 절차를 진행하려면 항상 평가 지표가 필요하며, 지표 선택은 해결하려는 문제에 따라 달라집니다. 분류 문제의 경우 분류 정확도를 사용할 수 있습니다. 하지만 이 가이드에서는 다른 중요한 분류 평가 지표에 중점을 둘 것입니다.

새로운 평가 지표를 알아보기 전에 분류 정확도를 검토하고, 장점과 단점에 대해 이야기해 보겠습니다.

분류 정확도

이 튜토리얼에서는 768명의 환자의 건강 데이터와 당뇨병 상태가 포함된 Pima Indians 당뇨병 데이터세트를 선택했습니다.

Evaluating A Machine Learning Classification Model

데이터를 읽고 데이터의 처음 5개 행을 인쇄해 보겠습니다. 라벨 열에는 환자에게 당뇨병이 있는 경우 1, 당뇨병이 없는 경우 0이 표시되며, 우리는 다음 질문에 답하려고 합니다.

질문: 환자의 건강 상태를 측정하여 당뇨병 상태를 예측할 수 있습니까?

우리는 기능 메트릭 X와 응답 벡터 Y를 정의합니다. train_test_split을 사용하여 X와 Y를 훈련 및 테스트 세트로 분할합니다.

Evaluating A Machine Learning Classification Model

다음으로 훈련 세트에서 로지스틱 회귀 모델을 훈련합니다. 그런 다음 맞춤 단계에서 logreg 모델 개체는 X_train과 Y_train 간의 관계를 학습합니다. 마지막으로 테스트 세트에 대한 클래스 예측을 수행합니다.

Evaluating A Machine Learning Classification Model

Evaluating A Machine Learning Classification Model

이제 테스트 세트에 대한 예측을 수행했으며 간단히 정확한 예측의 백분율인 분류 정확도를 계산할 수 있습니다.

Evaluating A Machine Learning Classification Model

그러나 분류 정확도를 평가 지표로 사용할 때마다 항상 가장 빈번한 클래스를 예측하여 달성할 수 있는 정확도인 Null 정확도와 이를 비교하는 것이 중요합니다.

Evaluating A Machine Learning Classification Model

무정확도가 질문에 답합니다. 내 모델이 지배적인 클래스를 100% 예측한다면 얼마나 자주 정확할까요? 위 시나리오에서 y_test의 32%는 1입니다. 즉, 환자에게 당뇨병이 있다고 예측하는 멍청한 모델은 68% 확률(0)이 맞습니다. 이는 로지스틱 회귀를 측정할 수 있는 기준선을 제공합니다. 모델입니다.

Null 정확도 68%와 모델 정확도 69%를 비교해 보면 우리 모델이 그다지 좋아 보이지는 않습니다. 이는 모델 평가 지표로서 분류 정확도의 한 가지 약점을 보여줍니다. 분류 정확도는 테스트 테스트의 기본 분포에 대해 아무 것도 알려주지 않습니다.

요약:

  • 분류 정확도는 가장 이해하기 쉬운 분류 측정항목입니다.
  • 그러나 반응값의 기본 분포
  • 는 알려주지 않습니다.
  • 그리고 분류자가 어떤 오류 "유형"을 하는지 알려주지 않습니다.

이제 혼동행렬을 살펴보겠습니다.

혼란 매트릭스

혼란행렬은 분류 모델의 성능을 설명하는 표입니다.
분류기의 성능을 이해하는 데 유용하지만 모델 평가 지표는 아닙니다. 따라서 scikit이 최고의 혼동 행렬을 사용하여 모델을 선택하도록 지시할 수 없습니다. 그러나 혼동 행렬에서 계산할 수 있는 측정항목이 많으며 모델을 선택하는 데 직접 사용할 수 있습니다.

Evaluating A Machine Learning Classification Model

  • 테스트 세트의 모든 관찰은 정확히 하나의 상자에 표시됩니다.
  • 2개의 응답 클래스가 있으므로 2x2 행렬입니다.
  • 여기에 표시된 형식은 보편적이지

몇 가지 기본 용어를 설명하겠습니다.

  • 참 긍정(TP): 우리는 정확하게 그들이 당뇨병에 걸렸다고
  • 예측했습니다.
  • 진음성(TN): 우리는 정확하게 그들이 당뇨병에 걸리지
  • 라고 예측했습니다.
  • 오탐지(FP): 우리는 잘못 그들이 당뇨병에 걸렸다고 예측했습니다("제1종 오류")
  • 거짓 부정(FN): 당뇨병이 없다잘못 예측했습니다("제2형 오류")

측정항목을 어떻게 계산하는지 살펴보겠습니다.

Evaluating A Machine Learning Classification Model

Evaluating A Machine Learning Classification Model

Evaluating A Machine Learning Classification Model

결론:

  • 혼동 행렬은 분류기의 성능에 대한 더 완전한 그림을 제공합니다
  • 또한 다양한 분류 지표를 계산할 수 있으며 이러한 지표는 모델 선택을 안내할 수 있습니다

위 내용은 기계 학습 분류 모델 평가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿