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 Receiver Operating Characteristic (ROC) es una herramienta gráfica fundamental utilizada para evaluar el rendimiento de los modelos de clasificación binaria. En el ámbito del aprendizaje automático (ML), visualiza el equilibrio entre la sensibilidad y la especificidad de un modelo en todos los umbrales de decisión posibles. A diferencia de las métricas de un solo valor como la precisión, que pueden resultar engañosas si un conjunto de datos está desequilibrado, la curva ROC ofrece una visión exhaustiva de cómo se comporta un clasificador a medida que el criterio para identificar instancias positivas se vuelve más o menos estricto. Esta visualización es esencial para los ingenieros que emplean técnicas de aprendizaje supervisado para determinar el punto de operación óptimo para su caso de uso específico.
Interpretació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 exhaustividad 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 bajas el umbral de confianza para capturar más casos positivos (lo que aumenta la TPR), inevitablemente incrementas el riesgo de señalar casos negativos incorrectamente (lo que aumenta 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 esquina inferior izquierda hasta la superior derecha. El rendimiento general suele resumirse mediante el área bajo la curva (AUC), donde un valor de 1.0 representa la perfección.
Aplicaciones 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 la IA en el sector sanitario, específicamente para tareas como la detección de tumores en el análisis de imágenes médicas, el coste de pasar por alto un caso positivo (un falso negativo) puede poner en peligro la vida. Por lo tanto, los profesionales suelen elegir un umbral que maximice la TPR, incluso si ello provoca una FPR más alta, lo que significa que es posible que al principio se marque a más pacientes sanos para realizarles más pruebas.
-
Detección de fraude financiero: Cuando la IA en las finanzas se utiliza para monitorizar 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 capture la mayor parte del fraude mientras mantiene los falsos positivos en un mínimo aceptable.
Generación de probabilidades para el análisis ROC#
Para trazar una curva ROC, necesitas las probabilidades de predicción brutas en lugar de limitarte a las etiquetas de clase finales. El siguiente ejemplo utiliza el modelo de vanguardia 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 que se recopilan 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.
ROC frente a conceptos relacionados#
Es importante distinguir la curva ROC de otras herramientas de evaluación:
- Frente a la curva de precisión-exhaustividad (PR): Mientras que la ROC representa la TPR frente a la FPR, la curva de precisión-exhaustividad representa la precisión frente a la exhaustividad. La curva PR suele preferirse cuando el conjunto de datos está muy desequilibrado (por ejemplo, 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 matriz de confusión 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 modelado predictivo antes de establecer una regla de decisión final.






