Cómo calcular la precisión, la recuperación y la medida F para la clasificación desequilibrada

Tweet Share Share

última actualización el 2 de agosto de 2020

la precisión de clasificación es el número total de predicciones correctas dividido por el número total de predicciones realizadas para un conjunto de datos.

como medida del desempeño, la precisión no es apropiada para los problemas de clasificación desequilibrados.,

la razón principal es que el número abrumador de ejemplos de la clase mayoritaria (o clases) abrumará el número de ejemplos en la clase minoritaria, lo que significa que incluso los modelos poco hábiles pueden lograr puntajes de precisión del 90 por ciento, o 99 por ciento, dependiendo de cuán grave sea el desequilibrio de clase.

una alternativa al uso de precisión de clasificación es utilizar métricas de precisión y recuperación.

en este tutorial, descubrirá cómo calcular y desarrollar una intuición para la precisión y el recuerdo para la clasificación desequilibrada.,

Después de completar este tutorial, sabrá:

  • Precision cuantifica el número de predicciones de clase positivas que realmente pertenecen a la clase positiva.
  • Recall cuantifica el número de predicciones de clase positivas realizadas a partir de todos los ejemplos positivos del conjunto de datos.
  • F-Measure proporciona una puntuación única que equilibra las preocupaciones de precisión y recuperación en un solo número.

inicia tu proyecto con My new book Disbalanced Classification con Python, incluyendo tutoriales paso a paso y los archivos de código fuente de Python para todos los ejemplos.,

comencemos.

  • actualización ENE / 2020: lenguaje mejorado sobre el objetivo de precisión y recuperación. Se corrigieron errores tipográficos sobre lo que la precisión y el recuerdo buscan minimizar (¡gracias por los comentarios!).
  • actualización Feb / 2020: se corrigió el error tipográfico en el nombre de la variable para recordar y f1.

Cómo calcular la precisión, el recuerdo y la medida F para una clasificación desequilibrada
foto de Waldemar Merger, algunos derechos reservados.,

resumen del Tutorial

Este tutorial se divide en cinco partes; son:

  1. matriz de confusión para clasificación desequilibrada
  2. precisión para clasificación desequilibrada
  3. recuperación para clasificación desequilibrada
  4. precisión vs.recuperación para clasificación desequilibrada
  5. F-medida para clasificación desequilibrada

matriz de confusión para clasificación desequilibrada

antes de sumergirnos en la precisión y el recuerdo, es importante revisar la matriz de confusión.,

para problemas de clasificación desequilibrados, la clase mayoritaria se refiere típicamente como el resultado negativo (por ejemplo, «sin cambio» o «resultado negativo de la prueba»), y la clase minoritaria se refiere típicamente como el resultado positivo (por ejemplo, «cambio» o «resultado positivo de la prueba»).

la matriz de confusión proporciona más información no solo sobre el rendimiento de un modelo predictivo, sino también sobre qué clases se predicen correctamente, cuáles incorrectamente y qué tipo de errores se cometen.,

la matriz de confusión más simple es para un problema de clasificación de dos clases, con clases negativas (Clase 0) y positivas (Clase 1).

en este tipo de matriz de confusión, cada celda de la tabla tiene un nombre específico y bien entendido, resumido de la siguiente manera:

las métricas de precisión y recuerdo se definen en términos de las celdas de la matriz de confusión, específicamente términos como verdaderos positivos y falsos negativos.

ahora que hemos repasado la matriz de confusión, echemos un vistazo más de cerca a la métrica de precisión.,

precisión para la clasificación desequilibrada

La precisión es una métrica que cuantifica el número de predicciones positivas correctas realizadas.

La precisión, por lo tanto, calcula la precisión para la clase minoritaria.

se calcula como la proporción de ejemplos positivos predichos correctamente dividido por el número total de ejemplos positivos predichos.

Precision evalúa la fracción de instancias clasificadas correctas entre las clasificadas como positivas

