动态时间扭曲和归一化

Min*_*hoy 1 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}
Run Code Online (Sandbox Code Playgroud)

在这里,我在这个例子背后的意图是我想把 t1、t2、t3 组合在一起,因为它的形状是一条恒定的线。但是,t4 看起来像上升线,所以它应该在其他组中。

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

t1-t1: 0 (absolutely)

t1-t2: 63

t1-t3: 693

t1-t4: 84
Run Code Online (Sandbox Code Playgroud)

我们可以看到,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 的新手,很抱歉打扰您的基本问题!:)

小智 6

不,您应该进行 z 归一化。

零一归一化对单个异常值非常敏感

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