¿Cuál es la causa raíz del problema de desequilibrio de clase?

30

Últimamente he estado pensando mucho en el "problema de desequilibrio de clase" en el aprendizaje automático / estadístico, y me estoy adentrando cada vez más en un sentimiento de que simplemente no entiendo lo que está sucediendo.

Primero déjame definir (o intentar) definir mis términos:

El problema del desequilibrio de clase en el aprendizaje automático / estadístico es la observación de que algunos algoritmos de clasificación binaria (*) no funcionan bien cuando la proporción de 0 clases a 1 clases es muy sesgada.

Entonces, en lo anterior, por ejemplo, si hubiera cien clases por cada clase , diría que el desequilibrio de clase es de 1 a 100 , o 1 \% .0111001%

La mayoría de las declaraciones sobre el problema que he visto carecen de lo que consideraría una calificación suficiente (qué modelos luchan, qué tan desequilibrado es un problema), y esta es una fuente de mi confusión.

Una encuesta de los textos estándar en aprendizaje automático / estadístico resulta poco:

  • Los elementos de inclinación estadística e introducción al aprendizaje estadístico no contienen "desequilibrio de clase" en el índice.
  • Machine Learning para Predictive Data Analytics tampoco contiene "desequilibrio de clase" en el índice.

  • De Murphy Machine Learning: Una Perspectiva probabilístico hace contener "desequilibrio de clases * en el índice La referencia es a una sección sobre SVM, donde me encontré con el siguiente comentario tentadora.:

    Vale la pena recordar que todas estas dificultades, y la gran cantidad de heurísticas que se han propuesto para solucionarlas, surgen fundamentalmente porque los SVM no modelan la incertidumbre utilizando probabilidades, por lo que sus puntajes de salida no son comparables entre las clases.

Este comentario coincide con mi intuición y experiencia: en mi trabajo anterior, ajustamos rutinariamente regresiones logísticas y modelos de árbol impulsados ​​por gradiente (para minimizar la probabilidad de registro binomial) a datos no balanceados (en el orden de un desequilibrio de clase 1% ), con No hay problemas obvios en el rendimiento.

He leído (en alguna parte) que los modelos basados ​​en árboles de clasificación (los propios árboles y el bosque aleatorio) también sufren el problema del desequilibrio de clase. Esto enturbia un poco las aguas, los árboles, en cierto sentido, devuelven probabilidades: el registro de votación para la clase objetivo en cada nodo terminal del árbol.

Entonces, para terminar, lo que realmente busco es una comprensión conceptual de las fuerzas que conducen al problema del desequilibrio de clase (si existe).

  • ¿Es algo que nos hacemos a nosotros mismos con algoritmos mal elegidos y umbrales de clasificación por defecto perezosos?
  • ¿Se desvanece si siempre ajustamos los modelos de probabilidad que optimizan los criterios de puntuación adecuados? Dicho de otra manera, ¿es la causa simplemente una mala elección de la función de pérdida, es decir, evaluar el poder predictivo de un modelo basado en reglas de clasificación estrictas y precisión general?
  • Si es así, ¿son inútiles los modelos que no optimizan las reglas de puntuación adecuadas (o al menos menos útiles)?

(*) Por clasificación me refiero a cualquier modelo estadístico ajustado a los datos de respuesta binaria. Estoy no asumiendo que mi objetivo es una tarea difícil de una clase u otra, aunque puede ser.

Matthew Drury
fuente
1
Puede surgir un problema obvio cuando el alumno penaliza la pérdida de cada clase de la misma manera. Devolver todo lo que la misma clase podría, en teoría, minimizar la pérdida total.
Firebug
1
Olvidé agregar poor choice of loss functionen mi lista. Entonces, ¿crees que esto es cierto incluso para las reglas de puntuación adecuadas como funciones de pérdida?
Matthew Drury el
Creo que sí. Supongo que podemos formular un problema donde minimizar la pérdida de la clase más grande también minimiza la pérdida de todo el problema, mientras que, en general, la clase minoritaria es de mayor interés.
Firebug
3
Estoy de acuerdo con los sentimientos de la pregunta. Tengo una hipótesis de trabajo (aunque feliz de rechazarla) de que no hay un problema de desequilibrio de clase per se, solo que entrenamos con funciones de pérdida que no representan lo que usaremos para medir el éxito en los datos de prueba. Y es difícil llamar a esto un error, ya que es una práctica casi estándar: por ejemplo, no es estándar optimizar directamente el puntaje AUC o F1, pero esas son métricas de éxito comunes para problemas con el desequilibrio de clase. Entonces, ¿tal vez ese es el problema del desequilibrio de clase?
DavidR
99
La causa del problema de desequilibrio de clase es la convención de usar la precisión como una función de pérdida. El desequilibrio de clase es una característica problemática (diagnóstico de enfermedades raras, por ejemplo), que puede abordarse utilizando varias estrategias. Usar una ponderación de clase inversa proporcional al tamaño de la clase al calcular la función de pérdida es una de ellas. Aparte de eso, el AUC como una función de pérdida es una buena idea, ya que distingue específicamente entre verdadero positivo y falso positivo. Por lo tanto, el problema central del problema de desequilibrio de clase es la función de pérdida. Gran pregunta, que no me atrevo a responder.
Nikolas Rieble

