2016-10-12 2 views
0

Я хочу выполнить задачу кластеризации временного ряда. Скажем, у нас есть четыре данных (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 (пакет mlpy питона), я получил результат следующим образом:

t1-t1: 0 (absolutely) 

t1-t2: 63 

t1-t3: 693 

t1-t4: 84 

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

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

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

ответ

1

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

Zero-One нормализация очень чувствительна к одному останцу

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

+0

Спасибо, за хороший материал. Я изменю метод нормализации от нормировки min-max до Z-нормировки. –