Sklearn 메트릭이란 무엇이며 왜 이에 대해 알아야 합니까?

게시 됨: 2021-10-22

Python은 전 세계적으로 개발자들 사이 에서 가장 많이 사용되는 프로그래밍 언어 중 하나입니다. 데이터 자동화 및 알고리즘 기능으로 인해 프로그램, 기계 및 컴퓨터 기반 시스템을 구축 및 교육하고 예측하는 데 이상적입니다. 따라서 Python 기술을 갖춘 후보자는 기계 학습 및 데이터 과학과 같은 수익성 있는 직업 경로에 점점 더 선호되고 있습니다.

초보자라면 스스로 올바른 도구를 찾는 것이 어려울 수 있습니다. Scikit-learn과 같은 무료 소프트웨어를 사용하면 적은 노력으로 관련 기술을 습득할 수 있습니다. 기계 학습 라이브러리에는 Python 프로그래머를 위한 여러 분류, 회귀 및 클러스터링 알고리즘이 있습니다.

이 블로그는 특히 분류 문제와 sklearn 메트릭에 초점을 맞춰 학습 여정을 안내합니다. 평가 메트릭의 적용에 대해 배우고 그 이면의 수학도 이해할 것입니다.

목차

Scikit-Learn의 분류 메트릭

분류는 예측 모델링의 필수적인 부분입니다. 모집단의 특정 샘플이 속한 클래스를 식별하는 데 사용합니다. 환자가 다시 입원할지 여부를 예측하려고 한다고 가정합니다. 여기에 가능한 두 가지 유형은 양성(입원) 및 음성(입원 없음)입니다. 분류 모델은 샘플을 배치해야 하는 버킷(예측 양성 또는 예측 음성)을 예측합니다. 모델을 훈련시키면 예측의 정확성을 발견할 수 있습니다.

대부분의 데이터 과학자와 기계 학습 엔지니어는 예측 모델의 성능을 분석하기 위해 Scikit-Learn 패키지를 사용합니다. sklearn 메트릭 모듈을 사용하면 많은 내장 기능에 액세스할 수 있습니다. 이러한 메트릭을 사용하여 처음부터 함수를 작성하는 프로세스를 알아보겠습니다.

세계 최고의 대학에서 온라인으로 머신 러닝 과정에 참여하십시오. 석사, 대학원 대학원 과정, ML 및 AI 고급 인증 프로그램을 통해 빠르게 경력을 쌓을 수 있습니다.

Sklearn 지표 설명

Sklearn 메트릭을 사용하면 분류 성능을 평가하기 위한 점수, 손실 및 유틸리티 함수를 구현할 수 있습니다.

관련된 주요 단계는 다음과 같습니다.

  • 데이터 로드;
  • 그것을 훈련 세트와 테스트 세트로 나눕니다.
  • 훈련 모델을 구축하십시오.
  • 테스트 데이터에 대한 예측 또는 예측을 수행합니다.
  • 특정 방법으로 기계 학습 모델을 평가합니다.

계속하려면 랜덤 포레스트와 선형 회귀라는 두 가지 모델에 대한 샘플 데이터 세트와 예측 기능을 로드해야 합니다. Model_RF 및 Model_LR이라고 합시다.

이 코드를 실행하여 Pandas 모듈을 가져오고 데이터 파일을 읽고 해당 요소를 검사합니다.

팬더를 ps로 가져오기

df = ps.read_csv('데이터.csv')

df.head()

대부분의 프로젝트에서 임계값을 정의하고 예측 확률에 예측된 긍정 및 예측된 부정으로 레이블을 지정합니다. 이렇게 하면 테이블에 두 개의 열이 더 추가됩니다.

쓰레쉬 = 0.5

df['예측_RF'] = (df.model_RF >= 0.5).astype('int')

df['예측_LR'] = (df.model_LR >= 0.5).astype('int')

df.head()

이제 실제 레이블과 예측 레이블이 있으므로 샘플을 4개의 다른 버킷으로 나눌 수 있습니다.

Confusion_matrix를 사용하면 레이블이 다음 버킷으로 분기된 2X2 배열을 얻을 수 있습니다.

  • 트루 포지티브(TP)
  • 가양성(FP)
  • 거짓 부정(FN)
  • 트루 네거티브(TN)

sklearn 메트릭에서confusion_matrix를 가져오고 실제 및 예측 레이블을 전달한 후 이를 확인하기 위해 함수를 정의할 수 있습니다.

Python의 assert 함수와 NumPy의 array_equal 함수를 사용하여 결과가 수동으로 일치하는지 확인할 수도 있습니다.

TP, FP, TN 및 FN의 4가지 버킷을 사용하여 다른 많은 성능 메트릭을 계산할 수 있습니다. 이것들은:

1. 정확도_점수

실제 및 예측된 레이블을 입력으로 사용하고 올바르게 예측된 샘플의 일부를 생성합니다.

2. 회상 점수

올바르게 예측된 긍정적인 이벤트의 비율을 제공합니다. 리콜은 민감도라고도 합니다.

3. 정밀도_점수