Respuestas:

4

Una entrada de la Enciclopedia del aprendizaje automático ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ) explica útilmente que lo que se llama "el problema del desequilibrio de clase" se entiende mejor como tres problemas separados:

 (1) assuming that an accuracy metric is appropriate when it is not

 (2) assuming that the test distribution matches the training 
     distribution when it does not

 (3) assuming that you have enough minority class data when you do not

Los autores explican:

Los conjuntos de datos desequilibrados de clase se producen en muchas aplicaciones del mundo real donde las distribuciones de datos de clase están altamente desequilibradas. Nuevamente, sin pérdida de generalidad, asumimos que la clase minoritaria o rara es la clase positiva, y la clase mayoritaria es la clase negativa. A menudo, la clase minoritaria es muy pequeña, como el 1% del conjunto de datos. Si aplicamos los clasificadores más tradicionales (insensibles al costo) en el conjunto de datos, es probable que predigan todo como negativo (la clase mayoritaria). Esto a menudo se consideraba un problema para aprender de conjuntos de datos altamente desequilibrados.

Sin embargo, como se señala en (Provost, 2000), a menudo se hacen dos supuestos fundamentales en los clasificadores tradicionales sin costos. El primero es que el objetivo de los clasificadores es maximizar la precisión (o minimizar la tasa de error); el segundo es que la distribución de clase de los conjuntos de datos de entrenamiento y prueba es la misma. Bajo estos dos supuestos, predecir todo como negativo para un conjunto de datos altamente desequilibrado es a menudo lo correcto. (Drummond y Holte, 2005) muestran que generalmente es muy difícil superar a este simple clasificador en esta situación.

Por lo tanto, el problema de la clase desequilibrada se vuelve significativo solo si uno o los dos supuestos anteriores no son ciertos; es decir, si el costo de los diferentes tipos de error (falso positivo y falso negativo en la clasificación binaria) no es el mismo, o si la distribución de la clase en los datos de la prueba es diferente de la de los datos de entrenamiento. El primer caso puede tratarse de manera efectiva utilizando métodos de meta-aprendizaje sensibles a los costos.

En el caso de que el costo de clasificación errónea no sea igual, generalmente es más costoso clasificar erróneamente un ejemplo minoritario (positivo) en la clase mayoritaria (negativa) que un ejemplo mayoritario en la clase minoritaria (de lo contrario, es más plausible predecir todo como negativo). Es decir, FN> FP. Por lo tanto, dados los valores de FN y FP, una variedad de métodos de metaaprendizaje sensibles a los costos pueden usarse y han sido utilizados para resolver el problema del desequilibrio de clases (Ling y Li, 1998; Japkowicz y Stephen, 2002). Si los valores de FN y FP no se desconocen explícitamente, se puede asignar FN y FP para que sean proporcionales a p (-): p (+) (Japkowicz y Stephen, 2002).

En caso de que las distribuciones de clase de los conjuntos de datos de entrenamiento y prueba sean diferentes (por ejemplo, si los datos de entrenamiento están altamente desequilibrados pero los datos de prueba están más equilibrados), un enfoque obvio es muestrear los datos de entrenamiento de modo que su distribución de clase sea la misma que los datos de la prueba (sobremuestreando la clase minoritaria y / o submuestreando la clase mayoritaria) (Provost, 2000).

Tenga en cuenta que a veces el número de ejemplos de la clase minoritaria es demasiado pequeño para que los clasificadores aprendan adecuadamente. Este es el problema de los datos de entrenamiento insuficientes (pequeños), diferentes de los de los conjuntos de datos desequilibrados.

Por lo tanto, como implica Murphy, no hay nada intrínsecamente problemático en el uso de clases desequilibradas, siempre que evite estos tres errores. Los modelos que producen probabilidades posteriores hacen que sea más fácil evitar el error (1) que los modelos discriminantes como SVM porque le permiten separar la inferencia de la toma de decisiones. (Ver la sección 1.5.4 Inferencia y Decisión del Obispo para una discusión más detallada sobre ese último punto).

