¿Qué se debe y no se debe hacer cuando se enfrenta a un problema de clases desequilibradas?

Este post se escribió junto con Joseph Rocca .

Introducción

Supongamos que está trabajando en un Una empresa determinada y se le solicita que cree un modelo que, en función de las distintas medidas a su disposición, predice si un producto es defectuoso o no. Decides utilizar tu clasificador favorito, entrenarlo con los datos y listo: ¡obtienes un 96.2% de precisión!
Su jefe está asombrado y decide usar su modelo sin más pruebas. Unas semanas más tarde, él entra en su oficina y subraya la inutilidad de su modelo. De hecho, el modelo que usted creó no encontró ningún producto defectuoso desde el momento en que se usó en la producción.
Después de algunas investigaciones, descubre que solo un 3.8% del producto fabricado por su empresa es defectuoso y su modelo siempre responde “no defectuoso”, lo que lleva a una precisión del 96.2%. El tipo de resultados “ingenuos” que obtuvo se debe al conjunto de datos desequilibrado con el que está trabajando. El objetivo de este artículo es revisar los diferentes métodos que se pueden usar para abordar problemas de clasificación con clases desequilibradas.

Descripción

Primero, daremos una visión general de las diferentes métricas de evaluación que pueden ayudar a detectar “conductas ingenuas”. Luego discutiremos un montón de métodos que consisten en volver a trabajar el conjunto de datos y mostraremos que estos métodos pueden ser engañosos. Finalmente, mostraremos que la reelaboración del problema es, en la mayoría de los casos, la mejor manera de proceder.

Algunas subsecciones indicadas por un símbolo (∞) contienen más detalles matemáticos y pueden omitirse sin afectar la comprensión general de este post . Observe también que en la mayoría de lo que sigue, consideraremos problemas de clasificación de dos clases, pero el razonamiento puede extenderse fácilmente a los casos de múltiples clases.

Detectar un “comportamiento ingenuo”

En esta primera sección, nos gustaría recordar diferentes formas de evaluar a un clasificador entrenado para asegurarse de detectar cualquier tipo de “comportamiento ingenuo”. Como vimos en el ejemplo de la introducción, la precisión, si bien es una métrica importante e inevitable, puede ser engañosa y, por lo tanto, debe usarse con cautela y junto con otras métricas. Veamos qué otras herramientas se pueden usar.

Matriz de confusión, precisión, recuperación y F1

Una buena y simple métrica que siempre debe usarse cuando se trata de un problema de clasificación es la matriz de confusión. Esta métrica proporciona una visión general interesante de lo bien que está haciendo un modelo. Por lo tanto, es un gran punto de partida para cualquier evaluación de modelo de clasificación. Resumimos la mayoría de las métricas que se pueden derivar de la matriz de confusión en el siguiente gráfico

La matriz de confusión y las métricas que se pueden derivar de ella.

Permítanos dar una breve descripción de estas métricas. La precisión del modelo es básicamente el número total de predicciones correctas dividido por el número total de predicciones. La precisión de una clase define qué tan confiable es el resultado cuando el modelo responde que un punto pertenece a esa clase. El retiro de una clase expresa qué tan bien el modelo puede detectar esa clase. La puntuación F1 de una clase viene dada por la media armónica de precisión y recuperación (2 × precisión × recuperación / (precisión + recuperación)), combina precisión y recuperación de una clase en una métrica.

Para una clase dada, las diferentes combinaciones de recuperación y precisión tienen los siguientes significados:

  • alta recuperación + alta precisión: la clase está perfectamente manejada por el modelo
  • baja recuperación + alta precisión: el modelo no puede detectar la clase bien pero es altamente confiable cuando lo hace
  • alta recuperación + baja precisión: la clase está bien detectada, pero el modelo también incluye puntos de otras clases
  • baja recuperación + baja precisión: la clase está mal manejada por el modelo

En nuestro ejemplo introductorio, tenemos la siguiente matriz de confusión para 10000 productos.

La matriz de confusión de nuestro ejemplo introductorio. Tenga en cuenta que la precisión “no defectuosa” no se puede calcular.