긍정적인 예측된 긍정적인 이벤트의 비율을 보여줍니다.

이러한 모든 메트릭을 계산한 후 RF 모델이 재현율 및 정밀도에서 더 우수하다고 가정합니다. 여기서 선택은 쉬울 것입니다. 그러나 LR 모델이 재현율이 더 좋고 RF 모델이 정밀도가 더 좋다면 어떻게 될까요? 이 경우 F1 점수라는 다른 방법이 필요합니다.

4. f1_점수

재현율과 정밀도의 조화 평균입니다. 점수가 높은 모델이 더 나은 옵션으로 간주됩니다.

위의 메트릭은 정의된 임계값 0.5로 계산되었습니다. 이 임계값을 변경하면 성능 메트릭도 변경되는지 궁금할 수 있습니다. 대답? 네, 그럴 것입니다.

임계값, 즉 ROC(수신기 작동 특성) 곡선을 선택하지 않고 모델을 평가하는 또 다른 방법이 있습니다. Scikit-learn에는 분석을 위한 내장 기능도 있습니다.

roc_curve 및 roc_auc_score 함수는 실제 레이블과 예측된 확률을 입력으로 사용합니다.

  • roc_curve

임계값(내림차순으로 고유한 예측 확률), FPR(가양성 비율) 및 TPR(진양성 비율)이라는 세 가지 목록을 반환합니다.

  • roc_auc_curve

RF 및 LR 모델 모두에 대한 곡선 아래 영역을 찾습니다.

ROC 곡선을 플롯하고 범례에 AUC를 추가하면 더 나은 성능 메트릭을 결정할 수 있습니다.

합산

예측 분석에서는 다양한 메트릭 중에서 선택할 수 있습니다. 정확도, 재현율, 정밀도, f1 및 AUC는 인기 있는 점수 중 일부입니다.

일부는 임계값을 정의하고 정확도, 재현율, 정밀도 및 f1 점수와 같은 성능 메트릭을 사용하는 것을 선호할 수 있습니다. 다른 사람들은 임계값 선택이 필요하지 않기 때문에 AUC를 사용하여 모델의 성능을 분석하기를 원할 수 있습니다. 결국 당면한 비즈니스 문제에 가장 적합한 메트릭을 찾아야 합니다.

이를 통해 sklearn 지표에 대한 개요를 제공했습니다. 이 정보를 사용하여 파이썬 프로그래밍의 기본을 명확히 하고 온라인 과정을 통해 계속 학습할 수 있습니다. 또한 프로젝트 작업을 수행하여 기술을 연습하고 개선할 수 있습니다. upGrad의 기계 학습 및 인공 지능 과학 석사 와 같은 프로그램 은 두 가지 모두에 도움이 될 수 있습니다.

커리큘럼은 완전한 데이터 과학 도구 키트에 익숙해지고 Scikit-Learn 및 기타 소프트웨어의 실용적인 측면을 다룹니다. 또한, 리버풀 존 무어스 대학(Liverpool John Moores University) 및 IIIT 방갈로르(IIIT Bangalore)와 같은 유명 기관의 자격 증명을 통해 취업 지원 및 배치 면접에서 경쟁업체와 차별화됩니다.

Python에서 평가 메트릭이란 무엇입니까?

평가 메트릭은 일반적으로 Python의 분류 문제에 사용됩니다. Scikit-Learn은 광범위한 예측 분석 작업을 가능하게 하는 무료 기계 학습 라이브러리입니다. 데이터 과학자 지망생과 기계 학습 엔지니어는 이를 사용하여 데이터에 대한 예측을 하고 특정 모델의 품질을 분석할 수 있습니다.

sklearn 메트릭이 필요한 이유는 무엇입니까?

Sklearn 측정항목을 사용하면 예측의 품질을 평가할 수 있습니다. Scikit-Learn에서 다양한 데이터 세트, 점수 함수 및 성능 메트릭에 대해 이 모듈을 사용할 수 있습니다. sklearn의 정오분류표는 예측의 정확도를 편리하게 표현한 것입니다. 정의된 임계값 또는 신뢰도 값과 함께 실제 및 예측 레이블과 같은 입력을 사용하여 재현율, 정밀도 및 f1 점수와 같은 메트릭을 계산할 수 있습니다. ROC 곡선 방법은 확률 추정치의 균형을 맞추고 곡선 아래 면적의 관점에서 성능 메트릭을 제공합니다.

AI 및 ML의 대학원 교육이 경력 발전에 어떻게 도움이 됩니까?

인공 지능 및 기계 학습 분야의 대부분의 고급 인증에는 커리큘럼에 Scikit-Learn과 같은 도구가 포함됩니다. Python 프로그래밍 및 데이터 과학 교육의 필수 구성 요소입니다. 그러나 오늘날의 경쟁적인 직업 환경에서는 Python과 Scikit-Learn으로 코딩하는 것만으로는 충분하지 않습니다. 산업 지향적인 지식을 습득하고 기술을 연습해야 합니다. 따라서 프로젝트와 과제를 실행할 수 있는 기회를 제공하는 학습 프로그램을 선택하십시오.