случайный лес onehotencoder

Aug 31 2020

В контексте случайного леса мне нужно настраивать макеты / OnehotEncoder в наборе данных, где функции / переменные являются числовыми, но относятся к какой-то категории?

Допустим, у меня есть следующие переменные:

Где Yпеременная, которую я хочу предсказать. X'sособенности.

Я сосредоточусь на X1. Его числовое значение, но относится к определенной категории (например, 1 относится к математике, 2 относится к литературе и 3 - к истории). Нужно ли мне применять OnehotEncoder (или фиктивный подход) для алгоритма случайного леса?

Думаю, мне не нужно этого делать, но я не уверен.

Ответы

1 Josh Aug 31 2020 at 10:44

Теоретически сами категории можно обрабатывать в деревьях решений. Однако большинство реализаций Python работают только с числами, поэтому вам необходимо их преобразовать. Похоже, у вас уже есть. OneHot Encoding - один из способов сделать это, но теперь, когда вы это сделали, в этом нет необходимости. Вы можете попробовать другие схемы, чтобы превратить их в 1 2 3, если нет логической причины, почему они у вас так сложились. Это называется категориальным кодированием. Один из популярных способов - расположить их в алфавитном порядке и пронумеровать. Другой способ, в порядке их частоты. В конце концов, это не будет иметь большого значения, потому что случайный лес будет отбирать число в соответствии со своим алгоритмом. Однако это может иметь незначительные отличия, поэтому, возможно, попробуйте другие способы. Но нет, вам не нужно кодировать категории OneHot, потому что они уже являются числами.