Скажем, я обучаю модель для обнаружения оттока, и набор данных имеет следующие функции (очень упрощенно). У меня есть марки и девушки, которые зарегистрировались онлайн или по почте.
ID source Gender Churn
1 Online M 1
2 Post M 1
3 Online M 1
4 Online F 0
5 Post F 0
И применяю панды get_dummies
:
ID source_online source_post Gender_M Gender_F
1 1 0 1 0
2 0 1 1 0
3 1 0 1 0
4 1 0 0 1
5 0 1 0 1
Теперь предположим, что я использую StandardScaler
, а затем fit
модель на этих данных и обучаю ее.
Через несколько дней я получаю новые данные из той же базы данных и схемы, и мне нужно спрогнозировать отток. Точно такие же переменные, но на этот раз только мужчины, зарегистрировавшиеся только онлайн.
ID source Gender
1 Online M
2 Online M
3 Online M
Применяю get_dummies
:
ID source_Online Gender_M
0 1 1 1
1 2 1 1
2 3 1 1
Во-первых, StandardScaler
с изученными настройками из обучающего набора не работает с этими невидимыми данными, потому что в нем отсутствуют некоторые dummy variables
. И, конечно же, это не работает с обученной моделью по той же причине.
Есть ли способ обойти это?
В настоящее время у меня есть сотни записей с этой проблемой, потому что в них отсутствует одна переменная, которая присутствовала в обучающем наборе. (В этом упрощенном примере нам не хватает женщин)
OneHotEncoder
требует, чтобы я сначала преобразовал все свои категориальные в числа, например Пол: мужчина / женщина в пол 1/0 и т. Д. Это не очень удобно, а затем я теряю имена столбцов после использованияonehotencoder
, поэтому есть другой требуется дополнительный шаг, чтобы вернуть имена столбцов. Поэтому я остался с pandasget_dummies
и использовал предложения в ссылке @Praneeth. - person SCool   schedule 22.11.2019