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?
Respuestas:
fuente
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:
fuente
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.
fuente
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.
fuente