Estoy tratando con un conjunto de datos desequilibrados con el paquete R randomForest. Alguien ha sugerido que, Bootstrap sus datos, mientras que el exceso de muestreo de la clase rara y bajo el muestreo de la clase típica. Pero encontré que con el aumento del tamaño del remuestreo, el error OOB disminuye a cero, lo que mostró un severo sobreajuste, me pregunto por qué?
Esto también ocurre con el modelo de árbol(rpart).
He aquí un ejemplo, aunque los datos están equilibrados, sólo para probar el efecto del tamaño del remuestreo:
require(randomForest)
set.seed(0)
iris500=iris[sample(1:nrow(iris),size=500,replace=TRUE),]
iris2000=iris[sample(1:nrow(iris),size=2000,replace=TRUE),]
formula="Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width"
(rf0=randomForest(as.formula(formula),data=iris)) #OOB estimate of error rate: 4%
(rf1=randomForest(as.formula(formula),data=iris500)) #OOB estimate of error rate: 0.4%
(rf2=randomForest(as.formula(formula),data=iris2000)) #OOB estimate of error rate: 0%
table(iris[["Species"]])
#setosa versicolor virginica
# 50 50 50
0 votos
¿Puedes mostrar el código que has utilizado para remuestrear (aumentar) tu clase rara? Yo diría que, en general, no deberías alterar demasiado tu conjunto de datos, suponiendo que refleje la realidad.
0 votos
¿Cuántas instancias tiene en
iris
? ¿Es posible que exista la misma instancia en el conjunto de entrenamiento y en el de prueba debido al remuestreo?1 votos
Hay 50 instancias para cada clase, puede ser que sea una razón, pero resultó una precisión del 100%. si es así, ¿cómo debo equilibrar mis datos a través de Bootstrap Resampling?
0 votos
Básicamente tendrá todas las muestras tanto dentro como fuera de la bolsa. En su lugar, utilice los parámetros sampsize= y strata= durante el entrenamiento para formar un bootstrap correcto. Evite el sobremuestreo.
1 votos
Este ejemplo muestra cómo reducir la muestra correctamente: stats.stackexchange.com/questions/157714/
0 votos
Muchas gracias. He probado esos ejemplos. Parece que los parámetros sampsize y strata son para la muestra descendente, pero no tengo más de 25 instancias en realidad incluso para la clase mayoritaria, así que puede ser que me refiera al parámetro classwt, gracias por tu sugerencia.