멀티 클래스 분류 문제에 대해 혼동 행렬을 사용하여 정밀도를 계산하고 호출하는 방법이 궁금합니다. 특히 관측치는 가장 가능성있는 클래스 / 라벨에만 할당 할 수 있습니다. 나는 계산하고 싶다 :
- 정밀도 = TP / (TP + FP)
- 리콜 = TP / (TP + FN)
각 클래스에 대해 마이크로 평균 F 측정을 계산합니다.
멀티 클래스 분류 문제에 대해 혼동 행렬을 사용하여 정밀도를 계산하고 호출하는 방법이 궁금합니다. 특히 관측치는 가장 가능성있는 클래스 / 라벨에만 할당 할 수 있습니다. 나는 계산하고 싶다 :
각 클래스에 대해 마이크로 평균 F 측정을 계산합니다.
답변:
2 가설의 경우 혼동 행렬은 일반적으로 다음과 같습니다.
| Declare H1 | Declare H0 |
|Is H1 | TP | FN |
|Is H0 | FP | TN |
나는 당신의 표기법과 비슷한 것을 사용했습니다 :
원시 데이터에서 표의 값은 일반적으로 테스트 데이터에서 각 발생 횟수입니다. 이를 통해 필요한 수량을 계산할 수 있어야합니다.
편집하다
다중 클래스 문제에 대한 일반화는 혼동 행렬의 행 / 열을 합산하는 것입니다. 행렬의 위와 같은 방향, 즉 주어진 행렬의 행이 "진실"에 대한 특정 값에 해당한다고 가정하면 다음과 같습니다.
즉, 정밀도는 알고리즘이 선언 한 모든 인스턴스에서 올바르게 선언 한 이벤트의 일부입니다 . 반대로, 리콜은 우리가 올바르게 선언 이벤트의 일부입니다 세계의 국가의 사실은 모든 경우에서 .내가 내가 내가
i
알고리즘이 선언하는 인스턴스가없는 경우 클래스의 정밀도 는 정의되지 않습니다 i
. i
테스트 세트 에 class 가 포함되지 않은 경우 클래스에 대한 호출 이 정의되지 않습니다 i
.
멀티 클래스 문제에 대한 다음 측정 항목을 검토하는 유용한 요약 보고서 :
초록은 다음과 같습니다.
이 백서에서는 이진, 다중 클래스, 다중 레이블 및 계층 구조와 같은 다양한 머신 러닝 분류 작업에 사용되는 24 가지 성능 측정에 대한 체계적인 분석을 제공합니다. 각 분류 작업에 대해 연구는 혼란 매트릭스의 일련의 변화를 데이터의 특정 특성과 관련시킵니다. 그런 다음 분석은 측정 값을 변경하지 않는 혼동 행렬의 변경 유형에 집중하므로 분류기의 평가를 유지합니다 (측정 불변). 결과는 분류 문제의 모든 관련 레이블 분포 변경과 관련하여 측정 불일치 분류법입니다. 이 공식 분석은 측정 값의 불변 속성이 분류기의보다 안정적인 평가로 이어지는 응용 사례에 의해 지원됩니다.
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)