¿Cuáles son las implicaciones para entrenar un conjunto de árboles con conjuntos de datos altamente sesgados?

14

Tengo un conjunto de datos binarios altamente sesgado: tengo 1000 veces más ejemplos de la clase negativa que la clase positiva. Me gustaría entrenar un conjunto de árboles (como árboles extra aleatorios o un bosque aleatorio) sobre estos datos, pero es difícil crear conjuntos de datos de entrenamiento que contengan suficientes ejemplos de la clase positiva.

¿Cuáles serían las implicaciones de hacer un enfoque de muestreo estratificado para normalizar el número de ejemplos positivos y negativos? En otras palabras, ¿es una mala idea, por ejemplo, inflar artificialmente (volviendo a muestrear) el número de ejemplos de clase positivos en el conjunto de entrenamiento?

gallamina
fuente

Respuestas:

10

Si, es problemático. Si sobremuestra a la minoría, corre el riesgo de sobreajustar. Si subestima la mayoría, corre el riesgo de perder aspectos de la clase mayoritaria. El muestreo estratificado, por cierto, es el equivalente a asignar costos de clasificación errónea no uniformes.

Alternativas:

(1) Muestrear independientemente varios subconjuntos de la clase mayoritaria y hacer múltiples clasificadores combinando cada subconjunto con todos los datos de la clase minoritaria, como se sugiere en la respuesta de @Debasis y se describe en este documento de EasyEnsemble ,

(2) SMOTE (Técnica de sobremuestreo de minorías sintéticas) o SMOTEBoost, (combinando SMOTE con refuerzo) para crear instancias sintéticas de la clase minoritaria haciendo vecinos más cercanos en el espacio de características. SMOTE se implementa en R en el paquete DMwR .

MattBagg
fuente
11

Recomendaría capacitación en subconjuntos más equilibrados de sus datos. Entrenamiento de bosque aleatorio en conjuntos de ejemplos positivos seleccionados al azar con un número similar de muestras negativas. En particular, si las características discriminatorias exhiben mucha variación, esto será bastante efectivo y evitará un ajuste excesivo. Sin embargo, en la estratificación es importante encontrar el equilibrio, ya que el sobreajuste puede convertirse en un problema independientemente. Sugeriría ver cómo funciona el modelo con todo el conjunto de datos y luego aumentar progresivamente la proporción de muestras positivas a negativas que se acercan a una proporción uniforme, y seleccionar la que maximice su métrica de rendimiento en algunos datos de retención representativos.

Este documento parece bastante relevante http://statistics.berkeley.edu/sites/default/files/tech-reports/666.pdf habla de un tema weighted Random Forestque penaliza más la clasificación errónea de la clase minoritaria.

indico
fuente
4

Una forma rápida, fácil y a menudo efectiva de abordar este desequilibrio sería submuestrear al azar la clase más grande (que en su caso es la clase negativa), ejecutar la clasificación N varias veces con miembros de las dos clases (una completa y la otra submuestreado) e informe los valores métricos promedio, el promedio se calcula sobre N (digamos 1000) iteraciones.

Un enfoque más metódico sería ejecutar el algoritmo de Convergencia de mapeo (MC), que implica identificar un subconjunto de muestras negativas fuertes con la ayuda de un clasificador de una clase, como OSVM o SVDD, y luego ejecutar iterativamente una clasificación binaria en el conjunto de muestras fuertes negativas y positivas. Se pueden encontrar más detalles del algoritmo MC en este documento .

Debasis
fuente
0

Como se mencionó anteriormente, la mejor manera es muestrear repetidamente la clase mayoritaria N veces (muestreo sin reemplazo) y para cada vez, el tamaño de la clase negativa debe ser igual al tamaño de la clase positiva. Ahora, se pueden entrenar N clasificadores diferentes y se puede usar el promedio para evaluarlo.

Otra forma es usar la técnica de bootstrapping. Esto podría introducir un sobreajuste, pero vale la pena intentarlo y luego, si es necesario, puede regularizar el modelo para evitar el sobreajuste.

RAM
fuente