sklearn.metrics.classification_report

sklearn.metrics.classification_report()

Construye un informe de texto que muestre las principales métricas de clasificación.

Más información en el Manual de usuario.

Parámetros
y_truearray-like 1d, o arreglo indicador de etiqueta / matriz dispersa

Valores objetivo reales (correctos).

y_predarray-like 1d, o arreglo indicador de etiqueta / matriz dispersa

Objetivos estimados devueltos por un clasificador.

labelsarray-like de forma (n_labels,), default=None

Lista opcional de índices de etiqueta a incluir en el informe.

target_nameslista de cadenas de forma (n_features,), default=None

Nombres de visualización opcionales coincidiendo con las etiquetas (mismo orden).

sample_weightarray-like de forma (n_samples,), default=None

Ponderados de muestras.

digitsentero, default=2

Número de dígitos para el formateo de valores de punto flotante de salida. Cuando output_dict es True, esto sera ignorado y los valores devueltos no serán redondeados.

output_dictbooleano, default=False

Si es True, devuelve la salida como dict.

Nuevo en la versión 0.20.

zero_division«warn», 0 o 1, default=»warn»

Establece el valor que se devolverá cuando haya una división cero. Si se establece en «warn», esto actúa como 0, pero también se generan advertencias.

Devuelve
reportstring / dict

Resumen en texto de la precisión, exhaustividad, puntuación F1 para cada clase. Devolverá un diccionario si output_dict es True. El diccionario tiene la siguiente estructura:

{'label 1': {'precision':0.5,
             'recall':1.0,
             'f1-score':0.67,
             'support':1},
 'label 2': { ... },
  ...
}

Los promediados reportados incluyen el promedio macro (promediando la media sin ponderar por etiqueta), el promediado ponderado (promediando el apoyo-ponderado medio por etiqueta) y el promedio de muestras (solo para la clasificación multietiqueta). El promedio micro (promediando los verdaderos positivos totales, falsos negativos y falsos positivos) solo es mostrado para multi-etiqueta o multi-clase con un subconjunto de clases, porque corresponde a la precisión de otra forma y sería igual para todas las métricas. Ver también precision_recall_fscore_support para mas detalles acerca de los promedios.

Note que en la clasificación binaria, la exhaustividad de la clase positiva también se conoce como «sensitivity»; la exhaustividad de la clase negativa es «specificity».

Ejemplos

>>> from sklearn.metrics import classification_report
>>> y_true = [0, 1, 2, 2, 2]
>>> y_pred = [0, 0, 2, 2, 1]
>>> target_names = ['class 0', 'class 1', 'class 2']
>>> 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

    accuracy                           0.60         5
   macro avg       0.50      0.56      0.49         5
weighted avg       0.70      0.60      0.61         5

>>> y_pred = [1, 1, 0]
>>> y_true = [1, 1, 1]
>>> print(classification_report(y_true, y_pred, labels=[1, 2, 3]))
              precision    recall  f1-score   support

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

   micro avg       1.00      0.67      0.80         3
   macro avg       0.33      0.22      0.27         3
weighted avg       1.00      0.67      0.80         3

Ejemplos usando sklearn.metrics.classification_report