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
esTrue
, 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