Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Receiver Operating Characteristic (ROC) Curve

Una curva de característica operativa del receptor (ROC) representa la tasa de verdaderos positivos frente a la tasa de falsos positivos para cada umbral. Descubre cómo interpretarla, qué es el AUC y consulta el código.

Una curva característica operativa del receptor (ROC) es un gráfico que muestra lo bien que un clasificador binario separa dos clases para todos los umbrales de decisión posibles. Representa la tasa de verdaderos positivos en el eje y frente a la tasa de falsos positivos en el eje x, con un punto por cada umbral aplicado a las puntuaciones del modelo, de modo que una sola imagen abarca todas las compensaciones entre detectar positivos y generar falsas alarmas. Su área, el área bajo la curva (AUC), resume esa imagen en una cifra independiente del umbral. El nombre procede de la ingeniería de radares de la Segunda Guerra Mundial, donde medía la capacidad de los operadores de receptores de radar para distinguir aviones enemigos del ruido; más tarde, el método se extendió a la medicina, la psicología y el aprendizaje automático (ML).

Cómo se construye una curva ROC#

Cada punto de la curva procede de una matriz de confusión calculada con un umbral:

  • Tasa de verdaderos positivos (TPR), también llamada recuperación o sensibilidad: TP / (TP + FN), la proporción de positivos reales que el modelo identifica.
  • Tasa de falsos positivos (FPR): FP / (FP + TN), la proporción de negativos reales que se identifican erróneamente. FPR equivale a 1 menos la especificidad.

Al recorrer el umbral de mayor a menor, la curva va de (0, 0), donde no se identifica nada, a (1, 1), donde se identifica todo. Un clasificador que ordena todos los positivos por encima de todos los negativos pasa por la esquina superior izquierda; un modelo que adivina al azar sigue la diagonal, y una curva por debajo de la diagonal significa que las puntuaciones están invertidas. El AUC equivale a la probabilidad de que un positivo elegido al azar reciba una puntuación superior a la de un negativo elegido al azar, por lo que 0.5 representa el azar y 1.0 una separación perfecta. Para construir la curva hacen falta puntuaciones continuas, como probabilidades predichas o valores de confianza, porque las etiquetas binarias 0/1 solo dan un punto. En el ejemplo siguiente se entrena un clasificador de regresión logística con un conjunto de datos desequilibrado y se calcula su curva con roc_curve de scikit-learn:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, roc_curve
from sklearn.model_selection import train_test_split

# Binary task where 10% of samples are positive
X, y = make_classification(n_samples=5000, weights=[0.9], class_sep=0.8, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)

# ROC analysis needs continuous scores, not hard 0/1 predictions
scores = LogisticRegression().fit(X_train, y_train).predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, scores)
print(f"AUC: {roc_auc_score(y_test, scores):.3f}")

# Each threshold is one point on the curve: higher recall costs more false alarms
for target in (0.80, 0.95):
    i = np.argmax(tpr >= target)  # first point that reaches the target TPR
    print(f"Threshold {thresholds[i]:.2f}: TPR {tpr[i]:.2f}, FPR {fpr[i]:.2f}")

El modelo alcanza un AUC de 0.963. Con un umbral de 0.44, detecta el 82 % de los positivos con una FPR de 0.01; para alcanzar una recuperación del 95 %, hay que reducir el umbral a 0.02, donde la FPR sube a 0.26. En esta partición de prueba, con 130 positivos y 1.120 negativos, detectar 18 positivos más supone 279 falsas alarmas adicionales.

Cómo elegir un punto de operación#

La curva muestra el coste de cada umbral y la aplicación decide qué coste es aceptable:

  • Cribado médico: Pasar por alto un tumor es mucho más costoso que realizar una prueba de seguimiento, por lo que las herramientas de cribado funcionan en un punto de TPR alta y aceptan más falsos positivos para que los radiólogos los revisen.
  • Detección de fraude: Cada pago legítimo bloqueado causa molestias a un cliente, por lo que los bancos eligen un punto que detecte la mayoría de los fraudes y mantenga la FPR en un nivel asumible para sus equipos de revisión y sus clientes.
  • Costes iguales: Cuando ambos errores tienen el mismo coste, el estadístico J de Youden, TPR menos FPR, selecciona el punto más alejado por encima de la diagonal.

Los modelos de clasificación Ultralytics YOLO26 devuelven en results[0].probs.data una probabilidad para cada clase, las puntuaciones continuas que necesita el análisis ROC; así, recopilar la probabilidad de una clase en un conjunto de validación etiquetado proporciona la curva ROC de esa clase frente al resto y permite elegir un umbral adecuado a los costes del despliegue.

Una curva de precisión-recuperación representa la precisión frente a la recuperación, en vez de la TPR frente a la FPR. Como la TPR y la FPR se calculan dentro de cada clase, la curva ROC no cambia cuando los positivos se vuelven menos frecuentes, mientras que la precisión disminuye. Cuando los positivos son poco frecuentes, como en la detección de fraude o la detección de anomalías, una FPR pequeña puede seguir generando más falsas alarmas que detecciones verdaderas, y un estudio de PLOS ONE sobre conjuntos de datos desequilibrados concluyó que, en ese contexto, los gráficos de precisión-recuperación eran más informativos. La detección de objetos se evalúa con curvas de precisión-recuperación y precisión media (mAP) por un motivo relacionado: las regiones de fondo que contarían como verdaderos negativos no tienen límites, así que la FPR no tiene un denominador fijo.

  • Precisión y puntuación F1: Cifras únicas medidas con un solo umbral, mientras que la curva ROC y su AUC resumen todos los umbrales.
  • Clasificación de imágenes con muchas clases: Cada clase obtiene una curva ROC de una clase frente al resto, y los AUC de cada clase se promedian en una puntuación macro o ponderada por prevalencia, que scikit-learn calcula con roc_auc_score y multi_class="ovr".

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático