ROC-AUC vs Precisión-Exhaustividad

Definición corta

ROC-AUC y la curva de Precisión-Exhaustividad son métodos para evaluar clasificadores binarios bajo distintos umbrales de decisión. Aunque ambas curvas analizan el comportamiento probabilístico de un modelo, cada una enfatiza aspectos distintos del rendimiento.

ROC_AUC vs Precisión Exhaustividad
ROC_AUC vs Precisión Exhaustividad

Definición detallada

Los modelos de clasificación binaria suelen producir probabilidades:

  • 0.95 → muy probable positivo
  • 0.10 → poco probable positivo

Para convertir esas probabilidades en decisiones finales, se utiliza un umbral.

Por ejemplo:

  • umbral = 0.5
  • probabilidad > 0.5 → positivo
  • probabilidad ≤ 0.5 → negativo

Al modificar ese umbral, cambian:

  • falsos positivos
  • falsos negativos
  • precisión
  • exhaustividad

ROC-AUC y Precisión-Exhaustividad permiten visualizar cómo evoluciona el modelo bajo distintos umbrales.

Curva ROC

La curva ROC compara:

  • tasa de verdaderos positivos
  • tasa de falsos positivos

Tasa de verdaderos positivos

TVP=VPVP+FNTVP=\frac{VP}{VP+FN}

Tasa de falsos positivos

TFP=FPFP+VNTFP=\frac{FP}{FP+VN}

Intuición de ROC

La curva ROC responde a:

“¿Qué tan bien separa el modelo las clases positivas y negativas?”

Un modelo excelente:

  • detecta muchos positivos
  • genera pocos falsos positivos

ROC-AUC

ROC-AUC representa el área bajo la curva ROC.

Interpretación típica:

ValorInterpretación
1.0Clasificación perfecta
0.5Aleatorio
< 0.5Peor que azar

📉 Curva Precisión-Exhaustividad

La curva Precisión-Exhaustividad compara:

  • precisión
  • exhaustividad

📌 Precisión

Precision=VPVP+FPPrecision=\frac{VP}{VP+FP}


📌 Exhaustividad

Exhaustividad=VPVP+FNExhaustividad=\frac{VP}{VP+FN}


🧠 Intuición de Precisión-Exhaustividad

Esta curva responde a:

“¿Qué tan confiables son las predicciones positivas del modelo?”

La curva se centra mucho más en:

  • calidad de positivos detectados
  • falsos positivos
  • detección de eventos raros

⚖️ Diferencias fundamentales

AspectoROC-AUCPrecisión-Exhaustividad
Evalúa separación globalParcialmente
Sensible a clases desbalanceadasMenosMucho más
Énfasis en positivosBajoAlto
Útil para anomalíasMenosMás
Interpretación en datasets rarosPuede ser engañosaMás fiable

🚨 Problema importante de ROC-AUC

En datasets muy desbalanceados:

  • 99% negativos
  • 1% positivos

ROC-AUC puede parecer excelente aunque:

  • la precisión real sea baja
  • existan muchos falsos positivos

Por eso, en problemas reales con clases raras, ROC-AUC puede ocultar problemas importantes.


✅ Cuándo usar cada una

ROC-AUC

Adecuado cuando:

  • las clases están relativamente balanceadas
  • interesa la capacidad global de separación
  • se comparan clasificadores generales

Precisión-Exhaustividad

Preferible cuando:

  • los positivos son raros
  • los falsos positivos importan mucho
  • se detecta fraude
  • se detecta spam
  • se detectan enfermedades
  • se analizan anomalías

📊 Intuición visual

Curva ROC

  • más cercana a la esquina superior izquierda → mejor

Curva Precisión-Exhaustividad

  • más alta → mejor equilibrio entre precisión y exhaustividad

Ejemplo en Python

Python
import numpy as np
import matplotlib.pyplot as plt
# Datos simulados
recall = np.linspace(0, 1, 100)
precision = 1 - 0.7 * recall**1.5
fpr = np.linspace(0, 1, 100)
tpr = 1 - (1 - fpr)**2
# Crear figura
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
# Curva ROC
ax[0].plot(fpr, tpr)
ax[0].plot([0, 1], [0, 1], linestyle="--")
ax[0].set_title("Curva ROC")
ax[0].set_xlabel("Tasa de falsos positivos")
ax[0].set_ylabel("Tasa de verdaderos positivos")
# Curva Precisión-Exhaustividad
ax[1].plot(recall, precision)
ax[1].set_title("Curva Precisión-Exhaustividad")
ax[1].set_xlabel("Exhaustividad")
ax[1].set_ylabel("Precisión")
plt.tight_layout()
plt.show()

Conceptos relacionados

Conclusión

ROC-AUC y Precisión-Exhaustividad no son métricas rivales: observan el modelo desde perspectivas distintas.

  • ROC-AUC mide capacidad global de separación
  • Precisión-Exhaustividad enfatiza la calidad de las predicciones positivas

En escenarios con clases desbalanceadas, la curva de Precisión-Exhaustividad suele proporcionar una evaluación más útil y más realista del comportamiento del modelo.

Ejemplo en Python

Este concepto incluye un ejemplo práctico en Python para ayudarte a entenderlo mejor:

👉 Ver código en GitHub