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如何学习使用32个以上级别运行的randomForeestRegressor?
解决此问题的最佳方法是什么?假设我有X1,X2,...,X50自变量,Y是因变量。并假设X1,X2和X3具有32个以上的级别。我该怎么办?
我正在考虑为X1,X2和X3中的每一个运行聚类算法,其中距离定义为Y的差值。我将运行三个聚类,因为存在三个有问题的变量。并且希望在每个群集中都可以找到相似的级别。我将合并它们。
听起来如何?