Modelos Predictivos y la Curva ROC
Portada » Machine Learning » Modelos Predictivos y la Curva ROC

Modelos Predictivos y la Curva ROC

Dentro del mundo del Machine Learning y los modelos predictivos he hablado de la Matriz de Confusión (en la imagen) y las principales métricas para evaluar sus resultados. 

Sin embargo, nos falta una pieza esencial del puzzle,  la Curva de Característica Operativa del Receptor más conocida por la Curva ROC por sus siglas en inglés (Receiver Operating Charasteristic Curve). Vamos a ello!

Qué es la Curva ROC

Imaginemos que nuestro equipo de Científicos de Datos ha estado entrenando un modelo para predecir si cuando un nuevo usuario que llega a nuestro sitio web acabará realizando una compra o no y queremos saber cómo de bueno es el modelo a la hora de hacer sus predicciones. Aquí es donde entra la curva ROC.

La curva ROC es una herramienta visual que te ayuda a evaluar la precisión de un sistema de predicción. Bueno, siendo precisos, en realidad la curva te muestra hasta que punto el modelo es bueno a la hora de clasificar o, en otras palabras, distinguir adecuadamente entre dos clases: los positivos (aquellos usuarios que convierten) y los negativos (aquellos usuarios que no convierten).

Una vez que hemos entrenado el modelo habremos hecho un análisis del feature importance de nuestras variables. En Machine Learning, feature importance (importancia de las características) es una técnica que asigna una puntuación a los atributos de un modelo predictivo para indicar su relevancia o contribución en la predicción del modelo. Esta medida permite identificar cuáles son las características más influyentes en el resultado del modelo, ayudando en la interpretación del modelo, la selección de características y a la mejora del rendimiento del modelo.

Pues una vez que hayamos entrenado nuestro modelo para la predicción de la conversión (clasificación) habremos identificado y evaluado la relevancia que tiene cada parámetro del conjunto de datos que conocemos a nuestra habilidad para predecir su probabilidad de conversión. Por ejemplo, cuando un nuevo usuario inicia su visita a nuestro sitio conocemos datos como la pagina en la que aterriza, la fuente del tráfico de la que viene, el navegador que usa, la hora del día, el origen geográfico de la IP… A partir de esos atributos el modelo generará una puntuación de la probabilidad de conversión que materializará en forma de score.

El modelo entonces habrá generado una serie de puntuaciones para caso del conjunto de datos que deberemos utilizar para validar la bondad del modelo. Una vez que ordenamos los datos en base a su puntuación o scoring, tendremos que definir un punto de corte en la serie. Un punto de referencia a partir del cual vamos a establecer cuando clasificaremos a un usuario como positivo (convertirá) o negativo (se ira sin dejarse un euro).

Como se muestra en el siguiente gráfico cuando nos situemos por encima del punto de corte se clasificará como positivo (conversión) y por debajo lo contrario. Digamos que fijamos un punto de corte por ejemplo en el score 0,85.

Una vez tenemos nuestra clasificación en base a ese punto de corte es la hora de comparar nuestras predicciones con los datos reales de conversión del conjunto de datos de validación y calcular la matriz de confusión.

Con los datos de la matriz vamos a calcular dos métricas, el Recall o tasa de verdaderos positivos (TPR de True Positive Rate) y la especificidad o tasa de falsos positivos (FPR de False Positive Rate). Con estas dos métricas podemos empezar a pintar el primer punto de nuestra curva. 

La curva ROC tiene dos ejes principales:

  • Eje Y (Tasa de Verdaderos Positivos o Sensibilidad / Recall): Representa la proporción de casos positivos correctamente identificados por el modelo. Simplificando, de todos los usuarios que realmente convirtieron, ¿cuántos identifica correctamente el modelo?
  • Eje X (1 – Tasa de Falsos Positivos o 1 – Especificidad): Representa la proporción de casos negativos que el sistema identifica incorrectamente como positivos. En esta ocasión, ¿cuantos predecimos correctamente de todos aquellos usuarios que no convirtieron?

En nuestra primera iteración hemos fijado 0,85 como punto de corte. Ahora vamos a «pintar» los resultados de las dos coordenadas en el gráfico. El punto resultante será el primer punto que formará parte de la curva ROC.

¿Que hacemos a continuación? pues volvemos a iterar con un punto de corte diferente al anterior, por ejemplo 0,75, y volvemos a elaborar nuestra matriz de confusión y a calcular las mismas métricas.

Ahora tenemos nuestro segundo punto de la curva y podemos añadirlo al anterior.

De este modo seguiremos iterando una y otra vez con diferentes umbrales de corte, recalculando la matriz y sus métricas en cada iteración. En cada ocasión obtendremos un nuevo punto para la curva. 

Por lo tanto cada punto representará el resultado para un determinado punto de corte. Nuestro objetivo es encontrar cuál es el umbral que nos ayuda a hacer una mejor clasificación de nuestra conversión, es decir, a diferenciar acertadamente los usuarios que convierten de los que no convierten.

Cuando el punto que obtenemos cae en la diagonal nos indica que la probabilidad de un TP (True Positive) y de un False Positive (FP) es exactamente la misma. O dicho de otro modo, que el modelo predice del mismo modo que lo haría un modelo puramente aleatorio como lanzar una moneda al aire.

Si el punto está por encima de la diagonal nos dice que en ese punto de corte el porcentaje de TP es mayor que la de FP, es decir, el modelo es capaz de predecir correctamente la conversión en mayor proporción que cuando se equivoca y predice una conversión que no ha ocurrido en realidad. Iteración a iteración, punto de corte a punto de corte, la curva ROC va tomando forma