— página 52, aprendiendo de conjuntos de datos desequilibrados, 2018.,

precisión para la clasificación binaria

en un problema de clasificación desequilibrada con dos clases, la precisión se calcula como el número de positivos verdaderos dividido por el número total de positivos verdaderos y falsos positivos.

  • Precision = TruePositives/(TruePositives + FalsePositives)

El resultado es un valor entre 0.0 para no precisión y 1.0 para precisión completa o perfecta.

vamos a hacer este cálculo concreto con algunos ejemplos.,

considere un conjunto de datos con una proporción de minoría a mayoría de 1: 100, con 100 ejemplos de minoría y 10.000 ejemplos de clase mayoritaria.

un modelo hace predicciones y predice 120 ejemplos como pertenecientes a la clase minoritaria, 90 de los cuales son correctos y 30 de los cuales son incorrectos.

la precisión para este modelo se calcula como:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Precision = 90 / (90 + 30)
  • Precision = 90 / 120
  • Precision = 0.75

el resultado es una precisión de 0.75, que es un valor razonable pero no excepcional.,

Puede ver que la precisión es simplemente la proporción de predicciones positivas correctas de todas las predicciones positivas realizadas, o la precisión de las predicciones de clases minoritarias.

considere el mismo conjunto de datos, donde un modelo predice 50 ejemplos pertenecientes a la clase minoritaria, 45 de los cuales son verdaderos positivos y cinco de los cuales son falsos positivos. Podemos calcular la precisión para este modelo de la siguiente manera:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Precision = 45 / (45 + 5)
  • Precision = 45 / 50
  • Precision = 0.,90

en este caso, aunque el modelo predijo muchos menos ejemplos como pertenecientes a la clase minoritaria, la proporción de ejemplos positivos correctos es mucho mejor.

esto resalta que aunque la precisión es útil, no cuenta toda la historia. No comenta cuántos ejemplos de clase positivos reales se predijeron como pertenecientes a la clase negativa, los llamados falsos negativos.

Quiero empezar Con el Desequilibrio de la Clasificación?

tome mi curso intensivo de correo electrónico gratuito de 7 días ahora (con código de muestra).,

Haga clic para inscribirse y también obtenga una versión gratuita en PDF del curso.

descargue su Mini-Curso Gratuito

Precision for Multi-Class Classification

Precision no se limita a problemas de clasificación binaria.

en un problema de clasificación desequilibrada con más de dos clases, la precisión se calcula como la suma de verdaderos positivos en todas las clases dividida por la suma de verdaderos positivos y falsos positivos en todas las clases.,

  • Precision = Sum c in C TruePositives_c / Sum C in C (TruePositives_c + FalsePositives_c)

por ejemplo, podemos tener un problema de clasificación multiclase desequilibrado donde la clase mayoritaria es la clase negativa, pero hay dos clases minoritarias positivas: Clase 1 y clase 2. La precisión puede cuantificar la proporción de predicciones correctas en ambas clases positivas.,

considere un conjunto de datos con una relación de 1:1:100 minoría a clase mayoritaria, es decir, una relación de 1:1 para cada clase positiva y una relación de 1:100 para las clases minoritarias a la clase mayoritaria, y tenemos 100 ejemplos en cada clase minoritaria y 10.000 ejemplos en la clase mayoritaria.

un modelo hace predicciones y predice 70 ejemplos para la primera clase minoritaria, donde 50 son correctos y 20 son incorrectos. Predice 150 para la segunda clase con 99 correcto y 51 incorrecto., La precisión se puede calcular para este modelo de la siguiente manera:

podemos ver que el cálculo de la métrica de precisión escala a medida que aumentamos el número de clases minoritarias.

calcular la precisión con Scikit-Learn

la puntuación de precisión se puede calcular utilizando la función precision_score() scikit-learn.

por ejemplo, podemos utilizar esta función para calcular la precisión de los escenarios de la sección anterior.

primero, el caso donde hay 100 positivos a 10,000 ejemplos negativos, y un modelo predice 90 positivos verdaderos y 30 falsos positivos. El ejemplo completo se muestra a continuación.,

Running the example calculates the precision, matching our manual calculation.

1
Precision: 0.,750

a continuación, podemos utilizar la misma función para calcular la precisión del problema multiclase con 1:1:100, con 100 ejemplos en cada clase minoritaria y 10.000 en la clase mayoritaria. Un modelo predice 50 positivos verdaderos y 20 falsos positivos para la clase 1 y 99 positivos verdaderos y 51 falsos positivos para la clase 2.,

cuando se utiliza la función precision_score () para la clasificación multiclase, es importante especificar las clases minoritarias a través del argumento «labels» y realizar establecer el argumento «average» en ‘micro’ para garantizar que el cálculo se realice como esperamos.

el ejemplo completo se muestra a continuación.

de nuevo, al ejecutar el ejemplo se calcula la precisión para el ejemplo multiclase que coincide con nuestro cálculo manual.,

1
Precisión: 0.,677

Recall para Desequilibrado Clasificación

Recall es una medida que cuantifica el número correcto de predicciones positivas hecha de todas las predicciones positivas que se podrían haber realizado.

a diferencia de precision que solo comenta las predicciones positivas correctas de todas las predicciones positivas, recall proporciona una indicación de las predicciones positivas perdidas.

de esta manera, el recuerdo proporciona alguna noción de la cobertura de la clase positiva.,

para el aprendizaje desequilibrado, el recuerdo se usa típicamente para medir la cobertura de la clase minoritaria.

– página 27, aprendizaje desequilibrado: Fundamentos, algoritmos y aplicaciones, 2013.

Recall for Binary Classification

en un problema de clasificación desequilibrada con dos clases, recall se calcula como el número de verdaderos positivos dividido por el número total de verdaderos positivos y falsos negativos.

  • Recall = TruePositives / (TruePositives + FalseNegatives)

El resultado es un valor entre 0.,0 para ningún retiro y 1.0 para el retiro completo o perfecto.

vamos a hacer este cálculo concreto con algunos ejemplos.

como en la sección anterior, considere un conjunto de datos con una proporción de minoría a mayoría de 1: 100, con 100 ejemplos de minoría y 10.000 ejemplos de clase mayoritaria.

un modelo hace predicciones y predice 90 de las predicciones de clase positivas correctamente y 10 incorrectamente. Podemos calcular el recuerdo para este modelo de la siguiente manera:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • Recall = 90 / (90 + 10)
  • Recall = 90 / 100
  • Recall = 0.,9

Este modelo tiene un buen recuerdo.

Recall for Multi-Class Classification

Recall no se limita a problemas de clasificación binaria.

en un problema de clasificación desequilibrada con más de dos clases, el recuerdo se calcula como la suma de verdaderos positivos en todas las clases dividida por la suma de verdaderos positivos y falsos negativos en todas las clases.,

  • Recall = Sum c in C TruePositives_c / Sum C in C (TruePositives_c + FalseNegatives_c)

como en la sección anterior, considere un conjunto de datos con una relación de 1:1:100 de minoría a clase mayoritaria, es decir, una relación de 1:1 para cada clase positiva y una relación de 1:100 para las clases minoritarias a la clase mayoritaria, y tenemos 100 ejemplos en cada clase minoritaria, y 10.000 ejemplos en la clase mayoritaria.

un modelo predice 77 ejemplos correctamente y 23 incorrectamente para la clase 1, y 95 correctamente y cinco incorrectamente para la clase 2., Podemos calcular la recuperación para este modelo de la siguiente manera:

calcular la recuperación con Scikit-Learn

La puntuación de recuperación se puede calcular utilizando la función recall_score() scikit-learn.

por ejemplo, podemos usar esta función para calcular la recuperación de los escenarios anteriores.

