¿Qué significan los números en el informe de clasificación de sklearn?

29

Tengo a continuación un ejemplo que extraje de la documentación de sklearn.metrics.classification_report de sklearn.

Lo que no entiendo es por qué hay valores de puntaje f1, precisión y recuperación para cada clase donde creo que la clase es la etiqueta del predictor. Pensé que el puntaje f1 te dice la precisión general del modelo. Además, ¿qué nos dice la columna de soporte? No pude encontrar ninguna información sobre eso.

print(classification_report(y_true, y_pred, target_names=target_names))
             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5
jxn
fuente

Respuestas:

21

El puntaje f1 le brinda la media armónica de precisión y recuperación. Los puntajes correspondientes a cada clase le indicarán la precisión del clasificador al clasificar los puntos de datos en esa clase en particular en comparación con todas las demás clases.

El soporte es el número de muestras de la respuesta verdadera que se encuentran en esa clase.

Puede encontrar documentación sobre ambas medidas en la documentación de sklearn.

Soporte - http://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html

Puntuación F1 - http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

EDITAR

La última línea proporciona un promedio ponderado de precisión, recuperación y puntaje f1 donde los pesos son los valores de soporte. así que para precisión el promedio es (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. El total es solo para soporte total, que es 5 aquí.

Nitina
fuente
1
¿Qué pasa con la última línea avg / total? No parece coincidir con la columna significa ... ¿Cómo se calcula y qué significa?
Antoine
@Antoine También me pregunto lo mismo. ¿Descubriste cómo se calcula?
Pale Blue Dot
@Antoine La última línea proporciona un promedio ponderado de precisión, recuperación y puntaje f1 donde los pesos son los valores de soporte. así que para precisión el promedio es (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. El total es solo para soporte total, que es 5 aquí.
Nitin
Gracias a la respuesta previa de @Nitin, encontré por enlaces las mejores descripciones visuales e intuición detrás de las matemáticas: en.wikipedia.org/wiki/Precision_and_recall en.wikipedia.org/wiki/F1_score
Bogdan Korecki