La precisión es del 96.2% como se dijo anteriormente. La precisión de la clase no defectuosa es del 96.2% y la precisión de la clase defectuosa no es computable. El retiro de la clase no defectuosa es 1.0, que es perfecto (todos los productos no defectuosos se han etiquetado como tales). Pero el retiro de la clase defectuosa es 0.0, que es el caso peor (no se detectaron productos defectuosos). Por lo tanto, podemos concluir que nuestro modelo no está bien para esta clase . La puntuación de F1 no es computable para los productos defectuosos y es 0.981 para los productos no defectuosos. En este ejemplo, observar la matriz de confusión podría haber llevado a replantearnos nuestro modelo o nuestra meta (como veremos en las siguientes secciones). Podría haber evitado el uso de un modelo inútil.

ROC y AUROC

Otra métrica interesante es la curva ROC (que representa la característica de operación del receptor), definida con respecto a una clase dada (que indicaremos C en la siguiente) .

Supongamos que para un punto x determinado, tenemos un modelo que genera la probabilidad de que este punto pertenezca a C: P (C | x). Basándonos en esta probabilidad, podemos definir una regla de decisión que consiste en decir que x pertenece a la clase C si y solo si P (C | x) ≥T, donde T es un umbral dado que define nuestra regla de decisión. Si T = 1, un punto se etiqueta como perteneciente a C solo si el modelo está 100% seguro de que sí. Si T = 0, todos los puntos se etiquetan como pertenecientes a C.

Cada valor del umbral T genera un punto (falso positivo, verdadero positivo) y, entonces, la curva ROC es la curva descrita por el conjunto de puntos generados cuando T varía de 1 a 0. Esta curva comienza en el punto (0,0), termina en el punto (1,1) y aumenta. Un buen modelo tendrá una curva que aumenta rápidamente de 0 a 1 (lo que significa que solo se debe sacrificar un poco de precisión para obtener un recordatorio alto).

Ilustración de posibles curvas ROC según la efectividad del modelo. A la izquierda, el modelo tiene que sacrificar mucha precisión para obtener una alta recuperación. A la derecha, el modelo es altamente efectivo: puede alcanzar una alta recuperación al mismo tiempo que mantiene una alta precisión.

En función de la curva ROC, podemos construir otra métrica, más fácil de usar, para evaluar el modelo: el AUROC que es El área bajo la curva ROC. AUROC actúa un poco como un valor escalar que resume toda la curva ROC. Como puede verse, los AUROC tienden hacia 1.0 para el mejor caso y hacia 0.5 para el peor.
Una vez más, una buena puntuación de AUROC significa que el modelo que estamos evaluando no sacrifica mucha precisión para obtener una buen recuerdo de la clase observada (a menudo la clase minoritaria).

¿Cuál es realmente el problema?

Antes de tratar de abordar el problema, tratemos de entenderlo mejor. Para esto, vamos a considerar un ejemplo muy simple que nos permitirá revisar rápidamente algunos aspectos básicos de una clasificación de dos clases y comprender mejor el problema fundamental del conjunto de datos desequilibrado. Este ejemplo también se usará en las siguientes secciones.

Un ejemplo desequilibrado

Supongamos que tenemos dos clases: C0 y C1. Los puntos de la clase C0 siguen una distribución Gaussiana unidimensional de la media 0 y la varianza 4. Los puntos de la clase C1 siguen una distribución Gaussiana unidimensional de la media 2 y la varianza 1. Supongamos también que en nuestro problema, la clase C0 representa el 90% de la conjunto de datos (y, por lo tanto, la clase C1 representa el 10% restante). En la siguiente imagen, hemos representado un conjunto de datos representativos que contiene 50 puntos junto con las distribuciones teóricas de ambas clases en las proporciones correctas

Ilustración de nuestro ejemplo desequilibrado. Las líneas de puntos representan las densidades de probabilidad de cada clase independientemente. Las líneas continuas también tienen en cuenta las proporciones.

En este ejemplo, podemos ver que la curva de la clase C0 siempre está por encima de la curva de la clase C1 y, por lo tanto, para cualquier punto dado, la probabilidad de que este punto se haya extraído la clase C0 es siempre mayor que la probabilidad que se extrajo de la clase C1. Matemáticamente, usando la regla básica de Bayes, podemos escribir

donde podemos ver claramente el efecto de los antecedentes y cómo puede llevar a una situación en la que una clase siempre es más probable que la otra.

Todo esto implica que incluso desde un punto de vista teórico perfecto, sabemos que si tuviéramos que entrenar a un clasificador en estos datos, la precisión del clasificador sería máxima cuando siempre se responde C0 . Entonces, si el objetivo es entrenar a un clasificador para obtener la mejor precisión posible, entonces no debería verse como un problema sino como un hecho: con estas características, lo mejor que podemos hacer (en términos de precisión) es responder siempre C0. Tenemos que aceptarlo.

