Clasificación binaria con clases fuertemente desequilibradas.

52

Tengo un conjunto de datos en forma de (características, salida binaria 0 o 1), pero 1 ocurre muy raramente, por lo que al predecir siempre 0, obtengo una precisión entre 70% y 90% (dependiendo de los datos particulares que mire) ) Los métodos de ML me dan la misma precisión, y creo que debería haber algunos métodos estándar para aplicar en esta situación, que mejorarían la precisión sobre la regla de predicción obvia.

Gato perezoso
fuente
3
Este artículo me pareció muy útil sobre el tema: svds.com/learning-imbalanced-classes
J. O'Brien Antognini
@ J.O'BrienAntognini ¡Es un artículo muy bonito!
Jinhua Wang

Respuestas:

30

Tanto hxd1011 como Frank tienen razón (+1). Esencialmente, el remuestreo y / o el aprendizaje sensible al costo son las dos formas principales de solucionar el problema de los datos desequilibrados; tercero es usar métodos de kernel que a veces podrían verse menos afectados por el desequilibrio de clases. Permítanme enfatizar que no hay una solución de bala de plata. Por definición, tiene una clase que está representada inadecuadamente en sus muestras.

Habiendo dicho lo anterior, creo que los algoritmos SMOTE y ROSE les resultarán muy útiles. SMOTE utiliza efectivamente una vecinos -nearest enfoque para excluir a los miembros de la clase de la mayoría, mientras que de forma similar la creación de ejemplos de síntesis de una clase minoritaria. ROSE intenta crear estimaciones de las distribuciones subyacentes de las dos clases utilizando un enfoque de arranque suavizado y muestrearlas para obtener ejemplos sintéticos. Ambos están disponibles en R, SMOTE en el paquete DMwR y ROSE en el paquete con el mismo nombre . Tanto SMOTE como ROSE dan como resultado un conjunto de datos de entrenamiento que es más pequeño que el original.k

Probablemente diría que una métrica mejor (o menos mala) para el caso de datos desequilibrados es usar el área de la característica operativa y / o receptor de Cohen kdebajo de la curva . El kappa de Cohen controla directamente la precisión esperada, AUC ya que es una función de sensibilidad y especificidad, la curva es insensible a las disparidades en las proporciones de clase. Nuevamente, tenga en cuenta que estas son solo métricas que deben usarse con un gran grano de sal. Idealmente, debe adaptarlos a su problema específico teniendo en cuenta las ganancias y los costos que las clasificaciones correctas e incorrectas transmiten en su caso. He encontrado que mirando curvas de elevaciónen realidad es bastante informativo para este asunto. Independientemente de su métrica, debe intentar utilizar una prueba separada para evaluar el rendimiento de su algoritmo; exactamente debido al sobreajuste desequilibrado de la clase es aún más probable, por lo que las pruebas fuera de la muestra son cruciales.

Probablemente el artículo reciente más popular sobre el tema es Aprender de datos desequilibrados de He y Garcia. Da una muy buena visión general de los puntos planteados por mí y en otras respuestas. Además, creo que el recorrido sobre Submuestreo para desequilibrios de clase , presentado por Max Kuhn como parte del paquete caret , es un excelente recurso para obtener un ejemplo de estructura de cómo puede medirse el submuestreo excesivo o excesivo, así como la creación de datos sintéticos unos contra otros.

usεr11852 dice Reinstate Monic
fuente
Una tercera métrica algo popular (y de nuevo no demasiado apropiada) es el Área bajo la curva de la curva de Precisión-Llamada. Davis y James, el artículo de 2006 es considerado un clásico en la materia; CV tiene una rosca buena también . Hace poco vi un artículo con el título algo titubeante " El gráfico de recuperación de precisión es más informativo que el gráfico ROC al evaluar clasificadores binarios en conjuntos de datos desequilibrados ", por lo que es posible que desee comprobar eso también.
usεr11852 dice Reinstate Monic
1
Para la implementación en Python de una variedad de técnicas de muestreo de datos, recomiendo el paquete desequilibrio-aprendizaje: github.com/scikit-learn-contrib/imbalanced-learn
Vadim Smolyakov
Para distribuciones de clase altamente desequilibradas, AUPRC es más informativo que AUROC. Detalles no incluidos aquí ya que este es un comentario. Entre muchas fuentes, una está aquí .
Zhubarb
15

