动态时间扭曲和规范化

时间:2016-10-12 11:53:17

标签: 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看起来像是上升线,所以它应该在其他组中。

但是,如果我使用DTW(python mlpy包)计算t1和其他人之间的距离,我得到的结果如下:

t1-t1: 0 (absolutely)

t1-t2: 63

t1-t3: 693

t1-t4: 84

正如我们所看到的,t1-t3之间的距离远大于t1-t4之间的距离。 我想这是因为t3的振幅比其他振幅大得多。

在这种情况下,在调整DTW之前,为每个时间序列数据使用min-max归一化(即0到1归一化)是否有好的方法? 换句话说,使t1,t2,t3为{0,0,0,0,0,0,0},t4为{0,0,17,...,1}? 然后,DTW按我的意愿返回结果。

很快,我想知道DTW之前规范化任务的适用性。 我是DTW的新手,很抱歉打扰你的基本问题! :)

1 个答案:

答案 0 :(得分:3)

不,你应该进行z标准化。

Zero-One规范化对单个异常值非常敏感

来源http://www.cs.unm.edu/~mueen/DTW.pdf