en primer lugar, podemos considerar el caso de un desequilibrio 1:100 con 100 y 10.000 ejemplos respectivamente, y un modelo predice 90 verdaderos positivos y 10 falsos negativos.

el ejemplo completo se muestra a continuación.

ejecutando el ejemplo, podemos ver que la puntuación coincide con el cálculo manual anterior.,

1
Recall: 0.,900

También podemos usar recall_score() para problemas de clasificación multiclase desequilibrados.

en este caso, el conjunto de datos tiene un desequilibrio 1: 1: 100, con 100 en cada clase minoritaria y 10.000 en la clase mayoritaria. Un modelo predice 77 positivos verdaderos y 23 negativos falsos para la clase 1 y 95 positivos verdaderos y cinco negativos falsos para la clase 2.

el ejemplo completo se muestra a continuación.

de nuevo, al ejecutar el ejemplo se calcula la recuperación del ejemplo multiclase que coincide con nuestro cálculo manual.,

1
Recall: 0.860

la Precisión de vs, Recordar para la clasificación desequilibrada

Usted puede decidir utilizar precisión o recordar en su problema de clasificación desequilibrada.

maximizar la precisión minimizará el número de falsos positivos, mientras que maximizar el recuerdo minimizará el número de falsos negativos.

  • precisión: el enfoque es apropiado cuando se minimizan los falsos positivos.
  • recordar: el enfoque es apropiado cuando se minimizan los falsos negativos.

a veces, queremos excelentes predicciones de la clase positiva. Queremos alta precisión y alta recuperación.,

esto puede ser desafiante, ya que a menudo los aumentos en el recuerdo a menudo vienen a expensas de disminuciones en la precisión.

en conjuntos de datos desequilibrados, el objetivo es mejorar la recuperación sin dañar la precisión. Estos objetivos, sin embargo, son a menudo contradictorios, ya que con el fin de aumentar el TP para la clase minoritaria, el número de FP también se incrementa a menudo, lo que resulta en una precisión reducida.

– página 55, aprendizaje desequilibrado: Fundamentos, algoritmos y aplicaciones, 2013.,

sin embargo, en lugar de elegir una medida u otra, podemos elegir una nueva métrica que combine precisión y recuperación en una sola puntuación.

F-medida para la clasificación desequilibrada

la precisión de la clasificación es ampliamente utilizada porque es una sola medida utilizada para resumir el rendimiento del modelo.

F-Measure proporciona una forma de combinar precisión y recuperación en una sola medida que captura ambas propiedades.

solo, ni la precisión ni el recuerdo cuentan toda la historia., Podemos tener una precisión excelente con un recuerdo terrible, o alternativamente, una precisión terrible con un recuerdo excelente. F-measure proporciona una manera de expresar ambas preocupaciones con una sola puntuación.

una vez calculada la precisión y el recuerdo para un problema de clasificación binaria o multiclase, las dos puntuaciones se pueden combinar en el cálculo de la medida F.

la medida tradicional de F Se calcula de la siguiente manera:

  • F-Measure = (2 * Precision * Recall)/(Precision + Recall)

Esta es la media armónica de las dos fracciones., Esto a veces se llama la puntuación F o la puntuación F1 y podría ser la métrica más común utilizada en problemas de clasificación desequilibrada.

the la medida F1, que pesa la precisión y el recuerdo por igual, es la variante más utilizada cuando se aprende de datos desequilibrados.

– página 27, aprendizaje desequilibrado: Fundamentos, algoritmos y aplicaciones, 2013.

Al igual que la precisión y el recuerdo, un puntaje de medida F pobre es 0.0 y un puntaje de medida F mejor o perfecto es 1.,0

por ejemplo, una puntuación perfecta de precisión y recuperación daría como resultado una puntuación perfecta de F-Measure:

  • F-Measure = (2 * Precision * Recall) / (Precision + Recall)
  • F-Measure = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-medida = (2 * 1.0) / 2.0
  • F-Measure = 1.0

