Curva ROC y Umbral de Decisión

- ¿Qué es el umbral de decisión?
- ⚖️ ¿Por qué ajustar el umbral de decisión?
- 📈 ¿Qué es la Curva ROC?
- 📌 Área bajo la curva (AUC)
- 🔁 ¿Qué pasa si cambiamos el umbral?
- 📊 Ejemplo práctico
- 📉 ¿Cómo elegir el mejor umbral?
- 🧮 Cómo calcularlo en la práctica
- 🤯 ¿Y si hay más de dos clases?
- 📚 Ejemplo cotidiano: detección de fraude
- 🔗 Relación con otros conceptos clave
- ❓ Preguntas frecuentes (FAQ)
- 📢 Conclusión y próximos pasos
¿Qué es el umbral de decisión?
Cuando un modelo de clasificación genera una predicción, en realidad lo que devuelve internamente es una probabilidad.
Por ejemplo:
- "Este email tiene un 87% de probabilidad de ser spam"
- "Esta transacción tiene un 22% de probabilidad de ser fraudulenta"
Para traducir esa probabilidad en una decisión (sí o no), se necesita un umbral de decisión.
📌 Por defecto, muchas implementaciones lo fijan en 0.5. Es decir:
- Si la probabilidad es ≥ 0.5 → clase positiva (ej. spam)
- Si es < 0.5 → clase negativa (ej. no spam)
Pero este umbral se puede (y debe) ajustar en función del problema.
⚖️ ¿Por qué ajustar el umbral de decisión?
Porque no todos los errores pesan igual.
Por ejemplo:
- En un sistema antispam, es mejor dejar pasar un poco de spam que perder un correo importante.
- En medicina, es mejor detectar un posible cáncer con falsa alarma que no detectarlo a tiempo.
Ajustando el umbral podemos priorizar:
- 🎯 Precisión → evitar falsos positivos
- 📥 Recall → atrapar todos los casos posibles
Este trade-off entre precisión y recall se puede visualizar con la Curva ROC.
📈 ¿Qué es la Curva ROC?
La Curva ROC (Receiver Operating Characteristic) muestra gráficamente el comportamiento del modelo a diferentes umbrales.
En el eje X se representa:
- Tasa de falsos positivos (FPR) = FP / (FP + TN)
En el eje Y:
- Tasa de verdaderos positivos (TPR o recall) = TP / (TP + FN)
Cada punto de la curva representa un umbral distinto.
Cuanto más arriba a la izquierda esté la curva, mejor es el modelo.
📌 Área bajo la curva (AUC)
El AUC (Area Under the Curve) es una sola métrica que resume toda la curva:
- AUC = 1 → modelo perfecto
- AUC = 0.5 → modelo aleatorio (tan bueno como lanzar una moneda)
Cuanto más alto el AUC, mejor es el modelo para distinguir entre clases.
🔁 ¿Qué pasa si cambiamos el umbral?
Imagina un modelo que clasifica si un correo es spam.
- Con umbral 0.5 → clasifica como spam si la probabilidad es mayor a 0.5
- Con umbral 0.8 → solo marcará como spam si está muy seguro
Esto reduce falsos positivos (correos buenos marcados como spam), pero aumenta falsos negativos (deja pasar más spam).
Cambiar el umbral afecta directamente a:
- ✔️ Precisión
- 📥 Recall
- ⚠️ Falsos positivos y negativos
Por eso es tan importante visualizarlo con la curva ROC.
📊 Ejemplo práctico
Supón que tienes un modelo que predice si una reseña es positiva:
| Reseña | Probabilidad de ser positiva |
|---|---|
| R1 | 0.95 |
| R2 | 0.85 |
| R3 | 0.60 |
| R4 | 0.45 |
| R5 | 0.25 |
Con umbral 0.5 → R1, R2, R3 son positivas; R4 y R5 negativas.
Con umbral 0.8 → Solo R1 y R2 son positivas. Se gana precisión, pero se pierde recall.
📉 ¿Cómo elegir el mejor umbral?
No hay uno universal. Algunas estrategias comunes:
- Maximizar F1 Score: buscar el umbral que mejor balancea precisión y recall.
- Minimizar pérdida: según el coste de los errores en cada caso.
- Punto más cercano a la esquina superior izquierda de la curva ROC.
Lo importante es alinear el umbral con los objetivos del negocio.
🧮 Cómo calcularlo en la práctica
Con librerías como scikit-learn puedes calcular todo esto fácilmente:
from sklearn.metrics import roc_curve, auc
# y_scores = probabilidades
# y_true = etiquetas reales
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
roc_auc = auc(fpr, tpr)
Luego puedes usar matplotlib para graficar la curva y encontrar el umbral óptimo:
import matplotlib.pyplot as plt
plt.plot(fpr, tpr, label=f'AUC = {roc_auc:.2f}')
plt.plot([0, 1], [0, 1], linestyle='--')
plt.xlabel('Tasa de falsos positivos')
plt.ylabel('Tasa de verdaderos positivos')
plt.title('Curva ROC')
plt.legend()
plt.show()
🤯 ¿Y si hay más de dos clases?
La ROC se usa principalmente en clasificación binaria.
Para problemas multiclase:
- Se construyen curvas ROC uno contra el resto (OvR) por cada clase.
- Se calcula el promedio del AUC.
Esto ayuda a evaluar modelos complejos, como los que clasifican imágenes en varias categorías.
📚 Ejemplo cotidiano: detección de fraude
En un sistema que detecta fraude bancario:
- Con umbral bajo: detecta más fraudes, pero bloquea transacciones legítimas (falsos positivos).
- Con umbral alto: evita molestar a usuarios, pero deja escapar fraudes reales (falsos negativos).
La elección depende de la tolerancia al riesgo del banco y del coste de equivocarse.
🔗 Relación con otros conceptos clave
- Precisión y Recall: métricas fundamentales que varían según el umbral.
- F1 Score: se utiliza para encontrar el equilibrio ideal entre precisión y recall.
- Evaluación de modelos: la curva ROC complementa otras métricas de rendimiento.
- Validación cruzada: permite probar diferentes umbrales con mayor robustez.
- Overfitting y Underfitting: modelos sobreajustados pueden mostrar curvas ROC artificialmente altas.
- Curva Precision-Recall: alternativa a la ROC en contextos de clases desbalanceadas.
❓ Preguntas frecuentes (FAQ)
🔹 ¿Qué significa un AUC de 0.90?
Que el modelo tiene un 90% de probabilidad de clasificar correctamente una instancia positiva aleatoria frente a una negativa.
🔹 ¿Se puede tener alta precisión y alto recall a la vez?
Sí, pero es raro. Normalmente hay que elegir entre uno u otro según el caso.
🔹 ¿ROC es mejor que Accuracy?
Sí, porque accuracy puede ser engañosa en problemas con clases desbalanceadas.
🔹 ¿El umbral se puede optimizar automáticamente?
Sí. Puedes usar validación cruzada o una función de pérdida personalizada.
🔹 ¿Hay alternativas a la curva ROC?
Sí, como la Curva Precision-Recall, que es más útil cuando hay muchas más instancias negativas que positivas.
📢 Conclusión y próximos pasos
La curva ROC y el umbral de decisión son herramientas fundamentales para entender el comportamiento real de un modelo de clasificación.
👉 Saber mover el umbral te permite personalizar la inteligencia artificial según el riesgo, el negocio y el contexto.
En el próximo post exploraremos cómo aplicar esto en producción y qué estrategias usar para ajustar el umbral de forma dinámica según el entorno real.
Si quieres conocer otros artículos parecidos a Curva ROC y Umbral de Decisión puedes visitar la categoría Wiki.

Deja una respuesta