本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处。
关于DTW算法的简介请见我的上一篇博客:时间序列挖掘-动态时间归整算法原理和实现。
DTW采用动态规划来计算两个时间序列之间的相似性,算法复杂度为O(N2)。当两个时间序列都比较长时,DTW算法效率比较慢,不能满足需求,为此,有许多对DTW进行加速的算法:FastDTW,SparseDTW,LB_Keogh,LB_Improved等。在这里我们介绍FastDTW。
1. 标准DTW算法
在DTW中,我们要寻找的是一个归整路径(详见时间序列挖掘-动态时间归整算法原理和实现),如下图所示:
最终我们想要得到的是这条路径经过的所有点的坐标(i,j)对应的X和Y两个时间序列的点Xi和Yj的距离(比如欧几里得距离)之和,亦即我们需要求得代价矩阵最右上角的元素D(i,j)。而根据动态规划的思想: