Как выровнять набор тренировок и тестов при использовании панд `get_dummies` с` drop_first = True`? - PullRequest
0 голосов
/ 11 января 2019

У меня есть набор данных от телекоммуникационной компании, имеющий множество категориальных функций. Я использовал метод pandas.get_dummies, чтобы преобразовать их в один формат с горячим кодированием с параметром drop_first=True. Теперь, как я могу использовать функцию предсказания, тестовые входные данные должны быть закодированы таким же образом, так как опция drop_first = True также отбрасывает некоторые столбцы, как я могу гарантировать, что кодирование происходит аналогичным образом.

Форма набора данных перед кодированием: (7043, 21) Форма набора данных после кодирования: (7043, 31)

1 Ответ

0 голосов
/ 11 января 2019

Когда не с использованием drop_first=True, у вас есть два варианта:

  1. Выполните однократное кодирование перед разделением данных в обучающем и тестовом наборе. (Или объедините наборы данных, выполните горячее кодирование и снова разделите наборы данных.)

  2. Выравнивание наборов данных после однократного кодирования: внутреннее объединение удаляет функции, которых нет ни в одном из наборов (в любом случае они будут бесполезны). train, test = train.align(test, join='inner', axis=1)

Вы отметили (правильно), что метод 2 может не выполнить то, что вы ожидаете, потому что вы используете drop_first=True. Итак, вы остались с методом 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...