Введение в преобразование данных

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

Причины трансформации данных

Мы трансформируем функции в первую очередь по следующим причинам:

  1. Обязательные преобразования для совместимости данных. Примеры включают в себя:

    • Преобразование нечисловых функций в числовые. Вы не можете выполнить матричное умножение строки, поэтому мы должны преобразовать строку в некоторое числовое представление.
    • Изменение размера входных данных до фиксированного размера. Линейные модели и нейронные сети прямого распространения имеют фиксированное количество входных узлов, поэтому ваши входные данные всегда должны иметь одинаковый размер. Например, моделям изображений необходимо изменить форму изображений в своем наборе данных до фиксированного размера.
  2. Дополнительные качественные преобразования , которые могут помочь модели работать лучше. Примеры включают в себя:

    • Токенизация или строчные буквы текстовых функций.
    • Нормализованные числовые функции (большинство моделей после этого работают лучше).
    • Разрешение линейным моделям вносить нелинейности в пространство признаков.

Строго говоря, качественные преобразования не обязательны — ваша модель может работать и без них. Но использование этих методов может позволить модели дать лучшие результаты.

Где трансформироваться?

Вы можете применять преобразования либо при создании данных на диске, либо внутри модели.

Трансформация перед тренировкой

В этом подходе мы выполняем преобразование перед обучением.Этот код живет отдельно от вашей модели машинного обучения.

Плюсы

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

Минусы

  • Преобразования необходимо воспроизводить во время прогнозирования. Остерегайтесь перекоса!
  • Любые изменения преобразования требуют повторного создания данных, что приводит к замедлению итераций.

Перекос более опасен в случаях, связанных с онлайн-обслуживанием. При автономном обслуживании вы можете повторно использовать код, генерирующий данные обучения. При онлайн-обслуживании код, создающий набор данных, и код, используемый для обработки живого трафика, почти всегда различаются, что позволяет легко внести перекос.

Трансформация внутри модели

В этом подходе преобразование является частью кода модели. Модель принимает непреобразованные данные в качестве входных данных и преобразует их внутри модели.

Плюсы

  • Легкие итерации. Если вы измените преобразования, вы все равно сможете использовать те же файлы данных.
  • Вам гарантированы одинаковые преобразования во время обучения и прогнозирования.

Минусы

  • Дорогостоящие преобразования могут увеличить задержку модели.
  • Преобразования выполняются для каждой партии.

Существует множество соображений по преобразованию каждой партии. Предположим, вы хотите нормализовать признак по его среднему значению, то есть вы хотите изменить значения признака, чтобы они имели среднее значение 0 и стандартное отклонение 1 . При преобразовании внутри модели эта нормализация будет иметь доступ только к одному пакету данных, а не ко всему набору данных. Вы можете либо нормализовать среднее значение внутри партии (опасно, если партии сильно различаются), либо предварительно вычислить среднее значение и зафиксировать его как константу в модели. Мы рассмотрим нормализацию в следующем разделе.

Исследуйте, очищайте и визуализируйте свои данные

Исследуйте и очистите свои данные, прежде чем выполнять какие-либо преобразования. Возможно, при сборе и построении набора данных вы выполнили некоторые из следующих задач:

  • Изучите несколько строк данных.
  • Проверьте базовую статистику.
  • Исправьте пропущенные числовые записи.

Чаще визуализируйте свои данные. Графики могут помочь обнаружить аномалии или закономерности, которые не ясны из числовой статистики. Поэтому, прежде чем углубляться в анализ, посмотрите на свои данные графически, либо с помощью диаграмм рассеяния, либо с помощью гистограмм. Просматривайте графики не только в начале конвейера, но и на протяжении всего процесса преобразования. Визуализация поможет вам постоянно проверять свои предположения и видеть последствия любых серьезных изменений.