R randomForest paquete no puede manejar el factor con más de 32 niveles. Cuando se da más de 32 niveles, se emite un mensaje de error:
No puede manejar los predictores categóricos con más de 32 categorías.
Pero los datos que tengo tiene varios factores. Algunos de ellos tienen más de 1000 niveles y algunos de ellos tienen más de 100. Incluso tiene el 'estado' de estados unidos, que es de 52.
Así que, aquí está mi pregunta.
-
¿Por qué hay tal limitación? randomForest negarse a ejecutar incluso para el caso sencillo.
> d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories.
Si es simplemente debido a la limitación de memoria, ¿cómo puede scikit aprender del randomForeestRegressor se ejecute con más de 32 niveles?
-
¿Cuál es la mejor manera de manejar este problema? Supongamos que tengo X1, X2, ..., X50 variables independientes y y es la variable dependiente. Y supongamos que X1, X2 y X3 cuenta con más de 32 niveles. ¿Qué debo hacer?
Lo que estoy pensando es que ejecuta el algoritmo de agrupamiento para cada uno de X1, X2 y X3, donde la distancia se define como la diferencia en Y. voy a correr tres conglomerados, ya que hay tres variables problemáticas. Y en cada agrupación, deseo que puedas encontrar niveles similares. Y voy a unirlos.
¿Cómo este sonido?