Cálculo de ROC y AUC, sklearn.metrics roc_curve, precision_recall_curve, auc, roc_auc_score, dibujo de curva ROC de clasificación multietiqueta

Para el cálculo de la curva ROC y AUC, consulte lo siguiente:

Comprender y dominar completamente AUC - Zhihu (zhihu.com)

ROC es insensible al desequilibrio de clases. El defecto del índice AUC es que solo refleja la capacidad de clasificación del modelo, pero no puede reflejar la bondad de ajuste del modelo. ( El defecto de AUC - Zhihu (zhihu.com) )

Ejemplo, sklearn.metrics.roc_curve ( y_truey_score*pos_label=Ningunosample_weight=Ningunodrop_intermediate=True )

Solo se puede utilizar para la clasificación binaria.

La forma de y_true y y_score es (n_samples,); devuelve fpr, tpr y umbrales, y la forma es (n_samples,)

ejemplo:

>>> import numpy as np 
>>> from sklearn import metrics 
>>> y = np.array([1, 1, 2, 2]) 
>>> puntuaciones = np.array([0.1, 0.4, 0.35, 0.8 ]) 
>>> fpr, tpr, umbrales = metrics.roc_curve(y, puntuaciones, pos_label=2) 
>>> fpr 
arreglo([0. , 0. , 0.5, 0.5, 1. ]) 
>>> tpr 
arreglo( [0. , 0.5, 0.5, 1. , 1. ]) 
>>> 
matriz de umbrales ([1.8 , 0.8 , 0.4 , 0.35, 0.1 ])

Ejemplo: sklearn.metrics.precision_recall_curve ( y_trueprobas_pred*pos_label=Ningunosample_weight=Ninguno )

Similar a sklearn.metrics.roc_curve

Ejemplo, sklearn.metrics.auc ( xy )

Esta es una función general, dados puntos en una curva, calcula el área bajo la curva (AUC) usando la regla trapezoidal.

Descripción de parámetros:

ejemplo:

>>> import numpy as np 
>>> from sklearn import metrics 
>>> y = np.array([1, 1, 2, 2]) 
>>> pred = np.array([0.1, 0.4, 0.35, 0.8 ]) 
>>> fpr, tpr, umbrales = metrics.roc_curve(y, pred, pos_label=2) 
>>> metrics.auc(fpr, tpr) 
0.75

 四、sklearn.metrics.roc_auc_score ( y_truey_score*average='macro'sample_weight=Nonemax_fpr=Nonemulti_class='raise'label=None )

Se puede utilizar para la clasificación binaria, la clasificación de una sola etiqueta de varias clases y la clasificación de varias etiquetas , pero algunos parámetros tienen valores limitados

La forma de y_true y y_score es (n_samples,) o (n_samples, n_classes)

parámetro medio: solo válido en multicategoría. Si  None, se devuelven los puntajes para cada clase. De lo contrario, esto determina el tipo de promedio realizado en los datos. 'macro' es para calcular el auc de cada clase y luego tomar el promedio; 'micro' es para establecer la forma en (n_samples, n_classes) Cada elemento en y_true y y_score se considera como una etiqueta 0/1gt y se calcula la probabilidad correspondiente, y el auc global (calcular métricas globalmente considerando cada elemento de la matriz de indicadores de etiquetas como una etiqueta).

Cinco, Python realiza el tutorial de la curva ROC de clasificación binaria y clasificación múltiple

Python implementa el tutorial de la curva ROC para la clasificación binaria y la clasificación múltiple - Tencent Cloud Developer Community - Tencent Cloud (tencent.com)

referencia: 

sklearn.metrics.roc_curve — documentación de scikit-learn 1.1.1

sklearn.metrics.auc — documentación de scikit-learn 1.1.1

sklearn.metrics.roc_auc_score — documentación de scikit-learn 1.1.1

Supongo que te gusta

Origin blog.csdn.net/qq_41021141/article/details/126023548
Recomendado
Clasificación