3 x 3 혼동 행렬에서 정밀도 계산 및 호출 방법


12
                  Predicted
                    class
               Cat  Dog Rabbit
  Actual class
           Cat   5    3      0
           Dog   2    3      1
        Rabbit   0    2     11

정밀도를 계산하고 리콜하는 방법 F1- 점수를 쉽게 계산할 수 있습니다. 일반적인 혼란 매트릭스는 2 x 2 차원입니다. 그러나 3 x 3이되면 정밀도를 계산하고 호출하는 방법을 모릅니다.

답변:


19

정밀도 (일명 ​​양의 예측 값 PPV) 및 리콜 (일명 감도)의 정의를 설명하면 다른 클래스와 독립적으로 클래스 와 관련이 있음을 알 수 있습니다.

리콜 또는 senstitivity가 제대로 클래스에 속하는 것으로 확인 된 경우의 비율이다 C 진정한 클래스에 속하는 모든 경우들 .
(실제로 " c "에 속하는 경우가 있는데 이것을 정확하게 예측할 확률은 얼마입니까?)

정밀도 또는 양의 예측 값 PPV 는 분류자가 클래스 c에 속한다고 주장하는 모든 사례 중에서 클래스 c에 속하는 것으로 올바르게 식별 된 사례의 비율입니다 . 다시 말해, c의 클래스에 속하는 것으로 예측 된 경우 중 어느 부분이 실제로 c 클래스에 속하는가 ? (예측 " c "를 주면 정확할 확률은 얼마입니까?)

이 경우의 음의 예측값 NPV 는 클래스 c 에 속하지 않는 것으로 예측 되는데,이 분수는 실제로 클래스 c에 속하지 않는 것 입니까? ( " c 가 아닌"예측을 주면, 정확할 확률은 얼마입니까?)

따라서 각 클래스에 대한 정밀도를 계산하고 불러올 수 있습니다. 다중 클래스 혼동 테이블의 경우 대각선 요소를 각각 행과 열 합계로 나눈 값입니다.

계산 방식

출처 : Beleites, C .; Salzer, R. & Sergo, V. 부분 클래스 멤버십을 사용한 소프트 분류 모델의 검증 : 민감도 및 공동의 확장 된 개념. 성 모세포종 조직의 등급에 적용, Chemom Intell Lab Syst, 122, 12-22 (2013). DOI : 10.1016 / j.chemolab.2012.12.003


정말 고마워. 귀하의 솔루션에 설명 된 유추를 이미 이해하고 있습니다. 나는 종이를 읽을 것이다. 나는 이것을 대답으로 받아 들일 것이다. PPV와 NPV를 이해하지 못합니다. Sens and Spec이 설명 된대로 이러한 개념을 그래픽으로 설명해 주시면 답변 해 드리겠습니다.
user22149

3

데이터를 강제 선택 (분류)으로 줄이고 "클로즈 콜 (close call)"여부를 기록하지 않음으로써, 비밀리에 이상한 유틸리티 / 손실 / 비용 기능을 가정하고 임의의 임계 값을 사용하는 것 외에도 최소 정보 최소 정밀 통계 추정치를 얻을 수 있습니다. . 최대한의 정보를 사용하는 것이 훨씬 낫습니다. 여기에는 강의 멤버쉽의 가능성과 강제 선택이 아닌 확률이 포함됩니다.


1

가장 쉬운 방법은 confusion_matrix를 전혀 사용하지 않는 것입니다 .classification_report ()를 사용하면 필요한 모든 것을 얻을 수 있습니다.

편집 :
이것은 confusion_matrix ()의 형식입니다.
[[TP, FN]
[FP, TN]]
그리고 분류 보고서는이 모든 것을 제공합니다


python ///을 사용한다면
Omkaar.K

0

단순히 결과를 원한다면 도구에 대해 너무 많이 생각하지 말고 도구를 사용하는 것이 좋습니다. 파이썬에서 어떻게 할 수 있습니까?

import pandas as pd
from sklearn.metrics import classification_report

results = pd.DataFrame(
    [[1, 1],
     [1, 2],
     [1, 3],
     [2, 1],
     [2, 2],
     [2, 3],
     [3, 1],
     [3, 2],
     [3, 3]], columns=['Expected', 'Predicted'])

print(results)
print()
print(classification_report(results['Expected'], results['Predicted']))

다음과 같은 결과를 얻으려면

   Expected  Predicted
0         1          1
1         1          2
2         1          3
3         2          1
4         2          2
5         2          3
6         3          1
7         3          2
8         3          3

             precision    recall  f1-score   support

          1       0.33      0.33      0.33         3
          2       0.33      0.33      0.33         3
          3       0.33      0.33      0.33         3

avg / total       0.33      0.33      0.33         9

0

다음은 클래스 레이블이 A, B 및 C 인 것으로 가정하는 다중 클래스 혼동 매트릭스의 예입니다.

A / P A B C 합계
A 10 34 17
B 2 12 6 20
C 6 3 9 18

합계 18 18 19 55

이제 Precision과 Recall에 대한 세 가지 값을 각각 계산하고이를 Pa, Pb 및 Pc라고합니다. 유사하게 Ra, Rb, Rc.

우리는 Precision = TP / (TP + FP)를 알고 있으므로 Pa의 경우 true positive는 A, 즉 10, 해당 열의 나머지 두 셀 (B 또는 C)에 상관없이 F로 정의됩니다. False Positive입니다. 그래서

Pa = 10/18 = 0.55 Ra = 10/17 = 0.59

이제 클래스 B의 정밀도와 리콜은 Pb와 Rb입니다. 클래스 B의 경우 참 양성은 실제 B가 B로 예측됩니다. 즉, 값 12를 포함하는 셀이며 해당 열의 나머지 두 셀은 False Positive입니다.

Pb = 12/18 = 0.67 Rb = 12/20 = 0.6

유사하게 Pc = 9/19 = 0.47 Rc = 9/18 = 0.5

분류기의 전체 성능은 평균 정밀도 및 평균 리콜에 의해 결정됩니다. 이를 위해 각 클래스의 정밀도 값에 해당 클래스의 실제 인스턴스 수를 곱한 다음 추가하고 총 인스턴스 수로 나눕니다. 처럼 ,

평균 정밀도 = (0.55 * 17 + 0.67 * 20 + 0.47 * 18) / 55 = 31.21 / 55 = 0.57 평균 리콜 = (0.59 * 17 + 0.6 * 20 + 0.5 * 18) / 55 = 31.03 / 55 = 0.56

나는 그것이 도움이되기를 바랍니다

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