论文
《Derivative Dynamic Time Warping》
https://www.ics.uci.edu/~pazzani/Publications/keogh-kdd.pdf
DTW用于衡量两个长度不同的时间序列的相似度的方法。
上图A中的两个序列分别表示单词‘Pen’的两个语音波形。
上图B中为通过实际中两个波形对齐的点。
DTW算法将时间序列进行延伸和缩短,,使两者可以达到时间上的对齐。
A = [0, 0, 1, 1, 2, 4, 2, 1, 2, 0]
B = [1, 1, 1, 2, 2, 2, 2, 2, 0]
衡量对齐的标准
两个序列长度分别为m,n,构造一个nxm的矩阵网格,矩阵元素(i,j)表示A中第i个元素和B中第j个元素的距离。
路径用W表示,W的第k个元素定义为:
标识规整后的两个序列件的元素映射。
规整代价最小化
这条路径的选择需要满足以下几个条件。
- 边界条件:所选路径必须从左下角开始,右上角结束。
- 连续性:
github 参考源码
https://github.com/pierre-rouanet/dtw