让我重申一下我的理解,如果我在任何地方出错,请纠正我。我观察到,在您的两个图中,蓝色的一维系列保持不变,而绿色则被拉伸。你是怎么做的,你已经在 2013 年 9 月 19 日 9:36 的帖子中解释了它。您的前提是,因为(1)DTW“照顾”时移,并且(2)您所做的只是纵向拉伸一个时间序列,而不影响y值,(推论:)您期望距离保持不变。
[(1),(2)] 和 [(Inference)] 之间缺少一点联系。也就是说,对应于映射的各个距离值将随着您更改信号集本身而改变。这将导致整体距离计算的差异。绘制扭曲路径,成本网格以亲自查看。
让我们举一个过于简单的案例......
让
a=range(0,101,5)
= [0,5,10,15...95, 100]
和b=range(0,101,5)
= [0,5,10,15...95, 100]。
现在直观地说,您/我希望 2 个信号(对于 DTW 映射)和所有映射的距离为 0 之间的一一对应关系,信号看起来相同。
现在,如果我们使b=range(0,101,4)
= [0,4,8,12...96,100],a 和 b 之间的 DTW 映射仍然会以 a 的 0 开始映射到 b 的 0,并以 a 的 100 结束,映射到 b 的 100(边界约束)。此外,由于 DTW 会“处理”时移,我还希望两个信号中的 20、40、60 和 80 能够相互映射。(我自己没有尝试对这两个进行DTWing,是凭直觉说的,所以请检查一下。根据允许的步骤模式/全局约束,也几乎没有发生非直觉变形的可能性,但让我们使用直观的变形为了便于理解/简单起见的时刻)。
对于剩余的数据点,显然,映射对应的距离现在非零,因此总距离也非零。我们的距离/总成本值已从零变为非零。
现在,当我们的信号过于简单,呈线性增长时,就是这种情况。想象一下当你有现实生活中的非单调信号时会出现的变化,并且需要在它们之间找到时间扭曲。:)
(PS:请不要忘记支持答案:D)。谢谢。