Receiver Operating Characteristic (ROC) Curve
Aprende a usar la curva de Característica Operativa del Receptor (ROC) para evaluar clasificadores binarios. Explora las compensaciones entre TPR y FPR con Ultralytics YOLO26.
La curva de Característica Operativa del Receptor (ROC) es una herramienta gráfica fundamental utilizada para evaluar el rendimiento de los modelos de clasificación binaria. En el ámbito del machine learning (ML), visualiza el equilibrio entre la sensibilidad de un modelo y su especificidad en todos los umbrales de decisión posibles. A diferencia de las métricas de un solo valor como la accuracy, que pueden ser engañosas si un conjunto de datos está desequilibrado, la curva ROC ofrece una visión completa de cómo se comporta un clasificador a medida que los criterios para identificar casos positivos se vuelven más o menos estrictos. Esta visualización es esencial para los ingenieros que utilizan técnicas de supervised learning para determinar el punto de operación óptimo para su caso de uso específico.
Link to this sectionInterpretación de los ejes y las compensaciones#
Para entender una curva ROC, es necesario observar los dos parámetros representados uno frente al otro: la Tasa de Verdaderos Positivos (TPR) y la Tasa de Falsos Positivos (FPR).
- Tasa de Verdaderos Positivos (TPR): A menudo denominada Recall o sensibilidad, esta métrica en el eje y mide la proporción de observaciones positivas reales que el modelo identificó correctamente. Una TPR alta significa que el sistema rara vez pasa por alto un objetivo.
- Tasa de Falsos Positivos (FPR): Representada en el eje x, esto constituye la proporción de instancias negativas que se clasifican incorrectamente como positivas, también conocidas como una "falsa alarma".
La curva ilustra una relación dinámica: a medida que reduces el umbral de confidence para capturar más casos positivos (aumentando la TPR), inevitablemente aumentas el riesgo de marcar casos negativos incorrectamente (aumentando la FPR). Un clasificador perfecto alcanzaría la esquina superior izquierda del gráfico, lo que indica un 100 % de sensibilidad y un 0 % de falsas alarmas. Un modelo que realiza conjeturas aleatorias aparecería como una línea diagonal desde la parte inferior izquierda hasta la superior derecha. El rendimiento general se resume a menudo mediante el Area Under the Curve (AUC), donde un valor de 1.0 representa la perfección.
Link to this sectionAplicaciones en el mundo real#
La decisión de dónde establecer el umbral en una curva ROC depende completamente del coste de los errores en una aplicación industrial específica.
-
Diagnóstico médico: En AI in healthcare, específicamente para tareas como la detección de tumores en medical image analysis, el coste de pasar por alto un caso positivo (un falso negativo) puede ser potencialmente mortal. Por lo tanto, los profesionales suelen elegir un umbral que maximice la TPR, incluso si da como resultado una FPR más alta, lo que significa que más pacientes sanos podrían ser marcados inicialmente para realizar pruebas adicionales.
-
Detección de fraude financiero: Cuando se utiliza AI in finance para supervisar transacciones con tarjetas de crédito, los bancos deben equilibrar la seguridad con la experiencia del cliente. Si el sistema es demasiado sensible (TPR alta), podría bloquear tarjetas legítimas (FPR alta), lo que frustraría a los usuarios. Los analistas utilizan la curva ROC para encontrar un umbral equilibrado que detecte la mayor parte del fraude mientras mantiene los false positives en un mínimo aceptable.
Link to this sectionGeneración de probabilidades para el análisis ROC#
Para trazar una curva ROC, necesitas las probabilidades de predicción brutas en lugar de solo las etiquetas de clase finales. El siguiente ejemplo utiliza el modelo de última generación YOLO26 para generar puntuaciones de clasificación.
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")Una vez recopiladas estas probabilidades para un conjunto de validación, los desarrolladores pueden utilizar bibliotecas como Scikit-learn para calcular los puntos de la curva. Para gestionar conjuntos de datos y realizar un seguimiento de estas métricas a lo largo del tiempo, la Ultralytics Platform ofrece herramientas integradas para la evaluación y el despliegue de modelos.
Link to this sectionROC frente a conceptos relacionados#
Es importante distinguir la curva ROC de otras herramientas de evaluación:
- frente a la curva de Precision-Recall (PR): Mientras que la ROC traza la TPR frente a la FPR, la Precision-Recall curve traza la Precisión frente al Recall. La curva PR se prefiere generalmente cuando el conjunto de datos está muy desequilibrado (p. ej., al detectar anomalías raras), ya que la curva ROC a veces puede presentar una visión demasiado optimista en tales escenarios.
- frente a la matriz de confusión: Una confusion matrix proporciona una instantánea del rendimiento en un único umbral específico. Por el contrario, la curva ROC visualiza el rendimiento en todos los umbrales posibles, lo que la convierte en una herramienta más amplia para el análisis de predictive modeling antes de establecer una regla de decisión final.






