R randomForest ошибка слишком большого количества категорий даже с менее чем 53 категориями - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать случайный лес со следующим

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 голосов
/ 04 мая 2018

Если, как видно из контекста вашего вопроса, вы намерены использовать только эти четыре функции (Genre, Source, ProductionMethod, CreativeType) для прогнозирования Infl.Adj.Dom.BoxOffice, то вы используете формулу R неправильно: ваше использование

Infl.Adj.Dom.BoxOffice~. -Genre -Source -ProductionMethod -CreativeType

фактически говорит: «предсказать Infl.Adj.Dom.BoxOffice, используя все функции (.) , за исключением Genre, Source, ProductionMethod, CreativeType» (символ - используется для , исключая переменных).

Итак, что на самом деле здесь происходит, так это то, что одна (или более) из ваших других функций является категориальной с более чем 53 уровнями.

Правильное использование, если вы действительно хотите использовать только эти четыре функции, которые вы упомянули, должно быть:

movies.rf <- randomForest(Infl.Adj.Dom.BoxOffice ~ Genre + Source + ProductionMethod + CreativeType, data=Movies, subset=train)
...