Sobre la separabilidad

En el ejemplo dado, podemos observar que las dos clases no son bien separables (no están muy separadas entre sí). Sin embargo, podemos notar que enfrentar un conjunto de datos desequilibrado no significa necesariamente que las dos clases no sean bien separables y, por lo tanto, el clasificador no puede hacer un trabajo bastante bueno en la clase minoritaria. Por ejemplo, considere que todavía tenemos dos clases C0 (90%) y C1 (10%). Los datos en C0 siguen una distribución Gaussiana unidimensional de media 0 y varianza 4, mientras que los datos en C1 siguen una distribución Gaussiana unidimensional de media 10 y varianza 1. Si representamos los datos como antes, entonces tenemos

En nuestro ejemplo gaussiano Si los promedios son lo suficientemente diferentes con respecto a las varianzas, incluso las clases desequilibradas pueden ser bien separables.

Aquí vemos que, contrariamente al caso anterior, la curva C0 no siempre está por encima de la curva C1 y, por lo tanto, hay puntos que es más probable que se extraigan de la clase C1 que de la clase C0. En este caso, las dos clases están lo suficientemente separadas para compensar el desequilibrio: un clasificador no necesariamente responderá C0 todo el tiempo.

Probabilidad de error mínima teórica (∞)

Finalmente, debemos tener en cuenta que un clasificador tiene Una probabilidad de error mínima teórica. Para un clasificador de este tipo (una característica, dos clases), podemos mencionar que, gráficamente, la probabilidad de error mínima teórica está dada por el área debajo del mínimo de las dos curvas.

Ilustración del error mínimo teórico para diferentes grado de separabilidad de dos clases.

Podemos recuperar esta intuición matemáticamente. De hecho, desde un punto de vista teórico, el mejor clasificador posible elegirá para cada punto x la más probable de las dos clases. Naturalmente, implica que para un punto x dado, la mejor probabilidad de error teórico es dada por la menos probable de estas dos clases

Entonces podemos expresar la probabilidad de error general

¿Cuál es el área bajo el mínimo de las dos curvas? representado arriba.

Volver a trabajar el conjunto de datos no siempre es una solución

Para comenzar, la primera reacción posible al enfrentar un conjunto de datos desequilibrado es considerar que los datos no son representativos de la realidad: si es así, asumimos que los datos reales están casi equilibrados, pero hay un sesgo de proporciones (debido al método de recolección, por ejemplo) en los datos recopilados. En este caso, es casi obligatorio intentar recopilar datos más representativos.
Veamos, ahora, qué se puede hacer cuando el conjunto de datos está desequilibrado porque la realidad es así. En las siguientes dos subsecciones presentamos algunos métodos que a menudo se mencionan para abordar las clases desequilibradas y que tratan con el conjunto de datos en sí. En particular, analizamos los riesgos relacionados con el submuestreo, el sobremuestreo y la generación de datos sintéticos, así como los beneficios de obtener más funciones.

El submuestreo, el sobremuestreo y la generación de datos sintéticos

Estos métodos a menudo se presentan como grandes formas de equilibrar el conjunto de datos antes de ajustar un clasificador en él. En pocas palabras, estos métodos actúan en el conjunto de datos de la siguiente manera:

  • el submuestreo consiste en muestrear de la clase mayoritaria para mantener solo una parte de estos puntos
  • el sobremuestreo consiste en replicar algunos puntos de la minoría en orden para aumentar su cardinalidad
  • la generación de datos sintéticos consiste en crear nuevos puntos sintéticos de la clase minoritaria (ver método SMOTE, por ejemplo) para aumentar su cardinalidad

Todos estos enfoques apuntan a rebalancear (parcial o totalmente) el conjunto de datos. ¿Pero deberíamos reequilibrar el conjunto de datos para tener la mayor cantidad de datos de ambas clases? ¿O debería ser la clase mayoritaria la más representada? Si es así, ¿en qué proporciones deberíamos reequilibrar?

Ilustración del efecto que tienen los diferentes grados de submuestreo de clase mayoritaria en las decisiones del modelo.

Cuando se usa un método de remuestreo (por ejemplo, para obtener tantos datos de C0 que de C1), mostramos las proporciones erróneas de las dos clases al clasificador durante el entrenamiento . El clasificador aprendido de esta manera tendrá una menor precisión en los datos de prueba reales futuros que el clasificador entrenado en el conjunto de datos sin cambios. De hecho, es importante conocer las verdaderas proporciones de las clases para clasificar un nuevo punto y esa información se ha perdido al remuestrear el conjunto de datos.

