La curva AUC-ROC nell'apprendimento automatico è spiegata chiaramente

Contenuti

Curva AUC-ROC: ¡el artista estrella!

Ha creado su modelo de aprendizaje automático, poi, Qual è il prossimo? Debe evaluarlo y validar qué tan bueno (o malo) è, 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). Confuso? ¡Te siento! He estado en tus zapatos. Ma non preoccuparti, veremos en detalle qué significan estos términos y ¡todo será pan comido!

meme-5912963

Per adesso, 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 Matrice di confusione ya que presentará algunos términos importantes que usaremos en este artículo.

Sommario

  • ¿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:

basic-confusion-matrix-1987000

Dalla matrice di confusione, podemos derivar algunas métricas importantes que no se discutieron en el artículo anterior. Hablemos de ellos aquí.

Sensibilidad / Tasa de verdaderos positivos / Recupero

sensitivity-3599495

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

fnr-3498913

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

specificity-8396579

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-7258453

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 e 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. Ma prima di questo, 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:

data-1-2029385

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. Anziché, 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?

il 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ñaldel ‘ruido. il Área bajo la curva (AUC) es la misura 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.

auc1-2945329

Cuando AUC = 1, entonces el clasificador puede distinguir perfectamente entre todos los puntos de clase positivos y negativos correctamente. tuttavia, si el AUC hubiera sido 0, entonces el clasificador estaría prediciendo todos los negativos como positivos y todos los positivos como negativos.

auc3-6074645

quando 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.

auc2-6761171

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.

Perciò, 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. Perciò, 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.

auc-roc-curve-2971055

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:

confusion-matricesa-4673275

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.

Infatti, 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.

confusion-matricesb-8100498

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.

confusion-matricescd-1132411

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. Ciò significa che, para el mismo número de puntos de clase negativos clasificados incorrectamente, el clasificador predijo un número mayor de puntos de clase positivos. Perciò, el umbral en el punto C es mejor que en el punto D.

Ora, 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

confusion-matricese-9204135

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

Ora, 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:

roc-4785452

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. Perciò, 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

Come ho detto prima, 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.

Quindi, si tenemos tres clases 0, 1 e 2, la ROC para la clase 0 se generará clasificando 0 contra no 0, vale a dire, 1 e 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:

multiclass-roc-4690120

Note finali

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:

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.