Кажется, вы понимаете, что вы можете иметь n
уровни, а не n-1
потому, что в отличие от линейной регрессии вам не нужно беспокоиться о совершенной колинеарности.
(Я подхожу к этому с точки зрения R, но я предполагаю, что в Python то же самое.) Это зависит от нескольких моментов, таких как: 1) какой пакет вы используете и 2) сколько у вас уровней факторов.
1) Если вы используете randomForest
пакет R , то если у вас <33 факторных уровня, вы можете оставить их в одной функции, если хотите. Это связано с тем, что в реализации случайного леса R он будет проверять, какие уровни факторов должны быть на одной стороне разделения, а какие на другой (например, 5 ваших уровней могут быть сгруппированы на левой стороне, а 7 могут быть сгруппированы вместе справа). Если вы разделите категорический признак на n
пустышки, то алгоритм не будет иметь этой опции в своем распоряжении.
Очевидно, что если конкретный пакет, который вы используете, не может обрабатывать категориальные функции, вам просто нужно создать n
фиктивные переменные.
2) Как я упоминал выше, реализация случайного леса R может обрабатывать только 32 факторных уровня - если у вас их больше, вам нужно либо разделить ваши факторы на меньшие подмножества, либо создать фиктивную переменную для каждого уровня.
randomForest
кодируются автоматически, я должен пойти сn
пустышками, потому что коллинеарность не проблема для RF?