Primero, la métrica de evaluación para datos desequilibrados no sería la precisión. Supongamos que está haciendo detección de fraude, que el 99.9% de sus datos no son fraudes. Podemos hacer fácilmente un modelo ficticio que tenga una precisión del 99.9%. (solo pronostique todos los datos sin fraude).

Desea cambiar su métrica de evaluación de precisión a otra, como puntaje F1 o precisión y recuperación . En el segundo enlace que proporcioné. Hay detalles e intuiciones sobre por qué funcionará la recuperación de precisión.

Para datos altamente desequilibrados, construir un modelo puede ser muy desafiante. Puedes jugar con la función de pérdida ponderada o modelar solo una clase. como SVM de una clase o se ajusta a un gaussiano multivariado (como el enlace que proporcioné anteriormente)

Haitao Du
fuente
2
+1. Buen ejemplo y buena mención en el SVM de una clase. Sin embargo, creo que el F_1 es demasiado duro para ignorar todos los negativos verdaderos. F1
usεr11852 dice Reinstate Monic el
el enlace a "precisión y recuperación" está muerto
Jason
13

Los problemas de desequilibrio de clase se pueden abordar con aprendizaje sensible al costo o remuestreo. Vea las ventajas y desventajas del aprendizaje sensible al costo versus el muestreo , copiado a continuación:


{1} proporciona una lista de ventajas y desventajas del aprendizaje sensible al costo versus el muestreo:

2.2 Muestreo

El sobremuestreo y el submuestreo pueden usarse para alterar la distribución de la clase de los datos de entrenamiento y ambos métodos se han usado para tratar el desequilibrio de la clase [1, 2, 3, 6, 10, 11]. La razón por la que alterar la distribución de la clase de los datos de entrenamiento ayuda al aprendizaje con conjuntos de datos muy sesgados es que efectivamente impone costos de clasificación erróneos no uniformes. Por ejemplo, si uno altera la distribución de la clase del conjunto de entrenamiento de modo que la proporción de ejemplos positivos a negativos va de 1: 1 a 2: 1, entonces uno ha asignado efectivamente una relación de costo de clasificación errónea de 2: 1. Esta equivalencia entre alterar la distribución de clase de los datos de entrenamiento y alterar la relación de costo de clasificación errónea es bien conocida y fue descrita formalmente por Elkan [9].

Existen desventajas conocidas asociadas con el uso del muestreo para implementar un aprendizaje sensible al costo. La desventaja del submuestreo es que descarta datos potencialmente útiles . La principal desventaja con el sobremuestreo , desde nuestra perspectiva, es que al hacer copias exactas de los ejemplos existentes, hace que el sobreajuste sea probable . De hecho, con el sobremuestreo es bastante común que un alumno genere una regla de clasificación para cubrir un solo ejemplo replicado. Una segunda desventaja del sobremuestreo es que aumenta el número de ejemplos de entrenamiento, lo que aumenta el tiempo de aprendizaje .

2.3 ¿Por qué usar muestreo?

Dadas las desventajas con el muestreo, vale la pena preguntarse por qué alguien lo usaría en lugar de un algoritmo de aprendizaje sensible al costo para tratar datos con una distribución de clase sesgada y costos de clasificación erróneos no uniformes. Hay varias razones para esto. La razón más obvia es que no hay implementaciones sensibles a los costos de todos los algoritmos de aprendizaje y, por lo tanto, un enfoque basado en envoltorio que usa muestreo es la única opción. Si bien esto es ciertamente menos cierto hoy que en el pasado, muchos algoritmos de aprendizaje (por ejemplo, C4.5) aún no manejan directamente los costos en el proceso de aprendizaje.

Una segunda razón para usar el muestreo es que muchos conjuntos de datos altamente sesgados son enormes y el tamaño del conjunto de capacitación debe reducirse para que el aprendizaje sea factible. En este caso, el submuestreo parece ser una estrategia razonable y válida. En este documento no consideramos la necesidad de reducir el tamaño del conjunto de entrenamiento. Sin embargo, señalamos que si uno necesita descartar algunos datos de entrenamiento, aún podría ser beneficioso descartar algunos de los ejemplos de clases mayoritarias para reducir el tamaño del conjunto de entrenamiento al tamaño requerido, y luego también emplear un costo algoritmo de aprendizaje sensible, de modo que se minimiza la cantidad de datos de entrenamiento descartados.

