#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-нормализацию.
Нормализация с нулевым значением единицы очень чувствительна к единичным выбросам
Комментарии:
1. Спасибо за хороший материал. Я изменю метод нормализации с минимальной и максимальной нормализации на Z-нормализацию.