Características de la Curva ROC
  1. La curva ROC siempre se inicia en la esquina inferior izquierda, es decir, el punto en que Sensibilidad y 1-Especifidad son iguales a 0 o, dicho de otro modo, donde cada ejemplo se clasifica como negativo.
  2. Una curva ROC siempre finaliza en la esquina superior derecha, es decir, donde la tasa de verdaderos positivo y falsos positivos es igual a uno, que corresponde a un umbral de decisión de 0 donde cada ejemplo se clasifica como positivo.
  3. Los puntos intermedios de la curva son los resultantes de los cálculos que he venido realizando en el ejemplo y han ido formando la curva. Si queremos obtener una gráfica más angulada podemos usar un número de puntos de corte como por ejemplo 1, 0,75, 0,5, 0,25 y 0. Si queremos una gráfica más suavizada que se asemeje más a una curva tendremos que usar muchos puntos de corte diferentes.

El siguiente gráfico muestra diferentes curvas ROC que podemos usar para comparar los resultados de diferente modelos. Cuanto más hacia la izquierda y hacia arriba sea nuestra curva mejor será la capacidad de clasificar correctamente de nuestro modelo.  

 El Área bajo la Curva ROC

El área bajo la curva ROC (AUROC o AUC) es, como su propio nombre indica, el área que queda delimitada en el gráfico bajo la curva. El AUROC sirve como indicador de si el modelo puede clasificar correctamente, dicho de otra forma nos muestra la probabilidad de que un ejemplo positivo seleccionado al azar tenga una mayor probabilidad de ser clasificado positivo que un ejemplo negativo seleccionado aleatoriamente. 

La precisión promedio indicará si el modelo puede identificar correctamente todos los ejemplos positivos sin clasificar por error demasiados ejemplos negativos como positivos. Por lo tanto, la precisión promedio será alta cuando el modelo puede clasificar correctamente un mayor número de positivos. 

La precisión promedio se calcula como el área bajo la curva que mide el equilibrio entre precisión y recuperación para diferentes umbrales de decisión. O dicho de otro modo el AUROC mide el equilibrio entre la tasa de verdaderos positivos (TPR) y la tasa de falsos positivos (FPR) en diferentes umbrales de decisión.

El AURC (o AUROC en ocasiones) nos permite comparar el rendimiento de diferentes modelos gráficamente. 

Interpretación del AUROC

El valor del AUROCC varía entre 0 y 1 y se interpreta de la siguiente manera:

  • AUROC = 1.0: El modelo es capaz de distinguir perfectamente en cada ocasión entre las clases positivas y negativas. Tiene una sensibilidad del 100% y una especificidad del 100%, es decir, es capaz de clasificar correctamente tanto los usuarios que convertirán como los que no lo harán.
  • 0.8 < AUROC < 1.0: Cuanto más cerca esté el AUC de 1, mejor es la capacidad de discriminar del modelo. Un AUC entre 0,8 y 1 es un modelo bastante bueno discriminando correctamente las clases, en nuestro caso la probabilidad de conversión.
  • 0.7 < AUROC < 0,8: Aún estamos ante un modelo bastante bueno.
  • 0.5 < AUROC < 0,7: Entramos en un rango en el que el modelo ya no tiene un buen comportamiento, cuanto más cerca esté el valor de 0,5 peor es su capacidad de clasificar correctamente.
  • AUROC = 0.5: nos encontramos en el área debajo de la diagonal, en este espacio la capacidad del modelo es igual de preciso que tratar de adivinar al azar lanzando una moneda al aire.
  • AUROC < 0.5: El modelo tiene un rendimiento peor que el azar. Esto rara vez se da, y podría indicar que el modelo está invertido en su capacidad de predicción.

Cuando es más interesante usar el AUROC

La AUROC es una métrica muy popular para evaluar modelos de clasificación binaria. Sin embargo, su relevancia y aplicabilidad varían según las características del conjunto de datos y el problema específico que se esté abordando.

El AUROC es especialmente útil en casos donde positivos y negativos están balanceados, es decir, hay casi tantos de uno como del otro. En estos casos, la AUROC es una buena métrica porque el impacto de la proporción de las clases en el rendimiento del modelo es mínimo.

Sin embargo, en casos como el de la conversión, donde los datos de interés para nuestra predicción están muy desbalanceados, osea tenemos muchos datos negativos pero muy pocos positivos, la AUROC puede resultar «excesivamente optimista». 

En estos casos, donde los verdaderos negativos (TN) predominan sobre los verdaderos positivos (TP), puede resultar difícil utilizar AUROC para distinguir el rendimiento de dos modelos. ¿Por qué? En los casos con muchos más ejemplos de casos negativos que positivos, si se observa una mejora sustancial en el número de falsos positivos (FP) sólo conducirá a un pequeño cambio en la métrica de Especifidad. Si tenemos una ENORME cantidad de verdaderos negativos (TN) en el denominador, será muy difícil cambiar significativamente la especifidad solo afectando el número de falsos positivos (FP) por la desproporción en los datos.

Foto portada de Geranimo en Unsplash

 

 

 

CompartirFacebookX
Únete a la discusión

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Instagram

Instagram has returned empty data. Please authorize your Instagram account in the plugin settings .

Please note

This is a widgetized sidebar area and you can place any widget here, as you would with the classic WordPress sidebar.

Johannes

A multi-concept personal blog and magazine WordPress theme