Todos han estado en ese momento, ¿verdad? Mirando una tabla como si fuera un guión antiguo, preguntándose cómo se supone que debemos darle sentido a todo. Así es exactamente como me sentí cuando me pidieron que explicara el AUC para la curva ROC en el trabajo recientemente.
Aunque tenía una comprensión sólida de las matemáticas detrás de esto, descomponiéndola en términos simples y digeribles demostró ser un desafío. Me di cuenta de que si estaba luchando con él, otros probablemente también. Entonces, decidí escribir este artículo para compartir una forma intuitiva de comprender la curva AUC-ROC a través de un ejemplo práctico. No hay definiciones secas aquí, solo explicaciones claras y directas centradas en la intuición.
Aquí está el código1 utilizado en este artículo.
Cada científico de datos pasa por una fase de evaluación de modelos de clasificación. En medio de una variedad de métricas de evaluación, características operativas del receptor (ROC) curva y el Área bajo la curva (AUC) es una herramienta indispensable para medir el rendimiento del modelo. En este artículo completo, discutiremos los conceptos básicos y los veremos en acción usando nuestro buen viejo Conjunto de datos titánico2.
Sección 1: Curva ROC
En esencia, la curva ROC retrata visualmente el delicado equilibrio entre la sensibilidad y la especificidad de un modelo en umbrales de clasificación variables.
Para comprender completamente la curva ROC, profundicemos en los conceptos:
- Sensibilidad/recuerdo (tasa positiva verdadera): La sensibilidad cuantifica la adeptitud de un modelo para identificar correctamente instancias positivas. En nuestro ejemplo de Titanic, la sensibilidad corresponde a la proporción de casos de supervivencia reales que el modelo etiqueta con precisión como positiva.
- Especificidad (tasa negativa verdadera): La especificidad mide la competencia de un modelo en la identificación correctamente de instancias negativas. Para nuestro conjunto de datos, representa la proporción de casos reales no supervividos (supervivencia = 0) que el modelo identifica correctamente como negativo.
- Tasa de falsos positivos: FPR mide la proporción de instancias negativas que se clasifican incorrectamente como positivas por el modelo.
Observe que la especificidad y el FPR son complementarios entre sí. Si bien la especificidad se centra en la clasificación correcta de instancias negativas, FPR se centra en la clasificación incorrecta de instancias negativas como positivas. De este modo-
Ahora que conocemos las definiciones, trabajemos con un ejemplo. Para el conjunto de datos Titanic, he creado un modelo de regresión logística simple que predice si el pasajero sobrevivió al naufragio o no, utilizando las siguientes características: Clase de pasajeros, sexo, # de hermanos/cónyuges a bordo, tarifa de pasajeros y puerto de embarque. Tenga en cuenta que el modelo predice la “probabilidad de supervivencia”. El umbral predeterminado para la regresión logística en Sklearn es 0.5. Sin embargo, este umbral predeterminado puede no siempre tener sentido para que el problema se resuelva y necesitamos jugar con el umbral de probabilidad, es decir, si el umbral de probabilidad predicho>, se predice que la instancia es positiva de otra manera negativa.
Ahora, volvamos a visitar las definiciones de sensibilidad, especificidad y FPR anterior. Dado que nuestra clasificación binaria prevista depende del umbral de probabilidad, para el modelo dado, estas tres métricas cambiarán en función del umbral de probabilidad que usamos. Si utilizamos un umbral de probabilidad más alto, clasificaremos menos casos como positivos, es decir, nuestros verdaderos positivos serán menos, lo que dará como resultado una menor sensibilidad/retiro. Un umbral de probabilidad más alto también significa menos falsos positivos, tan bajo FPR. Como tal, aumentar la sensibilidad/retiro podría conducir a un aumento de la FPR.
Para nuestros datos de entrenamiento, utilizaremos 10 cortes de probabilidad diferentes y calcularemos la sensibilidad/TPR y FPR y trazaremos en un cuadro a continuación. Tenga en cuenta que el tamaño de los círculos en el diagrama de dispersión corresponde al umbral de probabilidad utilizado para la clasificación.
Bueno, eso es todo. El gráfico que creamos anteriormente Sensibilidad (TPR) vs. ¡FPR en varios umbrales de probabilidad es la curva ROC!
En nuestro experimento, utilizamos 10 límites de probabilidad diferentes con un incremento de 0.1 que nos dio 10 observaciones. Si usamos un incremento más pequeño para el umbral de probabilidad, terminaremos con más puntos de datos y el gráfico se verá como nuestra curva ROC familiar.
Para confirmar nuestra comprensión, para el modelo que construimos para predecir la supervivencia del pasajero, recorreremos varios umbrales de probabilidad predichos y calcularemos TPR, FPR para el conjunto de datos de pruebas (ver fragmento de código a continuación). Traza los resultados en un gráfico y compare este gráfico con la curva ROC trazada usando sklearn’s roc_curve3 .
Como podemos ver, las dos curvas son casi idénticas. Nota el AUC = 0.92 se calculó usando el roc_auc_score4 función. Discutiremos este AUC en la última parte de este artículo.
Para resumir, la curva ROC traza TPR y FPR para el modelo en varios umbrales de probabilidad. Tenga en cuenta que las probabilidades reales son No se muestra En el gráfico, pero se puede suponer que las observaciones en el lado inferior izquierdo de la curva corresponden a umbrales de probabilidad más altos (TPR bajo), y la observación en el lado superior derecho corresponde a umbrales de probabilidad más bajos (TPR altos).
Para visualizar lo que se indica anteriormente, consulte el cuadro a continuación, donde he intentado anotar TPR y FPR con diferentes puntos de probabilidad.
Sección 2: AUC
Ahora que hemos desarrollado cierta intuición en torno a lo que es la curva ROC, el siguiente paso es comprender Área debajo de la curva (AUC). Pero antes de profundizar en los detalles, pensemos en cómo se ve un clasificador perfecto. En el caso ideal, queremos que el modelo logre una separación perfecta entre observaciones positivas y negativas. En otras palabras, el modelo asigna bajas probabilidades a observaciones negativas y altas probabilidades a observaciones positivas sin superposición. Por lo tanto, existirá cierta probabilidad, de modo que todas las observaciones con probabilidad prevista
En general, a medida que TPR aumenta con la disminución del umbral de probabilidad, el FPR también aumenta (Ver gráfico 1). Queremos que TPR sea mucho más alto que FPR. Esto se caracteriza por la curva ROC que se dobla hacia el lado superior izquierdo. El siguiente cuadro espacial ROC muestra el clasificador perfecto con un círculo azul (TPR = 1 y FPR = 0). Los modelos que producen la curva ROC más cerca del círculo azul son mejores. Intuitivamente, significa que el modelo puede separar las observaciones negativas y positivas bastante. Entre las curvas ROC en la siguiente tabla, el azul claro es mejor seguido de verde y naranja. La línea diagonal discontinua representa conjeturas aleatorias (piense en un cambio de moneda).
Ahora que entendemos que las curvas ROC sesgadas a la parte superior izquierda son mejores, ¿cómo cuantificamos esto? Bueno, matemáticamente, esto se puede cuantificar calculando el área bajo la curva. El área debajo de la curva (AUC) de la curva ROC siempre está entre 0 y 1 porque nuestro espacio ROC está limitado entre 0 y 1 en ambos ejes. Entre las curvas ROC anteriores, el modelo correspondiente a la curva ROC azul claro es mejor en comparación con el verde y el naranja, ya que tiene un AUC más alto.
Pero, ¿cómo se calcula AUC? Computacionalmente, AUC implica integrar el ROC curva. Para los modelos que generan predicciones discretas, AUC se puede aproximar utilizando el regla trapezoidal6. En su forma más simple, la regla trapezoidal funciona al aproximar la región bajo el gráfico como trapezoide y calcular su área. Probablemente discutiré esto en otro artículo.
Esto nos lleva a la última y la parte más esperada: ¿cómo dar sentido intuitivamente a AUC? Supongamos que creó una primera versión de un modelo de clasificación con AUC 0.7 y luego ajusta el modelo. El modelo revisado tiene un AUC de 0.9. Entendemos que el modelo con AUC más alto es mejor. Pero, ¿qué significa realmente? ¿Qué implica sobre nuestro poder de predicción mejorado? ¿Por qué importa? Bueno, hay mucha literatura que explica AUC y su interpretación. ¡Algunos de ellos son demasiado técnicos, otros incompletos y otros están absolutamente equivocados! Una interpretación que tenía más sentido para mí es:
AUC es la probabilidad de que una instancia positiva elegida al azar posea una probabilidad predicha más alta que una instancia negativa elegida al azar.
Verifiquemos esta interpretación. Para la simple regresión logística que construimos, visualizaremos las probabilidades predichas de clases positivas y negativas (es decir, sobrevivió al naufragio o no).
Podemos ver que el modelo funciona bastante bien al asignar una mayor probabilidad de sobrevivir casos que los que no lo hicieron. Hay una superposición de probabilidades en la sección central. El AUC calculado usando el auc score La función en sklearn para nuestro modelo en el conjunto de datos de prueba es 0.92 (Ver gráfico 2). Entonces, según la interpretación anterior de AUC, si elegimos aleatoriamente una instancia positiva y una instancia negativa, la probabilidad de que la instancia positiva tenga una mayor probabilidad predicha que la instancia negativa debería ser ~ 92%.
Para este propósito, crearemos grupos de probabilidades predichas de resultados positivos y negativos. Ahora seleccionamos aleatoriamente una observación cada uno de los grupos y comparamos sus probabilidades predichas. Repetimos estas 100k veces. Más tarde calculamos el % de veces que la probabilidad predicha de una instancia positiva fue> probabilidad predicha de una instancia negativa. Si nuestra interpretación es correcta, esto debería ser igual a.
¡De hecho obtuvimos 0.92! Espero que esto ayude.
Déjame saber tus comentarios y siéntete libre de conectarte conmigo LinkedIn.
Nota – Este artículo es la versión revisada del artículo original que escribí en Medium en 2023.
Referencias:
- https://github.com/swpnilsp/roc-auc-curve/blob/main/roc_curve_analysis%20(2).ipynb
- https://www.kaggle.com/competitions/titanic/data (Licencia-CC0: Dominio público)
- https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve
- https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html
- https://en.wikipedia.org/wiki/receiver_operating_characteristic
- https://en.wikipedia.org/wiki/trapezoidal_rule