Использование «одной горячей» кодированной зависимой переменной в случайном лесу - PullRequest
0 голосов
/ 03 декабря 2018

Я строю случайный лес в python, используя sklearn-learn, и применил «одну горячую» кодировку ко всем категориальным переменным.Вопрос: если я применяю «один горячий» к своему DV, я применяю все его фиктивные столбцы как DV, или DV должен обрабатываться по-другому?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Зависит от типа вашей проблемы.Для двоичных или мультиклассовых задач вам не нужна одна переменная, зависящая от горячего кодирования, в scikit-learn.Выполнение однократного кодирования изменит форму выходной переменной с одного измерения на несколько измерений.Это называется матрицей меток-индикаторов, где каждый столбец обозначает наличие или отсутствие этой метки.

Например, если выполнить однократное кодирование следующего кода:

['high', 'medium', 'low', 'high', 'low', 'high', 'medium']

вернет это:

high    medium    low
 1        0        0
 0        1        0
 0        0        1
 1        0        0
 0        0        1
 1        0        0
 0        1        0

Не все классификаторы inscikit-learn могут поддерживать этот формат (, даже если они поддерживают мультиклассовую классификацию ). Даже в тех, которые поддерживают это, это вызовет классификацию с несколькими метками (в которой может быть несколько меток).присутствовать сразу) - это то, чего вы не хотите в многоклассовой задаче.

0 голосов
/ 03 декабря 2018

Вам необходимо применить горячее кодирование ко всем тем столбцам, где значения не в числах. Вы можете обрабатывать DV с горячими и другими нечисловыми столбцами с другой кодировкой.Например: предположим, что есть столбец с названиями городов, вам нужно изменить его в числовой форме.Это называется ФОРМИРОВАНИЕ ДАННЫХ.Вы также можете выполнять эту формовку без горячей подачи.

Например: есть колонка DV для диабета с записями «да» и «нет».Это без горячего кодирования.

diabetes_map = {True : 1, False : 0}
df['diabetes'] = df['diabetes'].map(diabetes_map)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...