Ú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 \% .
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 ), 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.
fuente
poor choice of loss function
en mi lista. Entonces, ¿crees que esto es cierto incluso para las reglas de puntuación adecuadas como funciones de pérdida?Respuestas:
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:
Los autores explican:
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.
fuente
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
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.F G b F F b G
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.b G
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 .F G G∗
Ahora, digamos que tenemos una función de pérdida que es:
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.Ic 1 c 0 yi i g(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á:99∗0.9=89.1 99∗0.1=9.9 1∗0.9=0.9 1∗0.1=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á:G 1/100
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 .G G∗
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.
fuente
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.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
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.
fuente