Curva AUC – ROC en Python

Para calcular y graficar la curva AUC-ROC en Python, generalmente se utiliza la biblioteca scikit-learn , que proporciona herramientas para trabajar con aprendizaje automático y evaluación de modelos. Aquí tienes un ejemplo de cómo calcular y graficar la curva AUC-ROC para un clasificador en Python:

Ejemplo

    plt.show()
  

En este ejemplo, estamos utilizando datos sintéticos generados con make_classification , pero puedes reemplazarlos con tus propios datos. También utilizamos una Regresión Logística como clasificador, pero puedes usar otros clasificadores según tus necesidades.

Curva Auc Roc en Python

La curva AUC-ROC representa la tasa de verdaderos positivos (True Positive Rate, TPR) frente a la tasa de falsos positivos (False Positive Rate, FPR) para diferentes umbrales de clasificación.

La línea punteada en la gráfica representa el rendimiento esperado al azar (un clasificador inútil), y el área bajo la curva (AUC) mide el rendimiento del clasificador. Un valor de AUC cercano a 1 indica un buen clasificador, mientras que un valor cercano a 0.5 indica un clasificador que es comparable a la clasificación aleatoria.


Ejemplo Curva AUC – ROC en Python

Ejemplo

    import numpy as np
from sklearn.metrics import roc_curve, auc

y_true = np.array([0, 1, 0, 1, 1, 0, 1])
y_scores = np.array([0.1, 0.9, 0.3, 0.7, 0.8, 0.2, 0.6])
fpr, tpr, _ = roc_curve(y_true, y_scores)
print(auc(fpr, tpr))
  

Este ejemplo muestra cómo cargar el conjunto de datos Iris, entrenar un clasificador SVM, calcular la curva ROC y representarla gráficamente.


Probabilidades

Consideremos dos conjuntos de probabilidades generadas por modelos hipotéticos. En el primer conjunto, las probabilidades no son tan "seguras" al predecir las dos clases; estas probabilidades tienden a estar cerca de 0.5, lo que indica una mayor incertidumbre en las predicciones. En el segundo conjunto, las probabilidades son más "seguras" al predecir las dos clases, ya que tienden a estar cerca de los extremos 0 o 1. Esto sugiere que el segundo modelo tiene más confianza en sus predicciones.

Al evaluar estos modelos, podemos calcular la precisión y el AUC para cada uno. El AUC proporciona una medida cuantitativa de la capacidad de discriminación del modelo, teniendo en cuenta la capacidad del modelo para distinguir entre las clases. Luego, podemos visualizar las curvas ROC de ambos modelos para una comparación visual de su rendimiento en la tarea de clasificación.

Este texto se adapta al contexto de tu ejemplo y explica cómo el AUC se relaciona con la confianza en los modelos de clasificación, utilizando conjuntos de probabilidades hipotéticos como referencia.

Ejemplo

    plt.show()
  

Resultado:

Visualizar precisión del modelo curva auc-roc

Practica Curva AUC - ROC en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Curva ROC y AUC

Calcula roc_curve y el área bajo la curva (AUC).

Ejemplo

    import numpy as np
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

y_true = np.array([0, 1, 0, 1, 1, 0, 1])
y_scores = np.array([0.1, 0.9, 0.2, 0.8, 0.7, 0.3, 0.95])
fpr, tpr, _ = roc_curve(y_true, y_scores)
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, label=f'AUC = {roc_auc:.2f}')
plt.plot([0, 1], [0, 1], linestyle='--')
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.legend()
plt.show()
  
Abrir en editor

Ejercicio: Curva ROC y AUC (2)

La línea punteada en la gráfica representa el rendimiento esperado al azar (un clasificador inútil), y el área bajo la curva (AUC) mide el rendimiento del clasificador. Un valor de.

Ejemplo

    import numpy as np
from sklearn.metrics import roc_curve, auc

y_true = np.array([0, 1, 0, 1, 1, 0, 1])
y_scores = np.array([0.1, 0.9, 0.3, 0.7, 0.8, 0.2, 0.6])
fpr, tpr, _ = roc_curve(y_true, y_scores)
print(auc(fpr, tpr))
  
Abrir en editor

Ejercicio: Añadir con append()

Este texto se adapta al contexto de tu ejemplo y explica cómo el AUC se relaciona con la confianza en los modelos de clasificación, utilizando conjuntos de probabilidades hipotétic.

Ejemplo

    frutas = ["pera", "mango", "fresa"]
print(frutas)
frutas.append("fresa")
print(frutas)
  
Abrir en editor