Por lo tanto, si estos métodos no tienen que rechazarse por completo, deben usarse con precaución: puede conduzca a un enfoque relevante si se eligen nuevas proporciones con un propósito (veremos eso en la siguiente sección), pero también puede ser una tontería simplemente reequilibrar las clases sin más pensamientos sobre el problema. Para concluir esta subsección, digamos que modificar el conjunto de datos con métodos parecidos al remuestreo es cambiar la realidad, por lo que debe ser cuidadoso y tener en cuenta lo que significa para los resultados obtenidos de nuestro clasificador. 19659007] Obteniendo características adicionales

En la subsección anterior analizamos el hecho de que remuestrear el conjunto de datos de entrenamiento (modificar las proporciones de las clases) puede ser o no una buena idea dependiendo del propósito real del clasificador. Vimos en particular que si las dos clases están desequilibradas, no se pueden separar bien y nos dirigimos a un clasificador con la mejor precisión posible, entonces obtener un clasificador que responda siempre a la misma clase no es necesariamente un problema sino solo un hecho: no hay nada es mejor hacerlo con estas variables.

Sin embargo, sigue siendo posible obtener mejores resultados en términos de precisión al enriquecer el conjunto de datos con una característica adicional (o más). Regresemos a nuestro primer ejemplo donde las clases no son bien separables: tal vez podamos encontrar una nueva característica adicional que pueda ayudar a distinguir entre las dos clases y, por lo tanto, mejorar la precisión del clasificador.

Buscar características adicionales puede ayudar a separar dos clases que no fueron inicialmente separables.

En comparación con los enfoques mencionados en la subsección anterior que sugieren cambiar la realidad de los datos, este enfoque que consiste en enriquecer los datos con más información de la realidad es una idea mucho mejor cuando es posible .

Resolver el problema es mejor

Hasta ahora, la conclusión es bastante decepcionante: si el conjunto de datos es representativo de los datos reales, si no podemos obtener ninguna característica adicional y si seleccionamos un clasificador de la mejor manera posible precisión, entonces un “comportamiento ingenuo” (respondiendo siempre a la misma clase) no es necesariamente un problema y solo debe aceptarse como un hecho (si el comportamiento ingenuo no se debe a la limitación de ca) pacidad del clasificador elegido, por supuesto).

Entonces, ¿qué pasa si todavía estamos descontentos con estos resultados? En este caso, significa que, de una manera u otra, nuestro problema no está bien establecido (de lo contrario, deberíamos aceptar los resultados como son) y que deberíamos volver a trabajar para obtener resultados más satisfactorios. Veamos un ejemplo.

Clasificación basada en costos

La sensación de que los resultados obtenidos no son buenos puede provenir del hecho de que la función objetivo no estaba bien definida. Hasta ahora, hemos asumido que nos dirigimos a un clasificador con alta precisión, asumiendo al mismo tiempo que ambos tipos de errores (“falso positivo” y “falso negativo”) tienen el mismo costo. En nuestro ejemplo, significa que asumimos que predecir C0 cuando la etiqueta verdadera es C1 es tan malo como predecir C1 cuando la etiqueta verdadera es C0. Los errores son simétricos.

Consideremos nuestro ejemplo introductorio con productos defectuosos (C1) y no defectuosos (C0). En este caso, podemos imaginar que no detectar un producto defectuoso costará más a la empresa (costos de servicio al cliente, posibles costos jurídicos si hay defectos peligrosos, …) que etiquetar erróneamente un producto no defectuoso como defectuoso (pérdida de costo de producción). Ahora, predecir C0 cuando la etiqueta verdadera es C1 es mucho peor que predecir C1 cuando la etiqueta verdadera es C0. Los errores ya no son simétricos.

Considere más particularmente que tenemos los siguientes costos:

  • predecir C0 cuando la etiqueta verdadera es C1 cuesta P01
  • predecir C1 cuando la verdadera etiqueta es C0 cuesta P10 (con 0 <P10 < <P01)

Luego, podemos redefinir nuestra función objetivo: ya no buscamos la mejor precisión, sino que buscamos el menor costo de predicción.

Costo mínimo teórico ()

Desde un punto teórico Desde un punto de vista, no queremos minimizar la probabilidad de error definida anteriormente, pero el costo de predicción esperado dado por

