Aprenda cómo las curvas ROC y el AUC evalúan el rendimiento del clasificador en IA/ML, optimizando la tasa de verdaderos positivos (TPR) frente a la tasa de falsos positivos (FPR) para tareas como la detección de fraude y el diagnóstico médico.
Una curva ROC (Receiver Operating Characteristic) es una representación gráfica utilizada para evaluar el rendimiento de un modelo de clasificación binaria. modelo de clasificación binaria. Visualiza el equilibrio entre la tasa de verdaderos positivos (TPR) y la tasa de falsos positivos (FPR) a través de diferentes umbrales de clasificación. (FPR) a través de diferentes umbrales de clasificación. En aprendizaje automático (AM), esta curva es fundamental para evaluar lo bien que un modelo puede distinguir entre dos clases, como "spam" frente a "no spam" o "enfermo". "no spam" o "enfermo" frente a "sano". Al trazar estos índices, la curva ROC ofrece una visión completa de la capacidad de diagnóstico de un modelo, más allá de métricas de un solo número, como la precisión, que pueden inducir a error si se utilizan de forma aislada. precisión, que puede ser engañosa por sí sola.
Para interpretar correctamente una curva ROC, es esencial comprender las dos métricas trazadas en sus ejes:
La curva se genera variando el umbral de confianza del clasificador de 0 a 1. Cada punto punto de la curva ROC representa un par sensibilidad/especificidad correspondiente a un umbral de decisión concreto. A Una línea diagonal desde abajo a la izquierda hasta arriba a la derecha representa un clasificador aleatorio sin capacidad de predicción (lanzamiento de una moneda), mientras que una curva (lanzamiento de una moneda al aire), mientras que una curva que se inclina hacia la esquina superior izquierda indica un modelo de alto rendimiento.
Las curvas ROC se utilizan ampliamente en diversos sectores para optimizar los umbrales de decisión en la implantación de modelos. implantación de modelos.
Para trazar una curva ROC, necesita las probabilidades predichas para la clase positiva en lugar de sólo las etiquetas de clase finales
finales. En el siguiente ejemplo se muestra cómo extraer estas probabilidades utilizando una función
YOLO11 modelo de clasificación del
ultralytics paquete.
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on an image to get prediction results
results = model("path/to/image.jpg")
# Access the probability distribution for all classes
# These scores are necessary inputs for calculating ROC and AUC
probs = results[0].probs.data
print(f"Class probabilities: {probs}")
Una vez obtenidas estas probabilidades para un conjunto de datos de prueba, bibliotecas como Scikit-learn para calcular los valores de FPR y TPR necesarios para trazar la curva.
Aunque la curva ROC es una herramienta potente, conviene distinguirla de otros conceptos de evaluación relacionados:
Para tareas de detección de objetos, métricas como Precisión media (mAP) aunque las curvas ROC siguen siendo relevantes para el componente de clasificación subyacente de estos modelos. Comprender estas distinciones garantiza que los desarrolladores elijan la métrica adecuada para sus retos específicos de visión por ordenador. específicos de visión por ordenador (VC ).