Espero que ayude.

Bill Vander Lugt
fuente
1
Iba a publicar algo similar. Un pequeño comentario: creo que es una locura subestimar a la clase más grande. Esto está desechando sus datos, y seguramente no proporcionará un mejor resultado. Me gusta la noción de dividir la inferencia y la clasificación. la parte de inferencia no se ve afectada por el desequilibrio, pero la toma de decisiones (clasificación) puede verse muy afectada.
probabilidad
@probabilityislogic (y Bill Vander Lugt): Hay otro posible problema que no se discute en ese texto: si un Ansatz discriminatorio es adecuado. La elección inadecuada de un modelo discriminatorio donde una clase sería más apropiada también puede conducir a "problemas de desequilibrio de clase".
cbeleites apoya a Monica el
8

Cualquier cosa que implique optimización para minimizar una función de pérdida proporcionará, si es suficientemente convexa, una solución que sea un mínimo global de esa función de pérdida. Digo 'suficientemente convexo' ya que las redes profundas no son convexas en general, pero dan mínimos razonables en la práctica, con elecciones cuidadosas de la tasa de aprendizaje, etc.

Por lo tanto, el comportamiento de tales modelos se define por lo que sea que le demos a la función de pérdida.

Imagine que tenemos un modelo, , que asigna un escalar real arbitrario a cada ejemplo, de modo que más valores negativos tienden a indicar la clase A, y más números positivos tienden a indicar la clase B.F

yf=f(x)

Usamos para crear el modelo , que asigna un umbral, , a la salida de , implícita o explícitamente, de modo que cuando genera un valor mayor que , el modelo predice la clase B, de lo contrario, predice la clase A.FGbFFbG

