Curva AUC-ROC: ¡el artista estrella!
Ha creado su modelo de aprendizaje automático, entonces, ¿qué sigue? Debe evaluarlo y validar qué tan bueno (o malo) es, para luego decidir si implementarlo. Ahí es donde entra la curva AUC-ROC.
El nombre puede ser un bocado, pero solo dice que estamos calculando el «Área bajo la curva» (AUC) del «Operador de características del receptor» (ROC). ¿Confundido? ¡Te siento! He estado en tus zapatos. Pero no te preocupes, veremos en detalle qué significan estos términos y ¡todo será pan comido!
Por ahora, solo sepa que la curva AUC-ROC nos ayuda a visualizar qué tan bien se está desempeñando nuestro clasificador de aprendizaje automático. Aunque solo funciona para problemas de clasificación binaria, veremos hacia el final cómo podemos extenderlo para evaluar también problemas de clasificación de clases múltiples.
También cubriremos temas como la sensibilidad y la especificidad, ya que estos son temas clave detrás de la curva AUC-ROC.
Sugiero leer el artículo sobre Matriz de confusión ya que presentará algunos términos importantes que usaremos en este artículo.
Tabla de contenido
- ¿Qué son la sensibilidad y la especificidad?
- Probabilidad de predicciones
- ¿Qué es la curva AUC-ROC?
- ¿Cómo funciona la curva AUC-ROC?
- AUC-ROC en Python
- AUC-ROC para clasificación de clases múltiples
¿Qué son la sensibilidad y la especificidad?
Así es como se ve una matriz de confusión:
De la matriz de confusión, podemos derivar algunas métricas importantes que no se discutieron en el artículo anterior. Hablemos de ellos aquí.
Sensibilidad / Tasa de verdaderos positivos / Recuperación
La sensibilidad nos dice qué proporción de la clase positiva se clasificó correctamente.
Un ejemplo simple sería determinar qué proporción de las personas enfermas reales fueron detectadas correctamente por el modelo.
Tasa de falso negativo
La Tasa de Falso Negativo (FNR) nos dice qué proporción de la clase positiva fue clasificada incorrectamente por el clasificador.
Es deseable un TPR más alto y un FNR más bajo ya que queremos clasificar correctamente la clase positiva.
Especificidad / Tasa Negativa Verdadera
La especificidad nos dice qué proporción de la clase negativa se clasificó correctamente.
Tomando el mismo ejemplo que en Sensibilidad, Especificidad significaría determinar la proporción de personas sanas que fueron identificadas correctamente por el modelo.
Tasa de falsos positivos
FPR nos dice qué proporción de la clase negativa fue clasificada incorrectamente por el clasificador.
Es deseable un TNR más alto y un FPR más bajo ya que queremos clasificar correctamente la clase negativa.
De estas métricas, Sensibilidad y Especificidad son quizás los más importantes y veremos más adelante cómo se utilizan para construir una métrica de evaluación. Pero antes de eso, entendamos por qué la probabilidad de predicción es mejor que predecir la clase objetivo directamente.
Probabilidad de predicciones
Se puede utilizar un modelo de clasificación de aprendizaje automático para predecir la clase real del punto de datos directamente o predecir su probabilidad de pertenecer a diferentes clases. Este último nos da más control sobre el resultado. Podemos determinar nuestro propio umbral para interpretar el resultado del clasificador. ¡Esto a veces es más prudente que simplemente construir un modelo completamente nuevo!
Establecer diferentes umbrales para clasificar la clase positiva para los puntos de datos cambiará inadvertidamente la sensibilidad y la especificidad del modelo. Y uno de estos umbrales probablemente dará un mejor resultado que los demás, dependiendo de si nuestro objetivo es reducir el número de falsos negativos o falsos positivos.
Eche un vistazo a la siguiente tabla:
Las métricas cambian con los valores de umbral cambiantes. Podemos generar diferentes matrices de confusión y comparar las distintas métricas que discutimos en la sección anterior. Pero eso no sería prudente. En cambio, lo que podemos hacer es generar una gráfica entre algunas de estas métricas para que podamos visualizar fácilmente qué umbral nos está dando un mejor resultado.
¡La curva AUC-ROC resuelve ese problema!
¿Qué es la curva AUC-ROC?
los Característica del operador del receptor (ROC) La curva es una métrica de evaluación para problemas de clasificación binaria. Es una curva de probabilidad que traza la TPR contra FPR en varios valores de umbral y esencialmente separa la ‘señal’ del ‘ruido’. los Área bajo la curva (AUC) es la medidaLa "medida" es un concepto fundamental en diversas disciplinas, que se refiere al proceso de cuantificar características o magnitudes de objetos, fenómenos o situaciones. En matemáticas, se utiliza para determinar longitudes, áreas y volúmenes, mientras que en ciencias sociales puede referirse a la evaluación de variables cualitativas y cuantitativas. La precisión en la medición es crucial para obtener resultados confiables y válidos en cualquier investigación o aplicación práctica.... de la capacidad de un clasificador para distinguir entre clases y se utiliza como resumen de la curva ROC.
Cuanto mayor sea el AUC, mejor será el rendimiento del modelo para distinguir entre las clases positivas y negativas.
Cuando AUC = 1, entonces el clasificador puede distinguir perfectamente entre todos los puntos de clase positivos y negativos correctamente. Sin embargo, si el AUC hubiera sido 0, entonces el clasificador estaría prediciendo todos los negativos como positivos y todos los positivos como negativos.
Cuando 0.5 <AUC <1, existe una alta probabilidad de que el clasificador pueda distinguir los valores de clase positivos de los valores de clase negativos. Esto es así porque el clasificador puede detectar más números de verdaderos positivos y verdaderos negativos que falsos negativos y falsos positivos.
Cuando AUC = 0.5, entonces el clasificador no puede distinguir entre puntos de clase positivos y negativos. Lo que significa que el clasificador predice una clase aleatoria o una clase constante para todos los puntos de datos.
Por tanto, cuanto mayor sea el valor AUC de un clasificador, mejor será su capacidad para distinguir entre clases positivas y negativas.
¿Cómo funciona la curva AUC-ROC?
En una curva ROC, un valor del eje X más alto indica un número mayor de falsos positivos que de verdaderos negativos. Mientras que un valor más alto en el eje Y indica un mayor número de verdaderos positivos que falsos negativos. Por lo tanto, la elección del umbral depende de la capacidad de equilibrar entre falsos positivos y falsos negativos.
Profundicemos un poco más y entendamos cómo se vería nuestra curva ROC para diferentes valores de umbral y cómo variarían la especificidad y la sensibilidad.
Podemos intentar comprender este gráfico generando una matriz de confusión para cada punto correspondiente a un umbral y hablar sobre el rendimiento de nuestro clasificador:
El punto A es donde la sensibilidad es más alta y la especificidad la más baja. Esto significa que todos los puntos de clase positivos se clasifican correctamente y todos los puntos de clase negativos se clasifican incorrectamente.
De hecho, cualquier punto de la línea azul corresponde a una situación en la que la tasa de verdaderos positivos es igual a la tasa de falsos positivos.
Todos los puntos por encima de esta línea corresponden a la situación en la que la proporción de puntos clasificados correctamente pertenecientes a la clase Positiva es mayor que la proporción de puntos clasificados incorrectamente pertenecientes a la clase Negativa.
Aunque el punto B tiene la misma sensibilidad que el punto A, tiene una mayor especificidad. Lo que significa que el número de puntos de clase incorrectamente negativos es menor en comparación con el umbral anterior. Esto indica que este umbral es mejor que el anterior.
Entre los puntos C y D, la sensibilidad en el punto C es más alta que en el punto D para la misma especificidad. Esto significa que, para el mismo número de puntos de clase negativos clasificados incorrectamente, el clasificador predijo un número mayor de puntos de clase positivos. Por tanto, el umbral en el punto C es mejor que en el punto D.
Ahora, dependiendo de cuántos puntos clasificados incorrectamente queramos tolerar para nuestro clasificador, elegiríamos entre el punto B o C para predecir si puedes vencerme en PUBG o no.
«Las falsas esperanzas son más peligrosas que los miedos». – JRR Tolkein
El punto E es donde la especificidad se vuelve más alta. Lo que significa que no hay falsos positivos clasificados por el modelo. ¡El modelo puede clasificar correctamente todos los puntos de clase negativos! Elegiríamos este punto si nuestro problema fuera dar recomendaciones de canciones perfectas a nuestros usuarios.
Siguiendo esta lógica, ¿puedes adivinar dónde estaría el punto correspondiente a un clasificador perfecto en el gráfico?
¡Sí! Estaría en la esquina superior izquierda del gráfico ROC correspondiente a la coordenada (0, 1) en el plano cartesiano. Es aquí donde tanto la Sensibilidad como la Especificidad serían las más altas y el clasificador clasificaría correctamente todos los puntos de clase Positivos y Negativos.
Comprender la curva AUC-ROC en Python
Ahora, podemos probar manualmente la sensibilidad y la especificidad para cada umbral o dejar que sklearn haga el trabajo por nosotros. ¡Definitivamente vamos con lo último!
Creemos nuestros datos arbitrarios usando el método sklearn make_classification:
Probaré el rendimiento de dos clasificadores en este conjunto de datos:
Sklearn tiene un método muy potente roc_curve () que calcula la ROC para su clasificador en cuestión de segundos. Devuelve los valores de umbral, TPR y FPR:
La puntuación AUC se puede calcular utilizando el método roc_auc_score () de sklearn:
0.9761029411764707 0.9233769727403157
Pruebe este código en la ventana de codificación en vivo a continuación:
También podemos trazar las curvas ROC para los dos algoritmos usando matplotlib:
Es evidente a partir del gráfico que el AUC de la curva ROC de regresión logística es mayor que el de la curva KNN ROC. Por lo tanto, podemos decir que la regresión logística hizo un mejor trabajo al clasificar la clase positiva en el conjunto de datos.
AUC-ROC para clasificación de clases múltiples
Como dije antes, la curva AUC-ROC es solo para problemas de clasificación binaria. Pero podemos extenderlo a problemas de clasificación multiclase utilizando la técnica Uno contra Todos.
Entonces, si tenemos tres clases 0, 1 y 2, la ROC para la clase 0 se generará clasificando 0 contra no 0, es decir, 1 y 2. La ROC para la clase 1 se generará clasificando 1 contra no 1, y pronto.
La curva ROC para modelos de clasificación de clases múltiples se puede determinar de la siguiente manera:
Notas finales
Espero que este artículo le haya resultado útil para comprender cuán poderosa es la métrica de la curva AUC-ROC para medir el rendimiento de un clasificador. Lo usará mucho en la industria e incluso en hackatones de ciencia de datos o aprendizaje automático. ¡Mejor familiarízate con él!
Yendo más allá, le recomendaría los siguientes cursos que serán útiles para desarrollar su perspicacia en ciencia de datos:
Relacionado
Posts Relacionados:
- Comprender el aprendizaje automático | ¿Qué es el aprendizaje automático?
- Algoritmos de aprendizaje automático | Introducción al aprendizaje automático
- Agrupación jerárquica de enlace único claramente explicada.
- Algoritmo de aprendizaje automático en línea | Aprendizaje en línea vs aprendizaje por lotes