Как обрабатывать большие наборы категориальных данных - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в машинном обучении. У меня есть большой набор данных с большим количеством категориальных данных. Данные являются номинальными. Я хочу применять алгоритмы, такие как SVM и дерево решений, с Python и scikit-learn для поиска шаблонов в данных.

Моя проблема в том, что я не знаю, как лучше всего обрабатывать такие данные. Я много читал об One-Hot Encoding. Примеры все довольно простые, как с тремя разными цветами. В моих данных есть около 30 различных категорий. И в этих чертах около 200 разных «ценностей». Если я использую простое кодирование в горячем режиме, фрейм данных становится действительно большим, и я вряд ли смогу использовать какой-либо алгоритм для данных, потому что у меня кончился оперативная память.

Так какой здесь лучший подход? Использовать базу данных sql для закодированных таблиц? Как это делается в «реальном» мире?

Заранее спасибо за ответы!

1 Ответ

0 голосов
/ 04 ноября 2018

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

enter image description here

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

Другой способ решения этой проблемы - использование clipping. Идея отсечения состоит в том, чтобы регистрировать только самые большие категории, например, Все категории, на которые приходится 5% + всех значений, а остальные кодируются как «хвост». Это еще один метод уменьшения размерности.

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