La curva ROC (Receiver Operating Characteristic) se utiliza para evaluar el rendimiento de los algoritmos de clasificación binaria, es decir, entre dos clases o categorías (1 o 0, Verdadero o Falso, etc.). La curva ROC proporciona una representación gráfica, en lugar de un valor único como la mayoría de las otras métricas.
*Esta publicación es una adaptación al español de la publicación Understanding the ROC Curve and AUC original del blog https://towardsdatascience.com/. Agradezco muchísimo al autor su labor al escribirla y al blog el mantenerla publicada, así como el poderla tomar prestada para publicarla aquí.
Antes de todo, aclaremos que en la clasificación binaria, hay cuatro resultados posibles para una predicción: Verdadero positivo (TP), Falso positivo (FP), Verdadero negativo (TN) y Falso negativo (FN).
La curva ROC se genera calculando y trazando la tasa de verdaderos positivos (TPR) contra la tasa de falsos positivos (FPR) para un solo clasificador en una variedad de umbrales (en el siguiente párrafo se definen matemáticamente ambas tasas). Por ejemplo, en un modelo de regresión logística, el umbral sería sobre la probabilidad predicha de una observación perteneciente a la clase positiva. Normalmente, en la regresión logística, si se predice que una observación será positiva con una probabilidad mayor que 0.5, se etiqueta como positiva. Sin embargo, realmente podríamos elegir cualquier umbral entre 0 y 1 (0.1, 0.3, 0.6, 0.99, etc.), y, de este modo, la curva ROC nos ayudaría a visualizar cómo estas elecciones afectan al rendimiento del clasificador.
La tasa de verdaderos positivos (TPR), o Sensibilidad, se define como:
donde TP es el número de Verdaderos positivos y FN es el número de Falsos negativos. La tasa de verdaderos positivos es una medida de la probabilidad de que una instancia positiva real se clasifique como positiva.
La tasa de falsos positivos (FPR), o 1 – Especificidad, se define como:
donde FP es el número de Falsos positivos y TN es el número de Verdaderos negativos. La tasa de falsos positivos es esencialmente una medida de la frecuencia con la que se producirá una «falsa alarma», o la frecuencia con la que una instancia negativa real se clasificará como positiva.
En la siguiente figura se muestra como sería la curva ROC para tres hipotéticos clasificadores distintos.
La línea de puntos gris representa un clasificador aleatorio (equivalente a «adivinar al azar»); su curva ROC consiste en una línea recta diagonal de pendiente 1. Opuestamente, la línea violeta representa un clasificador perfecto, es decir, que no comete ningún error (uno con una tasa de verdaderos positivos del 100% y una tasa de falsos positivos del 0%). Casi todos los ejemplos del mundo real se ubicarán en algún lugar entre estas dos líneas; no es perfecto, pero proporciona más poder de predicción que la suposición aleatoria. Por lo general, lo que buscamos es un clasificador que mantenga una alta tasa de verdaderos positivos y al mismo tiempo tenga una baja tasa de falsos positivos; este clasificador ideal tendería a pasar muy próximo a la esquina superior izquierda de la figura anterior, casi rozando a la línea púrpura.
El AUC
Si bien es útil visualizar la curva ROC de un clasificador binario, en muchos casos podemos resumir esta información en una sola métrica: el AUC. El AUC significa área bajo la curva (ROC) en inglés. Generalmente, cuanto mayor es la puntuación AUC, mejor es el rendimiento de un clasificador binario para una tarea de clasificación dada.
La siguiente figura muestra que para un clasificador sin poder predictivo (es decir, de predicción aleatoria), el AUC es 0.5, y para un clasificador perfecto, el AUC es 1.0; esto es el área bajo sus correspondientes curvas ROC.
La mayoría de los clasificadores estarán entre 0.5 y 1.0, con la rara excepción de que el clasificador funcione peor que la predicción aleatoria (AUC<0.5); en este caso se estarían efectuando predicciones invertidas, es decir, se tendería a predecir la clase negativa cuando esta fuera realmente positiva y viceversa.
¿Por qué usar las curvas ROC?
Una ventaja que presentan las curvas ROC es que nos ayudan a encontrar un umbral de clasificación que se adapte a nuestro problema específico.
Por ejemplo, si estuviéramos evaluando un clasificador de correo no deseado, querríamos que la tasa de falsos positivos fuera realmente baja. No queríamos que nadie perdiera un correo electrónico importante en el filtro de spam solo porque nuestro algoritmo es demasiado agresivo. Probablemente, incluso permitiríamos una buena cantidad de correos electrónicos no deseados reales (verdaderos positivos) a través del filtro solo para asegurarnos de que no se perdieran correos electrónicos importantes.
Por otro lado, si nuestro clasificador estuviera prediciendo si alguien tiene una enfermedad terminal, podríamos estar de acuerdo con un mayor número de falsos positivos (diagnósticos incorrectos de la enfermedad), solo para asegurarnos de que no perdamos ningún positivo verdadero (personas que realmente tienen la enfermedad).
Además, las curvas ROC y las puntuaciones AUC también nos permiten comparar el rendimiento de diferentes clasificadores para el mismo problema y así poder elegir el de mayor rendimiento.