У меня есть датафрейм с большими категориальными значениями более 1600 категорий, есть ли способ найти альтернативы, чтобы у меня не было более 1600 столбцов.
Я нашел эту интересную ссылку ниже http://amunategui.github.io/feature-hashing/#sourcecode
Но они конвертируются в класс / объект, который я не хочу. Я хочу, чтобы мой конечный результат был в виде фрейма данных, чтобы я мог тестировать на разных моделях машинного обучения? или я могу использовать генетическую матрицу для обучения другим моделям машинного обучения, кроме логистической регрессии или XGBoost?
Есть ли способ, который я могу реализовать?
Ответы:
Одним из вариантов является сопоставление редких значений с «другими». Это обычно делается, например, при обработке естественного языка - интуиция заключается в том, что очень редкие метки не обладают большой статистической силой.
Я также видел, как люди отображают 1-горячие категориальные значения в векторы более низких измерений, где каждый 1-горячий вектор повторно представляется в виде рисунка из многомерного гауссиана. См., Например, документ Deep Knowledge Tracing, в котором говорится, что этот подход мотивирован идеей сжатого зондирования:
БАРАНЮК, Р. Компрессионное зондирование. Журнал обработки сигналов IEEE 24, 4 (2007).
В частности, они отображают каждый вектор длины N на более короткий вектор длины log2 (N). Я сам этого не делал, но думаю, стоит попробовать.
источник
Вы можете прочитать данные и сначала получить список всех уникальных значений ваших категориальных переменных. Затем вы можете поместить один горячий объект кодировщика (например, sklearn.preprocessing.CategoricalEncoder) в свой список уникальных значений.
Этот метод также может помочь в тестировании среды поезда или когда вы читаете свои данные порциями. Я создал модуль Python, который делает все это самостоятельно. Вы можете найти его в этом репозитории GitHub - dummyPy
Краткое руководство по этому вопросу - Как быстро кодировать категориальные переменные в Python?
источник
Обратитесь к этой ссылке (это также связано с категориальной функцией, имеющей довольно много уникальных значений):
https://datascience.stackexchange.com/a/64021/67149
Для встраивания вы можете обратиться по ссылке ниже (не написано мной, но стоит прочитать один раз): https://medium.com/@satnalikamayank12/on-learning-embeddings-for-categorical-data-using-keras-165ff2773fc9
источник
Вы можете выполнить группирование схожих значений, так что значения (или столбцы), которые содержат шаблон ближайшего значения (или имеет очень похожий), могут быть заменены одним значением (или столбцом), и, таким образом, ваши 1600 значений могут быть сведены к 400 (или даже Меньше).
Ex. для таких значений, как (облачные как - облака Нимба, моросящий дождь, небольшой дождь, дождь, сильный дождь можно преобразовать в (небольшой дождь, дождь, сильный дождь).
источник