hagamos este cálculo concreto con un ejemplo trabajado.

considere un conjunto de datos de clasificación binaria con una proporción de minoría a mayoría de 1: 100, con 100 ejemplos de minoría y 10.000 ejemplos de clase mayoritaria.,

considere un modelo que predice 150 ejemplos para la clase positiva, 95 son correctos (verdaderos positivos), lo que significa que cinco se perdieron (falsos negativos) y 55 son incorrectos (falsos positivos).

podemos calcular la precisión de la siguiente manera:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Precision = 95 / (95 + 55)
  • Precision = 0.633

podemos calcular el recuerdo de la siguiente manera:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • Recall = 95 / (95 + 5)
  • Recall = 0.,95

esto muestra que el modelo tiene poca precisión, pero excelente recuerdo.

finalmente, podemos calcular la medida F de la siguiente manera:

podemos ver que el buen recuerdo nivela la pobre precisión, dando una puntuación de medida F aceptable o razonable.

Calcule F-Measure con Scikit-Learn

La puntuación F-measure se puede calcular usando la función f1_score() scikit-learn.

por ejemplo, usamos esta función para calcular la medida F para el escenario anterior.,

Este es el caso de un desequilibrio 1:100 con 100 y 10.000 ejemplos respectivamente, y un modelo predice 95 verdaderos positivos, cinco falsos negativos y 55 falsos positivos.

el ejemplo completo se muestra a continuación.

al ejecutar el ejemplo se calcula la medida F, coincidiendo con nuestro cálculo manual, dentro de algunos errores de redondeo menores.,

1
F-Medida: 0.,760

Leer Más

Esta sección proporciona más recursos sobre el tema si usted está buscando para ir más profundo.

tutoriales

  • Cómo calcular precisión, recuperación, F1 y más para modelos de aprendizaje profundo
  • Cómo usar curvas ROC y curvas de recuperación de precisión para la clasificación en Python

Papers

  • A Systematic Analysis of Performance Measures For Classification Tasks, 2009.

libros

  • Aprendizaje desequilibrado: Fundamentos, algoritmos y aplicaciones, 2013.,
  • aprendiendo de conjuntos de datos desequilibrados, 2018.

API

  • sklearn.métricas.precision_score API.
  • sklearn.métricas.API recall_score.
  • sklearn.métricas.F1_SCORE API.

Articles

  • Confusion matrix, Wikipedia.
  • precisión y recuperación, Wikipedia.
  • puntuación F1, Wikipedia.

resumen

en este tutorial, descubriste cómo calcular y desarrollar una intuición para la precisión y la recuperación para la clasificación desequilibrada.,

Específicamente, aprendiste:

  • La precisión cuantifica el número de predicciones de clase positivas que realmente pertenecen a la clase positiva.
  • Recall cuantifica el número de predicciones de clase positivas realizadas a partir de todos los ejemplos positivos del conjunto de datos.
  • F-Measure proporciona una puntuación única que equilibra las preocupaciones de precisión y recuperación en un solo número.

¿tiene alguna pregunta?Haga sus preguntas en los comentarios a continuación y haré mi mejor esfuerzo para responder.,

Conseguir una Manija en Desequilibrio en la Clasificación!

desarrolle modelos de aprendizaje desequilibrados en minutos

…con solo unas pocas líneas de código python

descubre cómo en mi nuevo Ebook:
Clasificación desequilibrada con Python

proporciona tutoriales de autoaprendizaje y proyectos de extremo a extremo sobre:
métricas de rendimiento, Métodos de Submuestreo, SMOTE, movimiento de umbral, calibración de probabilidad, algoritmos sensibles a los costos
y mucho más…,

Traer Desequilibrado Métodos de Clasificación a Su equipo de Proyectos de Aprendizaje

Vea Lo que hay Dentro de

Tweet Compartir Compartir

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *