Подтвердить что ты не робот

Может ли sklearn случайный лес напрямую обрабатывать категориальные функции?

Скажем, у меня есть категориальная функция, цвет, который принимает значения

['red', 'blue', 'green', 'orange'],

и я хочу использовать его для предсказания чего-то в случайном лесу. Если я разогреваю его кодирование (т.е. Меняю его на четыре фиктивные переменные), как мне сказать sklearn, что четыре фиктивные переменные - это действительно одна переменная? В частности, когда sklearn произвольно выбирает функции для использования на разных узлах, он должен включать в себя красные, синие, зеленые и оранжевые манекены вместе, или он не должен включать ни одного из них.

Я слышал, что нет способа сделать это, но я бы предположил, что должен быть способ справиться с категориальными переменными без произвольного кодирования их как чисел или чего-то подобного.

4b9b3361

Ответ 1

Нет, нет. Кто-то работает над этим, и патч может быть однажды объединен в mainline, но сейчас нет поддержки категориальных переменных в scikit-learn, кроме фиктивной (однократной) кодировки.

Ответ 2

Вы должны сделать категориальную переменную в ряд фиктивных переменных. Да, я знаю, что это раздражает и кажется ненужным, но так работает sklearn. если вы используете pandas. используйте pd.get_dummies, он работает очень хорошо.

Ответ 3

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

Заметным исключением является H2O. H2O имеет очень эффективный метод для непосредственного обращения с категориальными данными, что часто дает ему преимущество над методами, основанными на деревьях, которые требуют однократного кодирования.

В этой статье Уилла Макгинниса очень хорошо обсуждается одноразовое кодирование и альтернативы.

В этой статье Ника Динголла и Криса Потца очень хорошо обсуждается категориальные переменные и ученики на основе дерева.