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.

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
Tasa de falsos positivos
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:
| Valor | Interpretación |
|---|---|
| 1.0 | Clasificación perfecta |
| 0.5 | Aleatorio |
| < 0.5 | Peor que azar |
📉 Curva Precisión-Exhaustividad
La curva Precisión-Exhaustividad compara:
- precisión
- exhaustividad
📌 Precisión
📌 Exhaustividad
🧠 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
| Aspecto | ROC-AUC | Precisión-Exhaustividad |
|---|---|---|
| Evalúa separación global | Sí | Parcialmente |
| Sensible a clases desbalanceadas | Menos | Mucho más |
| Énfasis en positivos | Bajo | Alto |
| Útil para anomalías | Menos | Más |
| Interpretación en datasets raros | Puede ser engañosa | Má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
import numpy as npimport matplotlib.pyplot as plt# Datos simuladosrecall = np.linspace(0, 1, 100)precision = 1 - 0.7 * recall**1.5fpr = np.linspace(0, 1, 100)tpr = 1 - (1 - fpr)**2# Crear figurafig, ax = plt.subplots(1, 2, figsize=(12, 5))# Curva ROCax[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-Exhaustividadax[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
- Precisión
- Exhaustividad
- F1-score
- Clasificación binaria
- Matriz de confusión
- ROC-AUC
- Curva ROC
- Curva Precisión-Exhaustividad
- Umbral de decisión
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: