혼동 행렬을 사용하여 멀티 클래스 분류의 정밀도를 계산하고 리콜하는 방법은 무엇입니까?


92

멀티 클래스 분류 문제에 대해 혼동 행렬을 사용하여 정밀도를 계산하고 호출하는 방법이 궁금합니다. 특히 관측치는 가장 가능성있는 클래스 / 라벨에만 할당 할 수 있습니다. 나는 계산하고 싶다 :

  • 정밀도 = TP / (TP + FP)
  • 리콜 = TP / (TP + FN)

각 클래스에 대해 마이크로 평균 F 측정을 계산합니다.


docx , 분류 모델 평가 – 정밀도와 리콜은 무엇을 알려줍니까? 로부터 Compumine는 혼란 행렬에 대한 간단한 소개와 그것에서 유래하는 수단을 제공한다. 혼란 매트릭스, 정밀도, 리콜, 특이성 및 정확성을 생성하는 데 도움이됩니다.
Jayran Choopan

4
여기에서 답을 찾으십시오. 아주 좋은 설명 youtube.com/watch?v=FAr2GmWNbT0

계산 링크가 작동하지 않습니다.
Trenton

멀티 클래스의 경우 행 (축 = 0)을 따라 리콜하고 열 (축 = 1)을 따라 정밀도를 이해합니다. rxnlp.com/…
MD ZIA ULLAH

답변:


69

2 가설의 경우 혼동 행렬은 일반적으로 다음과 같습니다.

       | Declare H1  |  Declare H0 |
|Is H1 |    TP       |   FN        |
|Is H0 |    FP       |   TN        |

나는 당신의 표기법과 비슷한 것을 사용했습니다 :

  • TP = 참 긍정 (사실, H1 일 때 H1을 선언),
  • FN = 거짓 부정 (사실 H1 일 때 H0을 선언),
  • FP = 위양성
  • TN = 참 부정

원시 데이터에서 표의 값은 일반적으로 테스트 데이터에서 각 발생 횟수입니다. 이를 통해 필요한 수량을 계산할 수 있어야합니다.

편집하다

다중 클래스 문제에 대한 일반화는 혼동 행렬의 행 / 열을 합산하는 것입니다. 행렬의 위와 같은 방향, 즉 주어진 행렬의 행이 "진실"에 대한 특정 값에 해당한다고 가정하면 다음과 같습니다.

Precision i=MiijMji

Recall i=MiijMij

즉, 정밀도는 알고리즘이 선언 한 모든 인스턴스에서 올바르게 선언 한 이벤트의 일부입니다 . 반대로, 리콜은 우리가 올바르게 선언 이벤트의 일부입니다 세계의 국가의 사실은 모든 경우에서 .내가 내가 내가iiii


1
내 경우에는 10 개 이상의 클래스가 있으므로 FN은 선언 클래스 H (i)의 총 개수를 의미한다고 생각합니다. i! = 1; FP도 마찬가지입니까?
daiyue

안녕하세요, 혼란 매트릭스의 실제 클래스에 대해 TP + FP = 0, TP + FN = 0 인 경우 Precision 및 Recall의 값이 무엇인지 궁금합니다.
daiyue

i알고리즘이 선언하는 인스턴스가없는 경우 클래스의 정밀도 는 정의되지 않습니다 i. i테스트 세트 에 class 가 포함되지 않은 경우 클래스에 대한 호출 이 정의되지 않습니다 i.
Dave

마지막 목표는 Macro F Measure를 계산하는 것이므로 각 클래스 i의 정밀도와 리콜 값이 필요합니다. 위의 두 경우가 일부 클래스 i에 나타나는 경우 어떻게 Macro-F 측정 값을 계산할 수 있습니까? 특히 Fi의 값은 무엇이며 클래스 i는 클래스 M 중 하나로 계산됩니다. M의 요소 수는 매크로 F 측정 값을 계산하기위한 공식의 분모로 계산됩니다.
daiyue

1
sry, 당신의 생각을 더 명확하게 설명해 주시겠습니까?
daiyue

31

멀티 클래스 문제에 대한 다음 측정 항목을 검토하는 유용한 요약 보고서 :

  • Sokolova, M., & Lapalme, G. (2009). 분류 작업에 대한 성과 측정의 체계적인 분석. 정보 처리 및 관리, 45 , p. 427-437. ( pdf )

초록은 다음과 같습니다.

이 백서에서는 이진, 다중 클래스, 다중 레이블 및 계층 구조와 같은 다양한 머신 러닝 분류 작업에 사용되는 24 가지 성능 측정에 대한 체계적인 분석을 제공합니다. 각 분류 작업에 대해 연구는 혼란 매트릭스의 일련의 변화를 데이터의 특정 특성과 관련시킵니다. 그런 다음 분석은 측정 값을 변경하지 않는 혼동 행렬의 변경 유형에 집중하므로 분류기의 평가를 유지합니다 (측정 불변). 결과는 분류 문제의 모든 관련 레이블 분포 변경과 관련하여 측정 불일치 분류법입니다. 이 공식 분석은 측정 값의 불변 속성이 분류기의보다 안정적인 평가로 이어지는 응용 사례에 의해 지원됩니다.


2
@JamesTaylor 사이트에 오신 것을 환영합니다. 독자들이 정보가 필요한지 여부와 링크가 끊어 질 경우를 결정하는 데 도움이되도록 링크 된 문서에 정보 요약을 제공 하시겠습니까?
gung

8

sklearn과 numpy 사용하기 :

from sklearn.metrics import confusion_matrix
import numpy as np

labels = ...
predictions = ...

cm = confusion_matrix(labels, predictions)
recall = np.diag(cm) / np.sum(cm, axis = 1)
precision = np.diag(cm) / np.sum(cm, axis = 0)

전체적인 정밀도 측정 및 불러 오기를 수행하려면

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