Me pregunto cómo calcular la precisión y la recuperación utilizando una matriz de confusión para un problema de clasificación de varias clases. Específicamente, una observación solo se puede asignar a su clase / etiqueta más probable. Me gustaría calcular:
- Precisión = TP / (TP + FP)
- Recuperación = TP / (TP + FN)
para cada clase, y luego calcule la medida F micro-promedio.
Respuestas:
En un caso de 2 hipótesis, la matriz de confusión suele ser:
donde he usado algo similar a tu notación:
A partir de los datos sin procesar, los valores de la tabla normalmente serían los recuentos de cada aparición sobre los datos de prueba. A partir de esto, debería poder calcular las cantidades que necesita.
Editar
La generalización de los problemas de varias clases es sumar sobre filas / columnas de la matriz de confusión. Dado que la matriz está orientada como anteriormente, es decir, que una fila dada de la matriz corresponde a un valor específico para la "verdad", tenemos:
Es decir, la precisión es la fracción de eventos en los que correctamente declaramos de todos los casos en los que el algoritmo declarada . Por el contrario, recordar es la fracción de eventos en los que declaramos correctamente de todos los casos en los que el verdadero estado del mundo es .i i i i
fuente
i
no está definida si no hay instancias donde el algoritmo declarei
. La recuperación de la clasei
no está definida si el conjunto de prueba no incluye la clasei
.Buen documento de resumen, mirando estas métricas para problemas de varias clases:
El resumen lee:
fuente
Usando sklearn y numpy:
Para obtener medidas generales de precisión y recuperación, use
fuente