donde C (.) define la función clasificadora. Entonces, si queremos minimizar el costo de predicción esperado, el mejor clasificador teórico C (.) Minimiza

o, de manera equivalente, dividiendo por la densidad de x, C (.) Minimiza

Por lo tanto, con esta función objetivo, El mejor clasificador desde un punto de vista teórico será tal que:

Observe que recuperamos la expresión del clasificador “clásico” (enfoque en la precisión) cuando los costos son iguales.

Umbral de probabilidad

Un primer posible La forma de tener en cuenta el costo en nuestro clasificador es hacerlo después de la capacitación. La idea es, primero, entrenar a un clasificador de la manera básica de generar las siguientes probabilidades

sin asumir ningún costo. Entonces, la clase pronosticada será C0 si

y C1 de lo contrario.

Aquí, no importa qué clasificador estemos usando, siempre y cuando arroje la probabilidad de cada clase para un punto dado. En nuestro ejemplo principal, podemos colocar un clasificador de Bayes en nuestros datos y luego podemos volver a ponderar las probabilidades obtenidas para ajustar el clasificador con los errores de costos como se describe.

Ilustración del enfoque del umbral de probabilidad: las probabilidades resultantes se vuelven a ponderar de manera tal que los costos son tomados en cuenta en la regla de decisión final.

Clases reponderadas

La idea de la clase reponderada es tomar en cuenta la asimetría de los errores de costos directamente durante el entrenamiento de clasificadores. Al hacerlo, las probabilidades generadas para cada clase ya incorporarán la información de error de costo y luego podrían usarse para definir una regla de clasificación con un umbral simple de 0.5.

Para algunos modelos (por ejemplo, clasificadores de red neuronal), se toma el costo La cuenta durante el entrenamiento puede consistir en ajustar la función objetivo. Todavía queremos que nuestro clasificador produzca

pero esta vez está entrenado para minimizar la siguiente función de costo

Para algunos otros modelos (por ejemplo, el clasificador de Bayes), se pueden utilizar métodos de remuestreo para sesgar las proporciones de las clases de manera tal que para ingresar la información de error de costo dentro de las proporciones de las clases. Si consideramos los costos P01 y P10 (de modo que P01> P10), podemos:

  • sobreexplotar la clase minoritaria por un factor P01 / P10 (la cardinalidad de la clase minoritaria se debe multiplicar por P01 / P10)
  • muestrear la clase mayoritaria por un factor P10 / P01 (la cardinalidad de la clase mayoritaria se debe multiplicar por P10 / P01)
Ilustración del enfoque de reponderación de la clase: la clase mayoritaria se muestra debajo de una proporción que se elige cuidadosamente para introducir el costo información directamente dentro de las proporciones de la clase.

Takeaways

Las principales conclusiones de este artículo son:

  • siempre que se use un algoritmo de aprendizaje automático, las métricas de evaluación para el modelo se deben elegir con cautela: debemos usar la métrica que se proporciona la mejor descripción general de qué tan bien se está desempeñando nuestro modelo con respecto a nuestros objetivos
  • al tratar con un conjunto de datos desequilibrado, si las clases no son bien separables con las variables dadas y si nuestro objetivo es obtener la mayor precisión posible, el mejor clasificador puede ser un método “ingenuo” que siempre responde a los métodos de remuestreo de la clase mayoritaria
  • pero deben pensarse con cuidado: no deben utilizarse como soluciones independientes sino que deben combinarse con una revisión del Un problema para servir a un objetivo específico
  • volver a trabajar el problema en sí mismo es a menudo la mejor manera de abordar un problema de clases desequilibradas: el clasificador y la regla de decisión deben establecerse con respecto a un objetivo bien elegido que puede ser, por ejemplo, minimizar un costo

Debemos notar que no hemos discutido en todas las técnicas como el “muestreo estratificado” que puede ser útil cuando se entrena por lotes un clasificador.

Por último, digamos que la palabra clave principal de este artículo es “objetivo”. Saber exactamente lo que quiere obtener ayudará a superar los problemas de conjuntos de datos desequilibrados y garantizará tener los mejores resultados posibles. Definir el objetivo a la perfección siempre debe ser lo primero que debe hacer y es el punto de partida de cualquier elección que se debe hacer para crear un modelo de aprendizaje automático.

¡Gracias por leer!

Joseph Rocca - Hacia la ciencia de datos


El manejo de conjuntos de datos desequilibrados en aprendizaje automático se publicó originalmente en Hacia la ciencia de datos en Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.