Guía rápida para entrenar conjuntos de datos altamente desequilibrados

29

Tengo un problema de clasificación con aproximadamente 1000 muestras positivas y 10000 negativas en el conjunto de entrenamiento. Entonces este conjunto de datos está bastante desequilibrado. El bosque aleatorio simple solo está tratando de marcar todas las muestras de prueba como una clase mayoritaria.

Aquí se dan algunas buenas respuestas sobre submuestreo y bosque aleatorio ponderado: ¿Cuáles son las implicaciones para entrenar un conjunto de árboles con conjuntos de datos altamente sesgados?

¿Qué métodos de clasificación además de RF pueden manejar el problema de la mejor manera?

IharS
fuente
Ver también stats.stackexchange.com/q/247871/232706
Ben Reiniger

Respuestas:

19
  • Max Kuhn cubre esto bien en el capítulo 16 del modelado predictivo aplicado .
  • Como se menciona en el hilo vinculado, los datos desequilibrados son esencialmente un problema de capacitación sensible al costo. Por lo tanto, cualquier enfoque sensible al costo es aplicable a los datos desequilibrados.
  • Hay una gran cantidad de tales enfoques. No todos implementados en R: C50, las SVM ponderadas son opciones. Jous-boost. Rusboost creo que solo está disponible como código Matlab.
  • No uso Weka, pero creo que tiene una gran cantidad de clasificadores sensibles al costo.
  • Manejo de conjuntos de datos desequilibrados: una revisión : Sotiris Kotsiantis, Dimitris Kanellopoulos, Panayiotis Pintelas '
  • Sobre el problema del desequilibrio de clase : Xinjian Guo, Yilong Yin, Cailing Dong, Gongping Yang, Guangtong Zhou
Charles
fuente
16

Subestimar a la clase mayoritaria suele ser el camino a seguir en tales situaciones.

Si cree que tiene muy pocas instancias de la clase positiva, puede realizar un sobremuestreo, por ejemplo, instancias de muestra 5n con reemplazo del conjunto de datos de tamaño n.

Advertencias:

  • Algunos métodos pueden ser sensibles a los cambios en la distribución de la clase, por ejemplo, para Naive Bayes: afecta las probabilidades anteriores.
  • El sobremuestreo puede conducir a un sobreajuste
Alexey Grigorev
fuente
¿O tal vez intente un algoritmo de agrupación y use los centros de agrupación?
Leela Prabhu
Puede consultar este enlace para sobremuestreo y otros métodos para lidiar con conjuntos de datos desequilibrados.
Janpreet Singh
11

El aumento de gradiente también es una buena opción aquí. Puede usar el clasificador de aumento de gradiente en sci-kit learn, por ejemplo. El aumento de gradiente es un método basado en principios para tratar el desequilibrio de clase mediante la construcción de conjuntos de capacitación sucesivos basados ​​en ejemplos clasificados incorrectamente.

cwharland
fuente
1
Entiendo que el aumento de gradiente tiene las mismas limitaciones que RF cuando se trata de datos desequilibrados: sci2s.ugr.es/keel/pdf/algorithm/articulo/…
charles
1
Impulsar es un paso adicional que da para construir el bosque que aborda directamente el desequilibrio. El documento que vincula anota esto en la introducción que indica que el refuerzo ayuda incluso en casos en los que no hay desequilibrio. Y ese documento concluye que el impulso ayuda significativamente Entonces, ¿no está seguro de dónde se muestra la equivalencia entre RF y refuerzo?
cwharland
1

Además de las respuestas publicadas aquí, si el número de ejemplos positivos es demasiado pequeño en comparación con los ejemplos negativos, entonces se trata de un problema de detección de anomalías donde los ejemplos positivos son las anomalías.

Tiene una amplia gama de métodos para detectar anomalías que van desde el uso de la distribución gaussiana multivariada para modelar todos los puntos y luego elegir aquellos que están a 2 o 3 stds de la media.

Otro alimento para el pensamiento: he visto bastantes personas que muestrean aleatoriamente los ejemplos negativos con más ejemplos para que ambas clases sean iguales en número. Depende totalmente del problema en cuestión, si queremos que estén equilibrados o no.

RAM
fuente