DTW (Динамическое выравнивание по времени) требует предварительной нормализации?

Вопрос или проблема

Я использую DTW из mlpy, чтобы проверить схожесть между временными рядами.

Нужно ли нормализовать ряды перед их обработкой с помощью DTW? Или он в чем-то терпим и я могу использовать ряды как есть?

Все временные ряды хранятся в DataFrame Pandas, каждый в одном столбце. Объем менее 10k точек.

DTW часто использует расстояние между символами, например, расстояние Манхэттена $(d(x, y) = {\displaystyle |x-y|} $). Независимо от того, являются ли символы выборками или признаками, их может потребоваться амплитудная (или хотя бы) нормализация. Нужно ли это? Я бы хотел ответить на такой вопрос во всех случаях. Тем не менее, вы можете найти некоторые подсказки в:

Я рад, что вы спросили 😉

В 99% случаев необходимо z-нормализовать.

Хотите узнать почему? Я написал на эту тему руководство на странице 46
http://www.cs.unm.edu/~mueen/DTW.pdf

здесь p2:

Нормализация зависит от схемы шагов – разрешенных переходов и
весов между сопоставленными парами при поиске оптимального пути.
Нормализация затем осуществляется делением расстояния на n, m или n+m
в зависимости от схемы шага и веса наклона [5].

— учитывая, что DTW преодолевает некоторые ограничения более простых мер схожести, таких как евклидово расстояние… Я думаю, ответ на ваш вопрос зависит от библиотеки, которую вы используете – смотрите документацию для вашей выбранной библиотеки и обратите внимание на метрики схожести – некоторые из них все еще являются евклидовой, а некоторые из них определены в другой библиотеке как dtw — только тестирование с фиктивными данными сможет показать необходимость нормализации или ее отсутствие (в зависимости от библиотеки)… Но поскольку все дело в расстоянии, его выбор является определяющим фактором для построения модели, например

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

— похоже, не требует нормализации.

p.s. вы также можете увидеть различия и нюансы алгоритмов

P.P.S. если вы хотите увидеть точное сходство сигналов – используйте некоторые методы свертки, например, как здесь

Ответ или решение

Dynamic Time Warping (DTW) — это мощный инструмент для анализа временных рядов, который позволяет находить схожесть между ними, даже если они имеют различную длину или подвержены временным искажениям. Однако при использовании DTW возникает вопрос о необходимости предварительной нормализации временных рядов.

Нормализация временных рядов перед DTW

  1. Для чего нужна нормализация?
    Нормализация временных рядов, как правило, необходима для устранения влияния различий в амплитудах данных. DTW, используя метрики расстояния, такие как расстояние Манхэттена или Евклидово расстояние, может быть чувствительным к масштабу временных рядов. Без нормализации, временные ряды с более высокой амплитудой будут оказывать доминирующее влияние на результаты анализа.

  2. Рекомендуемый подход
    В большинстве случаев рекомендуется проводить Z-нормализацию (или стандартное отклонение) временных рядов перед применением DTW. Это позволяет привести данные к единой шкале, где среднее значение равно 0, а стандартное отклонение — 1. Таким образом, различия в амплитуде становятся менее значительными, и DTW может более точно сравнивать схожесть паттернов во временных рядах.

  3. Подходы к нормализации

    • Z-нормализация: ( z = \frac{x – \mu}{\sigma} ), где ( \mu ) — среднее значение, а ( \sigma ) — стандартное отклонение временного ряда.
    • Минимально-максимальная нормализация: ( z = \frac{x – \text{min}}{\text{max} – \text{min}} ).
  4. Нужна ли нормализация в каждом случае?
    Несмотря на то, что нормализация полезна в большинстве случаев, некоторые варианты реализации DTW могут быть более устойчивыми к изменениям амплитуды. Возможно протестировать, как DTW работает без нормализации на ваших данных, чтобы определить, есть ли значительное различие в результатах.

  5. Выбор библиотеки
    Некоторые библиотеки могут иметь разные реализации DTW с различными параметрами, которые могут нормально обрабатывать данные с различной амплитудой. Например, перед использованием DTW из библиотеки mlpy, стоит ознакомиться с ее документацией и изучить, как она обрабатывает нормализацию и метрики расстояния.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...