Cómo calcular la precisión y la recuperación en una matriz de confusión de 3 x 3

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

¿Cómo puedo calcular la precisión y la recuperación para que sea fácil calcular la puntuación F1? La matriz de confusión normal es una dimensión de 2 x 2. Sin embargo, cuando se convierte en 3 x 3, no sé cómo calcular la precisión y la recuperación.

usuario22149
fuente

Respuestas:

19

Si detalla las definiciones de precisión (también conocido como valor predictivo positivo PPV) y recuperación (también conocido como sensibilidad), verá que se relacionan con una clase independiente de cualquier otra clase:

El recuerdo o la sensibilidad es la proporción de casos correctamente identificados como pertenecientes a la clase c entre todos los casos que realmente pertenecen a la clase c .
(Dado que tenemos un caso que realmente pertenece a " c ", ¿cuál es la probabilidad de predecir esto correctamente?)

La precisión o el valor predictivo positivo PPV es la proporción de casos identificados correctamente como pertenecientes a la clase c entre todos los casos de los cuales el clasificador afirma que pertenecen a la clase c .
En otras palabras, de aquellos casos que se predice que pertenecen a la clase c , ¿qué fracción pertenece realmente a la clase c ? (Dada la predicción " c ", ¿cuál es la probabilidad de ser correcta?)

valor predictivo negativo VPN de aquellos casos que se predice que no pertenecen a la clase c , ¿qué fracción realmente no pertenece a la clase c ? (Dada la predicción "no c ", ¿cuál es la probabilidad de ser correcta?)

Para que pueda calcular la precisión y la recuperación de cada una de sus clases. Para las tablas de confusión de clases múltiples, esos son los elementos diagonales divididos por sumas de filas y columnas, respectivamente:

esquema de cálculo

Fuente: Beleites, C .; Salzer, R. y Sergo, V. Validación de modelos de clasificación suave utilizando membresías de clase parciales: un concepto extendido de sensibilidad y co. aplicado a la clasificación de tejidos de astrocitoma, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003

cbeleites descontentos con SX
fuente
Muchas gracias. Ya entiendo la analogía descrita en su solución. Leeré el periódico. Aceptaré esto como respuesta. No entiendo PPV y NPV. Explique estos conceptos tan gráficos como se explicaron los Sens y Spec y aceptaré su respuesta.
user22149
3

Al reducir los datos a opciones forzadas (clasificación) y no registrar si alguna de ellas fueron "llamadas cerradas", obtiene estimaciones estadísticas de precisión mínima con información mínima, además de asumir secretamente una función extraña de utilidad / pérdida / costo y usar umbrales arbitrarios . Sería mucho mejor utilizar la información máxima, que incluiría las probabilidades de pertenencia a la clase y no elecciones forzadas.

Frank Harrell
fuente
1

La forma más fácil es no usar la confusión_matriz en absoluto, Usar la clasificación_informe (), le dará todo lo que siempre necesitó, saludos ...

Editar:
este es el formato para confusion_matrix ():
[[TP, FN]
[FP, TN]]
Y el informe de clasificación da todo esto

Omkaar.K
fuente
Eso si estás usando python ///
Omkaar.K
0

Si simplemente desea el resultado, mi consejo sería no pensar demasiado y utilizar las herramientas a su disposición. Así es como puedes hacerlo en Python;

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']))

Para obtener el siguiente resultado

   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
Steztric
fuente
0

El siguiente es un ejemplo de una matriz de confusión de múltiples clases asumiendo que nuestras etiquetas de clase son A, B y C

A / P A B C Suma
A 10 3 4 17
B 2 12 6 20
C 6 3 9 18

Suma 18 18 19 55

Ahora calculamos tres valores para Precisión y Recuperación de cada uno y los llamamos Pa, Pb y Pc; y de manera similar Ra, Rb, Rc.

Sabemos que Precisión = TP / (TP + FP), por lo que para Pa, el verdadero positivo será A real predicho como A, es decir, 10, el resto de las dos celdas en esa columna, ya sea B o C, hacen Falso positivo. Entonces

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

Ahora la precisión y la recuperación para la clase B son Pb y Rb. Para la clase B, verdadero positivo es el B real predicho como B, es decir, la celda que contiene el valor 12 y el resto de las dos celdas en esa columna hacen Falso positivo, entonces

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

Del mismo modo Pc = 9/19 = 0.47 Rc = 9/18 = 0.5

El rendimiento general del clasificador estará determinado por la precisión promedio y la recuperación promedio. Para esto, multiplicamos el valor de precisión para cada clase con el número real de instancias para esa clase, luego los sumamos y dividimos con el número total de instancias. Me gusta ,

Precisión promedio = (0.55 * 17 + 0.67 * 20 + 0.47 * 18) / 55 = 31.21 / 55 = 0.57 Recuperación promedio = (0.59 * 17 + 0.6 * 20 + 0.5 * 18) / 55 = 31.03 / 55 = 0.56

Espero que ayude

Nayyer Masood
fuente