Производственные системы ML: когда трансформировать данные?

Необработанные данные должны быть спроектированы (преобразованы). Когда следует преобразовывать данные? Грубо говоря, вы можете выполнять разработку функций в течение любого из следующих двух периодов:

  • Перед обучением модели.
  • Пока тренируем модель.

Преобразование данных перед обучением

В этом подходе вы выполняете два шага:

  1. Напишите код или используйте специализированные инструментыдля преобразования необработанных данных.
  2. Сохраните преобразованные данные где-нибудь, чтобы модель могла их принять, например на диске.

Преимущества

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

Недостатки

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

Преобразование данных во время обучения

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

Преимущества

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

Недостатки

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

Преобразование данных для каждого пакета может оказаться сложной задачей. Например, предположим, что вы хотите использовать нормализацию Z-показателя для преобразования необработанных числовых данных. Нормализация Z-показателя требует среднего и стандартного отклонения признака. Однако преобразования в каждом пакете означают, что у вас будет доступ только к одному пакету данных , а не ко всему набору данных. Таким образом, если партии сильно различаются, Z-показатель, скажем, -2,5 в одной партии не будет иметь того же значения, что -2,5 в другой партии. В качестве обходного пути ваша система может предварительно вычислить среднее и стандартное отклонение для всего набора данных, а затем использовать их в качестве констант в модели.