El paquete randomForest de R no puede manejar factores con más de 32 niveles. Cuando se le dan más de 32 niveles, emite un mensaje de error:
No puede manejar predictores categóricos con más de 32 categorías.
Pero los datos que tengo tienen varios factores. Algunos de ellos tienen más de 1000 niveles y algunos de ellos tienen más de 100. Incluso tiene 'estado' de Estados Unidos que es 52.
Entonces, esta es mi pregunta.
¿Por qué hay tal limitación? randomForest se niega a correr incluso por el simple caso.
> 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 se debe simplemente a una limitación de memoria, ¿cómo puede ejecutar scikit learn's randomForeestRegressor con más de 32 niveles?
¿Cuál es la mejor manera de manejar este problema? Supongamos que tengo X1, X2, ..., X50 variables independientes e Y es una variable dependiente. Y supongamos que X1, X2 y X3 tienen más de 32 niveles. ¿Qué tengo que hacer?
Lo que estoy pensando es ejecutar un algoritmo de agrupación para cada uno de X1, X2 y X3, donde la distancia se define como la diferencia en Y. Ejecutaré tres agrupaciones ya que hay tres variables problemáticas. Y en cada agrupación, desearía poder encontrar niveles similares. Y los fusionaré.
¿Como suena esto?