我正在尝试使用以下
创建一个随机林movies.rf <- randomForest(Infl.Adj.Dom.BoxOffice~. -Genre -Source -ProductionMethod -CreativeType, data=Movies, subset=train)
我得到了
Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 53 categories.
阅读this后,我尝试检查变量的值并获得此
>length(unique(Movies$Genre))
[1] 12
> length(unique(Movies$Source))
[1] 16
> length(unique(Movies$ProductionMethod))
[1] 5
> length(unique(Movies$CreativeType))
[1] 9
单独地,它们都不大于53,并且加在一起,它们小于53.那么为什么我仍然会得到错误?
答案 0 :(得分:0)
如果从您的问题的上下文中看出,您打算仅使用这四个要素(Genre, Source, ProductionMethod, CreativeType
)来预测Infl.Adj.Dom.BoxOffice
,那么您在错误中使用R公式方式:你的用法
Infl.Adj.Dom.BoxOffice~. -Genre -Source -ProductionMethod -CreativeType
事实上说&#34;使用所有功能预测Infl.Adj.Dom.BoxOffice
.
)除了 Genre, Source, ProductionMethod, CreativeType
&#34; (-
符号用于excluding变量)。
所以,这里实际发生的是,其他功能中的一个(或多个)是一个超过53个级别的分类功能。
正确的用法,如果你确实只想使用你提到的这四个功能,应该是:
movies.rf <- randomForest(Infl.Adj.Dom.BoxOffice ~ Genre + Source + ProductionMethod + CreativeType, data=Movies, subset=train)