UD4 · Evaluación del modelo entrenado | MP02 · Entrenamiento de modelos de aprendizaje automático
Curva ROC y AUC — Concepto y visualización
La curva ROC representa el equilibrio entre la Tasa de Verdaderos Positivos (Recall) y la Tasa de Falsos Positivos para todos los umbrales de decisión posibles. El AUC (área bajo la curva) resume en un único número la capacidad discriminante del modelo.
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
fpr, tpr, umbrales = roc_curve(y_test, y_prob)
roc_auc = auc(fpr, tpr)
plt.figure(figsize=(7, 5))
plt.plot(fpr, tpr, label=f"Modelo (AUC = {roc_auc:.3f})", color="#2563eb")
plt.plot([0, 1], [0, 1], "k--", label="Clasificador aleatorio (AUC = 0.5)")
plt.xlabel("Tasa de Falsos Positivos")
plt.ylabel("Tasa de Verdaderos Positivos (Recall)")
plt.title("Curva ROC")
plt.legend()
plt.tight_layout()
plt.savefig("curva_roc.png", dpi=150)
AUC=1.0 es perfecto, AUC=0.5 equivale a clasificación aleatoria.