时间序列分析 24 DTW (时序相似度度量算法) 中

接上文,
时间序列分析 23 DTW (时序相似度度量算法) 上

DTW解析

    我们已经给出了算法的原理和实现代码。在这一部分,我们将从直观上深度解析一下DTW算法,就以前面所给出的图形中的蓝色A,绿色B序列为例。见下图,
在这里插入图片描述
DTW算法是建立在计算两个序列的距离混淆矩阵的基础上的。图(a)中时序A的值显示在X轴上,时序B的值显示在Y轴上。图(b)显示了最佳对齐方式,连接A,B序列的红线就对应了图(a)中的红点。

关键问题在于我们如何找到这个最佳对齐方式,请见下图
在这里插入图片描述
如何找到这个最佳对齐方式演变成了如何找到上图网格中红点所对应的路径。其中,
P = p 1 , … , p s , … , p k P=p_1,\dots,p_s,\dots,p_k P=p1,,ps,,pk
p s = ( i s , j s ) p_s=(i_s,j_s) ps=(is,js)
这里这个映射关系 P P P被称为变形函数(Warping Function)

我们定义两个序列的时间规范化距离为:
D ( A , B ) = ∑ s = 1 k d ( p s ) ⋅ w s ∑ s = 1 k w s D(A,B)=\frac{\sum\limits_{s=1}^{k}d(p_s)\cdot w_s}{\sum\limits_{s=1}^{k}w_s} D(A,B)=s=1kwss=1kd(ps)ws
这里, d ( p s ) d(p_s) d(ps) i s i_s is j s j_s js之间的距离,而 w s w_s ws是权重系数。
最佳路径就是

arg ⁡ min ⁡ P D ( A , B ) . \mathop{\arg\min}_{P} D(A,B). argminPD(A,B).

前面提到,DTW需要满足边界条件和规则,保证不是部分匹配。
在这里插入图片描述
i 1 = 1 , i k = n ; j 1 = 1 , j k = m i_1=1,i_k=n;j_1=1,j_k=m i1=1,ik=n;j1=1,jk=m

增加窗口条件限制下 ∣ i s − j s ∣ ≤ r , r > 0 |i_s-j_s|\le r, r \gt 0 isjsr,r>0, r r r就是窗口大小
在这里插入图片描述
令最佳路径表示为 g ( ) g() g()

  1. 计算 g ( 1 , 1 ) = d ( 1 , 1 ) g(1,1)=d(1,1) g(1,1)=d(1,1)
  2. 计算第一行 g ( i , 1 ) = g ( i − 1 , 1 ) + d ( i , 1 ) g(i,1)=g(i-1,1)+d(i,1) g(i,1)=g(i1,1)+d(i,1)
  3. 计算第一列 g ( 1 , j ) = g ( 1 , j − 1 ) + d ( 1 , j ) g(1,j)=g(1,j-1)+d(1,j) g(1,j)=g(1,j1)+d(1,j)
    移动到第二行
    g ( i , 2 ) = m i n ( g ( i , 1 ) , g ( i − 1 , 1 ) , g ( i − 1 , 2 ) ) + d ( i , 2 ) g(i,2)=min(g(i,1),g(i-1,1),g(i-1,2))+d(i,2) g(i,2)=min(g(i,1),g(i1,1),g(i1,2))+d(i,2)
    继续保持从左向右,从下向上计算完整个网格
    g ( i , j ) = m i n ( g ( i − 1 , j ) + g ( i , j − 1 ) + g ( i − 1 , j − 1 ) ) + d ( i , j ) g(i,j)=min(g(i-1,j)+g(i,j-1)+g(i-1,j-1))+d(i,j) g(i,j)=min(g(i1,j)+g(i,j1)+g(i1,j1))+d(i,j)
    回溯 g ( n , m ) 到 g ( 1 , 1 ) g(n,m)到g(1,1) g(n,m)g(1,1)即为最佳路径
    DTW算法的时间复杂度为 O ( m ∗ n ) O(m*n) O(mn) m , n m,n m,n 分别为两个序列的长度。
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值