O pacote randomForest de R não pode lidar com fatores com mais de 32 níveis. Quando recebe mais de 32 níveis, emite uma mensagem de erro:
Não é possível lidar com preditores categóricos com mais de 32 categorias.
Mas os dados que tenho têm vários fatores. Alguns deles têm mais de 1000 níveis e outros mais de 100. Tem até 'estado' dos estados unidos, que é 52.
Então, aqui está a minha pergunta.
Por que existe essa limitação? randomForest se recusa a executar mesmo para o caso simples.
> 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.
Se é simplesmente devido à limitação de memória, como o randomForeestRegressor do scikit learn pode ser executado com mais de 32 níveis?
Qual é a melhor maneira de lidar com esse problema? Suponha que eu possua variáveis independentes X1, X2, ..., X50 e Y seja variável dependente. E suponha que X1, X2 e X3 tenham mais de 32 níveis. O que devo fazer?
O que estou pensando é em executar o algoritmo de agrupamento para cada um dos X1, X2 e X3, em que a distância é definida como diferença em Y. Vou executar três agrupamentos, pois há três variáveis problemáticas. E em cada agrupamento, desejo encontrar níveis semelhantes. E eu vou fundi-los.
Como isso soa?