我正在使用一个包含mvar_1列的数据集,其名称是去年公民投票的5个政党之一.其他变量只是人口统计变量,因为每一方参与的集会数量,其他的东西.
当我使用以下代码时:
data.model.rf = randomForest(mvar_1 ~ mvar_2 + mvar_3 + mvar_4 + mvar_5 +
mvar_6 + mvar_7 + mvar_8 + mvar_9 + mvar_10 +
mvar_11 + mvar_15 + mvar_17 + mvar_18 + mvar_21 +
mvar_22 + mvar_23 + mvar_24 + mvar_25 + mvar_26 +
mvar_28, data=data.train, ntree=20000, mtry=15,
importance=TRUE, na.action = na.omit )
Run Code Online (Sandbox Code Playgroud)
出现此错误消息:
Error in randomForest.default(m, y, ...) :
Can not handle categorical predictors with more than 53 categories.
Run Code Online (Sandbox Code Playgroud)
你的一个mvar是一个超过53个级别的因子.
您可能有一个具有多个级别的分类变量,例如人口统计组,您应该将其聚合到较少的级别以使用此包.(请参阅此处了解最佳方法)
更有可能的是,您将非分类变量错误地键入为因子.在这种情况下,您应该通过正确键入变量来修复它.例如,要从一个因子中获取数字,请调用as.numeric(as.character(myfactor)).
如果你不知道一个因素是什么,第二种选择可能是它.你应该做summary的data.train,这将帮助你了解哪些mvar是输入错误.如果mvar键入数字,您将看到最小值,最大值,平均值,中位数等.如果数字变量输入错误,您将看不到,但您将看到每个级别的出现次数.
在任何情况下,呼叫summary都会对您有所帮助,因为它会显示每个因素的级别数.> 53级的变量导致问题.
| 归档时间: |
|
| 查看次数: |
11132 次 |
| 最近记录: |