dtw-package 简介

        dtw-package 是 R语言对动态时间规整(DTW)算法的封装。DTW 计算了将 一个时序(query) 与 另一个时序(reference)的整个或部分序列 进行匹配时 时间轴上的扭曲。该算法会输出:① 两个序列经过匹配后的剩余累积距离(remaining cumulative distance)、② 点与点之间的对应关系,即 匹配函数(warping function)。

       在 dtw-package 中:dtw() 函数是整个包的主要入口,dtwDist() 用于在一个时序集合上迭代 dtw,plot.dtw() 是 DTW 对象的绘图方法;dtwWindowingFunctions() 定义了全局限制,stepPattern() 定义了局部限制;proxy::dist()、analogue::distance()、 vegan::vegdist() 等函数可用于自定义构建距离函数和局部代价矩阵。

aami

PhysioBank 是一个记录生理信号的数据库。aami 的格式是 Time-series objects (class ts)。

r语言dist函数怎么用 r语言dwtest函数_字符串

countPaths

         countPaths(d, debug = FALSE) 。其中,d 表示 class dtw 的一个对象,debug 表示是否需要返回中间结果。

       该函数会计算当前匹配问题(包括限制)中所有可能的匹配路径的数量。例子:

r语言dist函数怎么用 r语言dwtest函数_字符串_02

       注意事项:① 路径数量会随着问题大小呈指数型增长。② 使用 windowing 函数时,返回值可能是一个近似结果。③ debug=TRUE 时,函数会返回一个用于计算的矩阵;debug = FALSE 时,函数返回值只是路径数量。

dtw

       该函数是 dtw-package 包的主要入口,用于计算 2 个时间序列之间的动态时间规整,并找到最佳匹配。

r语言dist函数怎么用 r语言dwtest函数_Time_03

dtw 函数参数

x

query 向量,或 local cost matrix (局部代价函数)

y

reference 向量

dist.method

两个点之间的距离函数 / 局部距离函数

若该参数是一个字符串,则将 x、y 与 该字符串对应的方法 一起传给 proxy 包中的 proxy::dist() 函数。

若该参数是一个输入为两个参数的函数,它会对所有 x[i] 和 y[j] 重复调用,从而构建局部代价矩阵。

多变量时序 以及 其他任意距离指标,都可通过提供一个预先计算好的 local cost matrix 来处理,该矩阵的元素 [i,j] 表示 x[i] 和 y[j] 之间的距离。距离矩阵 拥有 n=length(x) 行 和 m=length(y) 列。

step.pattern

一个 stepPattern 对象,用于描述 cost 所允许的 local warping steps(局部限制)。

具体可见 stepPattern() 。

window.type

windowing 函数,用于控制匹配路径的范围(全局限制)。

可以输入一些特定的字符串:

           " none "   :  默认值,无限制。

        " itakura "   :  Itakura parallelogram

 " sakoechiba "   :  围绕主对角线(main diagonal)的一个 band

" slantedband "   : 围绕斜对角线(slanted diagonal)的一个 band

也可以输入一个函数。dtwWindowingFunctions() 中包括一些现有的函数。

keep.internals

保留 累积代价矩阵、输入以及其他内部结构

distance.only

仅计算距离(没有 backtrack,速度更快)

open.begin

传给 window.type

的额外参数。


open.end

实施 open-ended alignment。

Open-end DTW 由 Mori (2006)、Sakoe (1979) 等人提出。

将所有的 query 与 reference 的 头部 进行最佳匹配。

       注:is.dtw(d) 函数用于 检验其参数 d 是否是一个 dtw 类,d 可以是一个任意的 R 对象。

dtw 类 的 对象属性

distance

最小全局距离(没有标准化)

normalizedDistance

若已知 chosen step pattern:根据 path length,对 distance 进行标准化。

N

query 的长度

M

reference 的长度

call

创建本对象的函数调用

index1

x(query) 中 所匹配的 下标

index2

y(reference) 中 被映射的 下标

stepPattern

用于计算的 stepPattern 对象

jmin

若 open.end=TRUE:reference 中匹配的最后一个元素

directionMatrix

若 keep.internals=TRUE:在每个 alignment pair 上要走的方向(在所选的 step pattern 中 产生整数下标的规则)

stepsTaken

从 alignment 的开始到结束 所走的 steps 的 一个 list(在所选的 step pattern 中的 整数下标)。

index1s

与 index1、index2 一样,

但 排除了 multi-step patterns 中的中间步骤

index2s

costMatrix

若 keep.internals=TRUE:累积代价矩阵

query

若 keep.internals=TRUE 且 作为 x 和 y 参数传递:

query 和 reference 时间序列

reference

注:不论是输入还是输出,在 代价矩阵(cost matrix)中,query 元素按行排列(first index)、reference 元素按列排列(second index);它们按照惯例打印,即下标向下和向右增加。

参考文献:

1. Toni Giorgino. Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw Package. Journal of Statistical Software, 31(7), 1-24. doi: 10.18637/jss.v031.i07

2. Tormene, P.; Giorgino, T.; Quaglini, S. & Stefanelli, M. Matching incomplete time series with dynamic time warping: an algorithm and an application to post-stroke rehabilitation. Artif Intell Med, 2009, 45, 11-34. doi: 10.1016/j.artmed.2008.11.007

3. Sakoe, H.; Chiba, S., Dynamic programming algorithm optimization for spoken word recognition, Acoustics, Speech, and Signal Processing, IEEE Transactions on , vol.26, no.1, pp. 43-49, Feb 1978. doi: 10.1109/TASSP.1978.1163055

4. Mori, A.; Uchida, S.; Kurazume, R.; Taniguchi, R.; Hasegawa, T. & Sakoe, H. Early Recognition and Prediction of Gestures Proc. 18th International Conference on Pattern Recognition ICPR 2006, 2006, 3, 560-563 doi: 10.1109/ICPR.2006.467

5. Sakoe, H. Two-level DP-matching–A dynamic programming-based pattern matching algorithm for connected word recognition Acoustics, Speech, and Signal Processing, IEEE Transactions on, 1979, 27, 588-595 doi: 10.1109/TASSP.1979.1163310

6. Rabiner L, Rosenberg A, Levinson S (1978). Considerations in dynamic time warping algorithms for discrete word recognition. IEEE Trans. Acoust., Speech, Signal Process., 26(6), 575-582. doi: 10.1109/TASSP.1978.1163164

7. Muller M. Dynamic Time Warping in Information Retrieval for Music and Motion. Springer Berlin Heidelberg; 2007. p. 69-84. doi: 10.1007/9783540740483_4

dtwDist

        dtwDist(mx, my = mx, ...)  用于计算一组单变量时序之间的 dissimilarity 矩阵。