R randomForest太多类别错误,即使少于53个类别

时间:2018-05-03 18:38:18

标签: r tree random-forest r-factor

我正在尝试使用以下

创建一个随机林
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.那么为什么我仍然会得到错误?

1 个答案:

答案 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)