Как правильно создать фиктивные переменные с пандами из столбца с большим количеством категорий? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть набор данных, который содержит более 5000 строк в наборе поездов и 4000 строк в тестовом наборе.В одном из этих столбцов у меня есть несколько значений для каждой ячейки, разделенных запятой, и проблема в том, что, когда я хочу применить фиктивные переменные к этому столбцу для всего набора данных (объединение и обучение), это занимает огромное количество времени., поскольку создает огромное количество фиктивных объектов, так как большинство значений появляются только пару раз.У меня есть:

Мой код был:

stars_dummies = train_and_test["stars"].str.get_dummies(sep=',')

, но количество созданных функций просто смешно, а время делать это еще больше.

Первые 5 строкмой набор тестов в столбце «звезды»:

Роб Корддри, Крейг Робинсон, Кларк Дьюк
Энн Хэтэуэй, Каллум Блю, Джули Эндрюс
Майлз Теллер, Дж. К. Симмонс, Мелисса Бенуа
Видья Балан, Парамбрата Чаттерджи, Индрана Санчес
Кан-Ву Ким, Чже-Хён Чо, Си-Йон Парк

Вот мои вопросы:

  • Есть лии эффективный способ создания фиктивной переменной только на соответствующие значения?Я думал предоставить только фиктивные переменные значениям в наборе тестов, которые также находятся в наборе поездов более 2 раз.

  • Правильно ли создавать фиктивные переменные таким образом, чтобы избежать обучения ненужным фиктивным функциям, которые после не содержатся в нашем тестовом наборе?Если да, что будет эффективным кодом для этого?

  • Как вы думаете, есть ли лучший способ извлечения фиктивных объектов в столбцах со значениями из нескольких ячеек с очень низкой частотой, чтобы правильно применять алгоритмы машинного обучения?

Заранее спасибо за помощь !!

...