Динамическое искажение и нормализация времени

#time-series

#временные ряды

Вопрос:

Я хочу выполнить задачу кластеризации временных рядов. Допустим, у нас есть четыре данных (t1 ~ t4).

 t1={1,1,1,1,1,1,1}

t2={10,10,10,10,10,10,10}

t3={100,100,100,100,100,100,100}

t4 = {1,5,9,13,17,21,25}
  

Здесь мое намерение в этом примере заключается в том, что я хочу сгруппировать t1, t2, t3 вместе, потому что его форма представляет собой постоянную линию. Однако t4 выглядит как восходящая строка, поэтому предполагается, что она находится в другой группе.

Но, если я вычислю расстояния между t1 и другими, используя DTW (пакет python mlpy), я получу следующий результат:

 t1-t1: 0 (absolutely)

t1-t2: 63

t1-t3: 693

t1-t4: 84
  

Как мы можем видеть, расстояние между t1-t3 намного больше, чем между t1-t4.
Я думаю, это потому, что масштаб амплитуды t3 намного больше, чем у других.

В этой ситуации, является ли хорошим способом использовать нормализацию min-max (т. Е. нормализацию от 0 до 1) Для каждого временного ряда данных перед адаптацией DTW? Другими словами, сделать t1, t2, t3 равными {0,0,0,0,0,0,0}, а t4 равным {0, 0,17,…., 1}? Затем DTW возвращает результат, как я хочу.

Вкратце, я задаюсь вопросом о пригодности задачи нормализации перед DTW. Я новичок в DTW, извините, что беспокою вас основным вопросом! 🙂

Ответ №1:

Нет, вы должны выполнить z-нормализацию.

Нормализация с нулевым значением единицы очень чувствительна к единичным выбросам

Источник http://www.cs.unm.edu /~mueen/DTW.pdf

Комментарии:

1. Спасибо за хороший материал. Я изменю метод нормализации с минимальной и максимальной нормализации на Z-нормализацию.