yg={Bif f(x)>bAotherwise

Al variar el umbral que aprende el modelo , podemos variar la proporción de ejemplos que se clasifican como clase A o clase B. Podemos movernos a lo largo de una curva de precisión / recuperación, para cada clase. Un umbral más alto da menor recuerdo para la clase B, pero probablemente una mayor precisión.bG

Imagine que el modelo es tal que si elegimos un umbral que proporcione la misma precisión y recuperación a cualquiera de las clases, entonces la precisión del modelo G es del 90%, para cualquier clase (por simetría). Entonces, dado un ejemplo de entrenamiento, obtendría el ejemplo correcto el 90% del tiempo, sin importar cuál sea la verdad básica, A o B. ¿Es probable que este sea nuestro objetivo? Llamemos a esto nuestro 'umbral ideal', o 'modelo ideal G', o quizás .FGG

Ahora, digamos que tenemos una función de pérdida que es:

L=1Nn=1NIyig(xi)

donde es una variable indicadora que es cuando es verdadero, de lo contrario , es la clase verdadera por ejemplo , y es la clase predicha por ejemplo , por el modelo G.Ic1c0yiig(xi)i

Imagine que tenemos un conjunto de datos que tiene 100 veces más ejemplos de entrenamiento de clase A que de clase B. Y luego alimentamos los ejemplos. Por cada 99 ejemplos de A, esperamos obtener ejemplos correctos, y ejemplos incorrectos. Del mismo modo, por cada 1 ejemplo de B, esperamos obtener ejemplos correctos, y ejemplos incorrectos. La pérdida esperada será:990.9=89.1990.1=9.910.9=0.910.1=0.1

L=(9.9+0.1)/100=0.1

Ahora, veamos un modelo donde el umbral se establece de tal manera que la clase A se elija sistemáticamente. Ahora, por cada 99 ejemplos de A, todos los 99 serán correctos. Cero pérdida. Pero cada ejemplo de B no se elegirá sistemáticamente, dando una pérdida de , por lo que la pérdida esperada sobre el conjunto de entrenamiento será:G1/100

L=0.01

Diez veces más bajo que la pérdida cuando se establece el umbral, como asignar igual recuerdo y precisión a cada clase.

Por lo tanto, la función de pérdida conducirá al modelo a elegir un umbral que elija A con mayor probabilidad que la clase B, aumentando el retiro para la clase A, pero reduciendo eso para la clase B. El modelo resultante ya no coincide con lo que podríamos esperar, no Ya coincide con nuestro modelo ideal .GG

Para corregir el modelo, necesitaríamos, por ejemplo, modificar la función de pérdida de modo que obtener B incorrecto cuesta mucho más que A equivocado. Luego, esto modificará la función de pérdida para tener un mínimo más cercano al modelo ideal anterior , que asignó la misma precisión / recuperación a cada clase.G

Alternativamente, podemos modificar el conjunto de datos clonando cada ejemplo B 99 veces, lo que también hará que la función de pérdida ya no tenga un mínimo en una posición diferente de nuestro umbral ideal anterior.

Hugh Perkins
fuente
44
¿Puede intentar que su respuesta sea un poco más particular a las preguntas que se hacen? Aunque claramente reflexivo, se lee principalmente como comentario en lugar de una respuesta. Por ejemplo, solo para fines de comentarios, se podría argumentar que el uso de una regla de puntuación inadecuada como la función de pérdida definida es fundamentalmente erróneo y, por lo tanto, el análisis posterior no es válido.
usεr11852 dice Reinstate Monic
No creo que se pueda decir que la función de pérdida es "correcta" o "incorrecta" sin conocer el propósito real del modelo. Si el objetivo es que el modelo de aprendizaje automático 'se vea genial / útil', entonces el modelo es mejor, pero si es maximizar, por ejemplo, la puntuación en alguna prueba / examen, donde 99 de las preguntas tienen la respuesta A, y una tiene la respuesta B, y solo tenemos un 90% de posibilidades de predecir la respuesta correctamente, es mejor que solo elijamos A para todo, y eso es lo que hace la función de pérdida anterior. G
Hugh Perkins
2
Generalmente estoy de acuerdo; No estoy completamente convencido de la necesidad de una regla de puntuación adecuada, pero por otro lado, el "propósito real" de cualquier modelo de clasificación es la predicción útil de la pertenencia a la clase, es decir. Necesita una función de utilidad informada. Yo diría que en general para los problemas desequilibradas asignación de costo / ganancia a FP, TP, etc., es probablemente la mejor manera de tener una función de utilidad razonable; en ausencia de conocimiento de dominio relevante, esto puede ser complicado. Casi siempre uso como mi primera opción la de Cohen , una métrica de "acuerdo" algo conservadora, por esa razón. k
usεr11852 dice Reinstate Monic
Busqué en Google 'función de utilidad', pero no surgió nada. ¿Tienes un enlace / referencia? Creo que, por el contexto, ¿qué se llama una 'función de utilidad' es esencialmente el modelo anterior? El modelo es invariable en los distintos escenarios. Quizás una pregunta interesante es, si uno entrena directamente al modelo , utilizando datos no balanceados, ¿el modelo subyacente, posiblemente implícito, será similar / idéntico a un modelo entrenado, a través del modelo de entrenamiento , en datos balanceados? F G F F GFFGFFG
Hugh Perkins
3
Esto supone implícitamente (1) que el KPI que intentamos maximizar es la precisión, y (2) que la precisión es un KPI apropiado para la evaluación del modelo de clasificación. No lo es
S. Kolassa - Restablece a Monica el
0

Tenga en cuenta que los clasificadores de una clase no tienen un problema de desequilibrio, ya que miran cada clase independientemente de todas las demás clases y pueden hacer frente a las "no clases" simplemente no modelando. (Por supuesto, pueden tener un problema con un tamaño de muestra demasiado pequeño).

Muchos problemas que serían modelados más apropiadamente por clasificadores de una clase conducen a modelos mal definidos cuando se utilizan enfoques de discriminación, de los cuales los "problemas de desequilibrio de clase" son un síntoma.

Como ejemplo, considere algunos productos que pueden ser buenos para ser vendidos o no. Tal situación generalmente se caracteriza por

class         | "good"                        | "not good"
--------------+-------------------------------+------------------------------------------
sample size   | large                         | small
              |                               |
feature space | single, well-delimited region | many possibilities of *something* wrong 
              |                               | (possibly well-defined sub-groups of
              |                               |    particular fault reasons/mechanisms) 
              |                               | => not a well defined region, 
              |                               | spread over large parts of feature space
              |                               |
future cases  | can be expected to end up     | may show up *anywhere* 
              | inside modeled region         | (except in good region)

Por lo tanto, la clase "buena" está bien definida, mientras que la clase "no buena" está mal definida. Si tal situación es modelada por un clasificador discriminativo, tenemos un "problema de desequilibrio" doble: no solo tiene el tamaño de muestra pequeño de la clase "no buena", sino que también tiene una densidad de muestra más baja (menos muestras distribuidas en un gran parte del espacio de características).

Este tipo de "problema de desequilibrio de clase" desaparecerá cuando la tarea se modele como el reconocimiento de una clase de la clase "buena" bien definida.

cbeleites apoya a Monica
fuente