Многие алгоритмы машинного обучения, например нейронные сети, предполагают работу с числами. Поэтому, когда у вас есть категорические данные, вам необходимо преобразовать их. Под категориальным я имею в виду, например:
Марки автомобилей: Audi, BMW, Chevrolet ... Идентификаторы пользователей: 1, 25, 26, 28 ...
Несмотря на то, что идентификаторы пользователей - это числа, они являются просто ярлыками и не означают ничего с точки зрения преемственности, например, возраста или суммы денег.
Итак, базовый подход, похоже, использует двоичные векторы для кодирования категорий:
Audi: 1, 0, 0 ... BMW: 0, 1, 0 ... Chevrolet: 0, 0, 1 ...
Это нормально, когда есть несколько категорий, но кроме этого это выглядит немного неэффективно. Например, если у вас есть 10 000 идентификаторов пользователей для кодирования, это 10 000 функций.
Вопрос в том, есть ли лучший способ? Может быть, один с вероятностями?
источник
Ответы:
Вы всегда можете рассматривать свои идентификаторы пользователей как пакет слов: большинство классификаторов текста могут иметь дело с сотнями тысяч измерений, когда данные редки (многие нули, которые вам не нужно явно хранить в памяти, например, если вы используете сжатые разреженные строки представление для вашей матрицы данных).
Однако вопрос заключается в следующем: имеет ли смысл в конкретной проблеме рассматривать идентификаторы пользователей как функции? Разве не имело бы смысла денормализовать данные о ваших отношениях и использовать пользовательские функции (возраст, местоположение, характеристики сетевого псевдонима, историю транзакций ...) вместо их идентификаторов?
Вы также можете выполнить кластеризацию ваших исходных пользовательских векторов и использовать идентификаторы N ближайших центров в качестве активированных функций вместо идентификаторов пользователей.
источник
Равностороннее кодирование - это, вероятно, то, что вы ищете, когда пытаетесь закодировать классы в нейронную сеть. Он работает лучше, чем кодировка "1 из n", на которую ссылаются другие посты. Для справки могу ли я предложить: http://www.heatonresearch.com/wiki/Equiliate
источник