Как использовать Pandas get_dummies для прогнозирования данных?

После использования Pandas get_dummies в 3 категориальных столбцах для получения одного кадра данных с горячим кодированием я обучил (с некоторым успехом) модель Perceptron.

Теперь я хотел бы предсказать результат нового наблюдения, что это не горячее кодирование.

Есть ли способ записать сопоставление столбца get_dummies для его повторного использования?


person Hugo    schedule 31.05.2018    source источник


Ответы (1)


На данный момент, насколько мне известно, автоматической процедуры для этого не существует. В будущем выпуске sklearn CategoricalEncoder будет очень кстати для этой работы. Вы уже можете получить его, если клонируете sklearn основную ветку github и создаете ее самостоятельно. На данный момент мне приходят в голову 2 варианта:

  • используйте комбинацию LabelEncoder+OneHotEncoder, см., например, этот ответ;
  • просто извлеките (и при необходимости сохраните) список столбцов после обучающего вывода OHE. Затем запустите pd.get_dummies на тестовом наборе/примере. Прокрутите столбцы выходного теста OHE, отбросьте те, которые не отображаются в обучающем OHE, и добавьте те, которые отсутствуют в тестовом OHE, заполненные нулями.
person Mischa Lisovyi    schedule 31.05.2018
comment
Думал сделать вторую. Это будет работать, но я думал, что это не может быть ожидаемым способом, поскольку любой процесс, который создает функции для обучения (например, One Hot Encoding), также должен работать для предсказания модели, чтобы она чего-то стоила. - person demongolem; 08.05.2020
comment
Вы правы, но, к сожалению, я не знаю о правильной реализации. Если вы найдете его в пакете с открытым исходным кодом, не стесняйтесь поделиться - person Mischa Lisovyi; 10.05.2020