Нормализация данных с помощью двоичных и непрерывных переменных для машинного обучения - PullRequest
0 голосов
/ 26 сентября 2018

Имея следующие данные: enter image description here

Я пытаюсь выяснить правильный предварительный процесс нормализации.Некоторые функции являются категориальными функциями, закодированными как «горячее кодирование» (категория ac), некоторые функции представляют время после события, а некоторые представляют версию выпуска.

Я думал об использовании sklearn MinMaxScaler , чтобы нормализовать данные от 0 до 1, но я не уверен, что это правильный подход.

Как вы выбираете подходящий метод нормализации для ваших данных?

1 Ответ

0 голосов
/ 26 сентября 2018

Серебряной пули нет, но применяются некоторые принципы:

  1. Причина нормализации заключается в том, что ни одна особенность не доминирует над градиентом функции потерь.Я думаю, что некоторые алгоритмы лучше справляются с ненормализованными функциями, чем другие, но в целом, если ваши функции имеют совершенно разные масштабы, вы можете столкнуться с проблемами.Поэтому целесообразно нормализовать диапазон от 0 до 1.
  2. Вы хотите максимизировать энтропию ваших функций, чтобы помочь алгоритму разделить примеры.Вы достигаете этого, распространяя значения в максимально возможной степени по заданному диапазону (0-1).Иногда может быть полезно масштабировать некоторые части пространства объектов иначе, чем другие.Например, если существует десять версий, но 6 по существу одинаковы, а остальные четыре сильно отличаются друг от друга, то может иметь смысл масштабировать таким образом, чтобы первые шесть версий были ближе друг к другу, а остальные больше разбросаны.
  3. Пункт 2 означает, что теперь масштабирование является частью вашего тренировочного / обученного алгоритма, имейте это в виду!Если вы выполняете перекрестную проверку, масштабируйте сгибы отдельно или вы обучите часть целого с помощью тестовых данных.
  4. Некоторые алгоритмы (приходит на ум Байесу) не работают с непрерывными значениями вообще, но довольно категоричные ценности.Убедитесь, что вы знаете, с чем работает выбранный вами алгоритм.
...