Una razón final que puede haber contribuido al uso del muestreo en lugar de un algoritmo de aprendizaje sensible al costo es que los costos de clasificación errónea a menudo son desconocidos. Sin embargo, esta no es una razón válida para usar el muestreo sobre un algoritmo de aprendizaje sensible al costo, ya que el problema análogo surge con el muestreo: ¿cuál debería ser la distribución de la clase de los datos finales del entrenamiento? Si no se conoce esta información de costos, una medida como el área bajo la curva ROC podría usarse para medir el rendimiento del clasificador y ambos enfoques podrían entonces determinar empíricamente la distribución adecuada de la relación costo / clase.

También hicieron una serie de experimentos, que no fueron concluyentes:

Según los resultados de todos los conjuntos de datos, no hay un ganador definitivo entre el aprendizaje sensible al costo, el sobremuestreo y el submuestreo

Luego intentan comprender qué criterios en los conjuntos de datos pueden indicar qué técnica se ajusta mejor.

También comentan que SMOTE puede aportar algunas mejoras:

Hay una variedad de mejoras que las personas han hecho para mejorar la efectividad del muestreo. Algunas de estas mejoras incluyen la introducción de nuevos ejemplos "sintéticos" al sobremuestreo [5 -> SMOTE], la eliminación de ejemplos de clase mayoritaria menos útiles al submuestreo [11] y el uso de múltiples submuestras al submuestreo que cada ejemplo se utiliza en al menos uno submuestra [3]. Si bien estas técnicas se han comparado con sobremuestreo y submuestreo, generalmente no se han comparado con algoritmos de aprendizaje sensibles al costo. Valdría la pena estudiarlo en el futuro.


{1} Weiss, Gary M., Kate McCarthy y Bibi Zabar. "Aprendizaje sensible al costo versus muestreo: ¿cuál es el mejor para manejar clases desequilibradas con costos de error desiguales?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=en&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf

Franck Dernoncourt
fuente
1
Entonces, para resumir el enlace: los resultados sobre qué método es mejor no son concluyentes y es más fácil usar el submuestreo en exceso. ¿Derecho?
LazyCat
1
@LazyCat a la derecha.
Franck Dernoncourt
Sí, la plataforma tiene limitaciones. Pero muchos de ellos también son características. Por ejemplo, supongo que si una respuesta larga y detallada como esta pudiera responder adecuadamente a dos preguntas, entonces esas preguntas deben ser duplicadas. Y si no son duplicados, entonces debería ser posible variar las respuestas de una manera significativa para que no solo se copien. ¿Qué acción se debe tomar en este caso? (cc @gung)
whuber
@whuber La otra pregunta ya se ha cerrado :-)
Franck Dernoncourt
1
Bien, ¡ese es un argumento persuasivo!
whuber
6

Varias respuestas a esta consulta ya han proporcionado varios enfoques diferentes, todos válidos. Esta sugerencia es de un artículo y software asociado de Gary King, eminente politólogo de Harvard. Es coautor de un artículo titulado Regresión logística en datos de eventos raros que proporciona algunas soluciones bastante convincentes.

Aquí está el resumen:

Estudiamos datos de eventos raros, variables dependientes binarias con decenas a miles de veces menos (eventos, como guerras, vetos, casos de activismo político o infecciones epidemiológicas) que ceros ("no eventos"). En muchas publicaciones, estas variables han resultado difíciles de explicar y predecir, un problema que parece tener al menos dos fuentes. Primero, los procedimientos estadísticos populares, como la regresión logística, pueden subestimar drásticamente la probabilidad de eventos raros. Recomendamos correcciones que superen los métodos existentes y cambien las estimaciones de los riesgos absolutos y relativos en la medida de algunos efectos estimados reportados en la literatura. En segundo lugar, las estrategias de recolección de datos comúnmente utilizadas son extremadamente ineficientes para los datos de eventos raros. El miedo a recopilar datos con muy pocos eventos ha llevado a la recopilación de datos con un gran número de observaciones pero relativamente pocas variables explicativas y poco medidas, como en los datos de conflictos internacionales con más de un cuarto de millón de díadas, de las cuales solo algunas están en guerra Como resultado, existen diseños de muestreo más eficientes para hacer inferencias válidas, como el muestreo de todos los eventos variables (p. Ej., Guerras) y una pequeña fracción de no eventos (paz). Esto permite a los académicos ahorrar hasta el 99% de sus costos de recopilación de datos (no fijos) o recopilar variables explicativas mucho más significativas. Proporcionamos métodos que vinculan estos dos resultados, permitiendo que ambos tipos de correcciones funcionen simultáneamente, y software que implementa los métodos desarrollados. y variables explicativas mal medidas, como en los datos de conflictos internacionales con más de un cuarto de millón de díadas, de las cuales solo algunas están en guerra. Como resultado, existen diseños de muestreo más eficientes para hacer inferencias válidas, como el muestreo de todos los eventos variables (p. Ej., Guerras) y una pequeña fracción de no eventos (paz). Esto permite a los académicos ahorrar hasta el 99% de sus costos de recopilación de datos (no fijos) o recopilar variables explicativas mucho más significativas. Proporcionamos métodos que vinculan estos dos resultados, permitiendo que ambos tipos de correcciones funcionen simultáneamente, y software que implementa los métodos desarrollados. y variables explicativas mal medidas, como en los datos de conflictos internacionales con más de un cuarto de millón de díadas, de las cuales solo algunas están en guerra. Como resultado, existen diseños de muestreo más eficientes para hacer inferencias válidas, como el muestreo de todos los eventos variables (p. Ej., Guerras) y una pequeña fracción de no eventos (paz). Esto permite a los académicos ahorrar hasta el 99% de sus costos de recopilación de datos (no fijos) o recopilar variables explicativas mucho más significativas. Proporcionamos métodos que vinculan estos dos resultados, permitiendo que ambos tipos de correcciones funcionen simultáneamente, y software que implementa los métodos desarrollados. existen diseños de muestreo más eficientes para hacer inferencias válidas, como muestrear todos los eventos variables (p. ej., guerras) y una pequeña fracción de no eventos (paz). Esto permite a los académicos ahorrar hasta el 99% de sus costos de recopilación de datos (no fijos) o recopilar variables explicativas mucho más significativas. Proporcionamos métodos que vinculan estos dos resultados, permitiendo que ambos tipos de correcciones funcionen simultáneamente, y software que implementa los métodos desarrollados. existen diseños de muestreo más eficientes para hacer inferencias válidas, como el muestreo de todos los eventos variables (p. ej., guerras) y una pequeña fracción de no eventos (paz). Esto permite a los académicos ahorrar hasta el 99% de sus costos de recopilación de datos (no fijados) o recopilar variables explicativas mucho más significativas. Proporcionamos métodos que vinculan estos dos resultados, permitiendo que ambos tipos de correcciones funcionen simultáneamente, y software que implementa los métodos desarrollados.

Aquí hay un enlace al documento ... http://gking.harvard.edu/files/abs/0s-abs.shtml

Mike Hunter
fuente
Gracias, si lees el documento, ¿sugieren algo importante más allá del submuestreo sugerido anteriormente?
LazyCat
44
Este es un buen artículo, ¡lo he leído más de una vez! (+1) Creo que deberías señalar que el artículo también está interesado en la inferencia. Es por eso que un GBM sería menos útil para un politólogo en comparación con un GLM. Por ejemplo, si se utilizan metodologías de árbol: " ... dos algoritmos de partición recursiva pueden lograr la misma precisión de predicción pero, al mismo tiempo, representan relaciones de regresión estructuralmente diferentes, es decir, modelos diferentes y, por lo tanto, pueden llevar a conclusiones diferentes sobre la influencia de ciertas covariables en la respuesta. "(Hothorn et al. 2006)
ussr11852 dice Reinstate Monic
2

El desarrollo de clasificadores para conjuntos de datos con clases desequilibradas es un problema común en el aprendizaje automático. Los métodos basados ​​en la densidad pueden tener ventajas significativas sobre los "clasificadores tradicionales" en tal situación.

p^(x|yC)CC={x:yi=0}

xy^(x)Cy^(x)C

Puede consultar el siguiente documento:

"Un estimador de plug-in computable de conjuntos de volumen mínimo para detección de novedad", C. Park, J. Huang e Y. Ding, Investigación de operaciones, 58 (5), 2013.

rodrigo
fuente
2

Este es el tipo de problema en el que la detección de anomalías es un enfoque útil. Esto es básicamente lo que rodrigo describió en su respuesta, en la que usted determina el perfil estadístico de su clase de entrenamiento y establece un umbral de probabilidad más allá del cual se determina que las mediciones futuras no pertenecen a esa clase. Aquí hay un video tutorial , que debería comenzar. Una vez que haya absorbido eso, recomendaría buscar la Estimación de densidad del núcleo.

DrMcCleod
fuente