Soy nuevo en la minería de datos y estoy tratando de entrenar un árbol de decisión contra un conjunto de datos que está altamente desequilibrado. Sin embargo, estoy teniendo problemas con poca precisión predictiva.
Los datos consisten en estudiantes que estudian cursos, y la variable de clase es el estado del curso que tiene dos valores: Retirado o Actual.
- Años
- Etnicidad
- Género
- Curso
... - Estado del curso
En el conjunto de datos hay muchas más instancias que son actuales que retiradas. Las instancias retiradas solo representan el 2% del total de instancias.
Quiero poder construir un modelo que pueda predecir la probabilidad de que una persona se retire en el futuro. Sin embargo, cuando se prueba el modelo con los datos de entrenamiento, la precisión del modelo es terrible.
He tenido problemas similares con los árboles de decisión donde los datos están dominados por una o dos clases.
¿Qué enfoque puedo usar para resolver este problema y construir un clasificador más preciso?
Respuestas:
Este es un problema interesante y muy frecuente en la clasificación, no solo en los árboles de decisión sino en prácticamente todos los algoritmos de clasificación.
Como descubrió empíricamente, un conjunto de entrenamiento que consta de diferentes números de representantes de cualquier clase puede dar como resultado un clasificador sesgado hacia la clase mayoritaria. Cuando se aplica a un conjunto de prueba que está igualmente desequilibrado, este clasificador produce una estimación de precisión optimista. En un caso extremo, el clasificador podría asignar cada caso de prueba a la clase mayoritaria, logrando así una precisión igual a la proporción de casos de prueba pertenecientes a la clase mayoritaria. Este es un fenómeno bien conocido en la clasificación binaria (y se extiende naturalmente a configuraciones de varias clases).
Este es un tema importante, porque un conjunto de datos desequilibrado puede conducir a estimaciones de rendimiento infladas. Esto a su vez puede llevar a conclusiones falsas sobre la importancia con la que el algoritmo ha funcionado mejor que el azar.
La literatura de aprendizaje automático sobre este tema ha desarrollado esencialmente tres estrategias de solución.
Puede restablecer el equilibrio en el conjunto de entrenamiento submuestreando la clase grande o sobremuestreando la clase pequeña, para evitar que surjan sesgos en primer lugar.
Alternativamente, puede modificar los costos de clasificación errónea, como se señaló en una respuesta anterior, nuevamente para evitar sesgos.
Una salvaguarda adicional es reemplazar la precisión por la llamada precisión equilibrada . Se define como la media aritmética de las precisiones específicas de la clase, donde y representa la precisión obtenida en ejemplos positivos y negativos, respectivamente. Si el clasificador se desempeña igualmente bien en cualquiera de las clases, este término se reduce a la precisión convencional (es decir, el número de predicciones correctas dividido por el número total de predicciones). Por el contrario, si la precisión convencional está por encima del azar solo porque el clasificador aprovecha un conjunto de prueba desequilibrado, entonces la precisión equilibrada, según corresponda, caerá al azar (vea el esquema a continuación).π+π-ϕ:=12(π++π−), π+ π−
Recomendaría considerar al menos dos de los enfoques anteriores en conjunto. Por ejemplo, podría sobremuestrear su clase minoritaria para evitar que su clasificador adquiera un sesgo a favor de la clase mayoritaria. Después de esto, al evaluar el rendimiento de su clasificador, puede reemplazar la precisión por la precisión equilibrada. Los dos enfoques son complementarios. Cuando se aplican juntos, deberían ayudarlo a prevenir su problema original y evitar conclusiones falsas derivadas de él.
Me gustaría publicar algunas referencias adicionales a la literatura si desea hacer un seguimiento de esto.
fuente
Las siguientes cuatro ideas pueden ayudarlo a abordar este problema.
Seleccione una medida de rendimiento adecuada y luego ajuste los hiperparámetros de su modelo, por ejemplo, la regularización, para obtener resultados satisfactorios en el conjunto de datos de validación cruzada y, una vez satisfecho, pruebe su modelo en el conjunto de datos de prueba. Para estos fines, separe el 15% de sus datos para usarlos en la validación cruzada y el 15% para las pruebas finales. Una medida establecida en Machine Learning, defendida por Andrews Ng, es la estadística F1 definida como . Intente maximizar esta cifra en el conjunto de datos de validación cruzada y asegúrese de que el rendimiento también sea estable en el conjunto de datos de prueba.2∗Precision∗RecallPrecision+Recall
Utilice el parámetro 'anterior' en los árboles de decisión para informar al algoritmo de la frecuencia previa de las clases en el conjunto de datos, es decir, si hay 1,000 positivos en un conjunto de conjuntos de datos 1,000,0000
prior = c(0.001, 0.999)
(en R).Use el argumento de 'pesos' en la función de clasificación que usa para penalizar severamente el algoritmo por clasificaciones erróneas de los casos positivos raros
Utilice el argumento de "costo" en algunos algoritmos de clasificación, por ejemplo,
rpart
en R, para definir los costos relativos de las clasificaciones erróneas de positivos verdaderos y negativos verdaderos. Naturalmente, debe establecer un alto costo para la clasificación errónea de la clase rara.No estoy a favor del sobremuestreo, ya que introduce observaciones dependientes en el conjunto de datos y esto viola los supuestos de independencia realizados tanto en Estadística como en Aprendizaje automático.
fuente
Di una respuesta en un tema reciente :
No solo ofrece un enfoque más estable, sino que los modelos son generalmente mejores, en lo que respecta a las medidas de elevación.
fuente
Agregando a la respuesta de @Kay la primera estrategia de solución: el sobremuestreo de minorías sintéticas ( SMOTE ) generalmente funciona mejor que el muestreo bajo o excesivo de mi experiencia, ya que creo que crea un compromiso entre ambos. Crea muestras sintéticas de la clase minoritaria utilizando los puntos de datos trazados en el espacio predictivo multivariado y toma más o menos puntos medios entre puntos adyacentes en ese espacio para crear nuevos puntos sintéticos y, por lo tanto, equilibra ambos tamaños de clase. (no estoy seguro de los puntos medios, detalles del algoritmo aquí
fuente