R-пакет randomForest не может обрабатывать фактор с более чем 32 уровнями. Когда ему дается более 32 уровней, выдается сообщение об ошибке:
Не может обрабатывать категориальные предикторы с более чем 32 категориями.
Но у меня есть несколько факторов. Некоторые из них имеют более 1000 уровней, а некоторые - более 100. У этого даже есть 'государство' Соединенных Штатов, которое является 52.
Итак, вот мой вопрос.
Почему существует такое ограничение? randomForest отказывается работать даже для простого случая.
> 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.
Если это просто из-за ограничения памяти, как может SciKit Learn случайныйForeestRegressor работать с более чем 32 уровнями?
Каков наилучший способ справиться с этой проблемой? Предположим, что у меня есть независимые переменные X1, X2, ..., X50, а Y - зависимая переменная. И предположим, что X1, X2 и X3 имеет более 32 уровней. Что мне делать?
Я думаю о том, чтобы запустить алгоритм кластеризации для каждого из X1, X2 и X3, где расстояние определяется как разница в Y. Я проведу три кластеризации, так как есть три проблемные переменные. И в каждой кластеризации я бы хотел найти похожие уровни. И я объединю их.
Как это звучит?