첫째, 분류 평가 지표
- 정확도 (가장 간단한 지표)
단점 : 큰 영향을 샘플링하여, 같은 100 개 샘플 모델이 긍정적 인 예로서 전체 샘플을 예측할 수없는 뇌없는 경우에도, 99 긍정적 인 사례를했다가, 99 %의 아직 정확한 속도가
범위 : 이진 (정밀도), 이진 다중 분류 (평균 정확도 레이트)
에서 sklearn.metrics의 수입 accuracy_score y_pred = [0, 2, 1, 3 ] y_true = [0, 1, 2, 3 ] accuracy_score (y_true, y_pred) 0.5 accuracy_score (y_true는 y_pred 정상화 = 거짓) 2
에서 sklearn.metrics의 수입 balanced_accuracy_score y_true = [0, 1, 0, 0, 1 , 0] y_pred = [0, 1, 0, 0, 0, 1 ] balanced_accuracy_score (y_true, y_pred) 0.625
- 혼란 매트릭스
범위 : 모든 분류 모델 이진 포함하여, 다중 분류
소개 : 크로스 테이블의 본질은, 수직 축이 실제 값이고, 가로축이의 예측이다
API 설명 :
예 1 : 다중 분류 작업의 경우, 카테고리는 정수 형식으로 변환 된 각각 0,1,2 세 가지sklearn.metrics 수입 confusion_matrix에서
y_true = [2,0, 2, 2, 0, 1 ] y_pred = [0, 0, 2, 2, 0, 2 ] confusion_matrix (y_true, y_pred) 어레이 ([ 2 , 0, 0] [0, 0, 1 ] [ 1, 0, 2])
혼란 행렬은 다음과 같이 유도 될 수있다
예 2를 : 다중 분류 작업 범주를 정수 값으로 변환되지 않고, 직접 문자열로서에서 sklearn.metrics가 가져 confusion_matrix
y_true = [ " 고양이 " , " 개미 " , " 고양이 " , " 고양이 " , " 개미 " , " 새 " ] y_pred = " 개미 " , " 개미 " , " 고양이 " , " 고양이 " , " 개미 " , " 고양이 " ] confusion_matrix (y_true, y_pred, 라벨 = [ " 개미 " , " 새 " , " 고양이 " ]) 어레이 ([ 2 , 0, 0] [0, 0, 1 ] [ 1, 0, 2])이 API는 카테고리 타입의 캐릭터 라인에 직접 입증 할 수 혼란 매트릭스는 다음
작업 이분법 : 예 3을에서 sklearn.metrics의 수입 confusion_matrix confusion_matrix ([0, 1, 0, 1], [1, 1, 1 , 0]) 어레이 ([[0, 2 ] [ 1,1], DTYPE = INT64) TN, FP, FN, TP = confusion_matrix ([0, 1, 0, 1], [1, 1, 1 , 0). 라벨 () (TN, FP, FN, TP) (0, 2, 1, 1)
여기서, "1"이 양의 예는 음수로서, "0" -
ROC 곡선 및 AUC는 값
범위 : 이진
서론 ROC 곡선은 곡선의 2 차원 평면 FPR의 횡축, 종축 (곡선 아래 면적 TPR, AUC 인 것이다 ) 이름에서 알 수 있듯이, 곡선이 횡축 포위 곡선 아래의 영역
은 API :
각각 세 관련 인터페이스 계산 sklearn ROC,1 metrics.roc_auc_score () 2 metrics.roc_curve () 3 metrics.auc ()
1) 직접 계산치의 AUC
에서 sklearn의 수입 통계 NP로서 임포트 NumPy와
y_true = np.array ([0, 0, 1, 1 ]) y_scores = np.array ([0.1, 0.4, 0.35, 0.8 ]) metrics.roc_auc_score (y_true, y_scores) 0.752) 제 계산이 FPR 및 TPR 임계 값 (임계 값), 그리고 FPR TPR하여 AUC 시크
에서 sklearn의 수입 통계 수입 순이익 등 NumPy와 y_true = np.array ([0, 0, 1, 1 ]) y_scores = np.array ([0.1, 0.4, 0.35, 0.8 ]) FPR, TPR, 임계치 = metrics.roc_curve (y_true, y_scores) (FPR, TPR, 임계치) (배열 (이 [0., 0.5, 0.5, 1 .), 어레이 ([ 0.5, 0.5, 1, 1 .), 어레이 ([ 0.8, 0.4, 0.35, 0.1 ])) metrics.auc (FPR, TPR) 0.75
인터페이스는 확률 모델 출력 파라미터와 실제 태그 범주를 수신하는 주 (점수) 값 모델이 라벨을 예측하기보다는 (+ 요구 확률 임계치에 의해 얻을 수있다)
- 점수 곡선과 PR-플로리다
2 차원 평면 곡선으로서 PR 곡선이 가로축 리콜 (회수)를 나타내고, 세로축은 정밀 (정확도 레이트), F1-점수 재현율과 정확도의 조화 평균이다 나타내는
이분법 : 범위
API :
sklearn 홍보와 관련된 다섯 가지 공통 인터페이스가 있습니다
1 metrics.precision_recall_curve () 2 metrics.precision_recall_fscore_support () 3 metrics.precision_score () 4 metrics.recall_score () 5 metrics.fbeta_score ()
1) 계산 된 곡선은 PR
다른 하나는 예를 들어 샘플의 예측 확률 (점수)이고, 인터페이스는 두 개의 매개 변수, 샘플의 실제 값을 수신한다 :가져 NP로 NumPy와 에서 sklearn.metrics가 가져 precision_recall_curve을 y_true = np.array ([0, 0, 1, 1 ]) y_scores = np.array ([0.1, 0.4, 0.35, 0.8 ]) 정밀도, 소환, 임계 값 = precision_recall_curve (y_true, y_scores) 정밀, 리콜, 임계 값 (배열 (이 [ 0.66666667, 0.5, 1, 1 .), 어레이 ([ 1, 0.5, 0.5 , 0), 어레이 ([ 0.35, 0.4, 0.8]))
2) 계산 된 예측값과 PR이 임계 값에 의해 특정 카테고리의 임의의 임계 값 F 점수 값으로 변환되면
에서 sklearn의 수입 통계 # 이 함수 정밀도 소환 및 F 점수로부터 직접 얻을 수있다
정밀도, 소환, fbeta_score 지원 = metrics.precision_recall_fscore_support ()
# 다음 세 가지 기능을 결정 정밀도, 소환, 및 F-점수는 각각 일 수
정밀 metrics.precision_score = ()
회수 = metrics.recall_score ()
F-점수 = metrics.fbeta_score ()
- KS KS 값 곡선과
범위 : 이진
가로축 KS 곡선 분위수 임계 값이며,이 ROC로 유도 관한 인터페이스 (2)에서 계산 될 수 있도록, 종축은 각각, FPR은 값 (TPR-FPR)를 TPR KS - 카파 계수 해밍 감소, 힌지, 인 Jaccard 계수 손실
범위 : 다중 분류
1 metrics.cohen_kappa_score () 2 metrics.hamming_loss () 3 metrics.hinge_loss () 4 metrics.jaccard_score () 5 metrics.log_loss ()
- 매튜스 '상관 계수 (MCC)
범위 : 이분법
에서 sklearn.metrics의 수입 matthews_corrcoef y_true = +1, +1, +1, -1 ] y_pred = +1, -1, +1, +1 ] matthews_corrcoef (y_true, y_pred) -0.33333333
둘째, 평가 지표 반환
- R 2
- MSE
- MAE의
수면. . . 수정 내일