如何决定在 DTW 算法中使用哪个 stepPattern

How to decide which stepPattern to use in DTW algorithm

我对使用 DTW 算法的 stepPattern 有点困惑。

不得不承认,一个月前我还不知道这个算法的存在。

所以故事从特定类型的图像比较开始。 正如您在下面看到的,这是我选择从图像中提取 "time" 系列数据的方式。

想法是在播种时获取从所有叉子到第一个叉子的距离。因此,对于两个不同的图像,您有两个具有距离值的不同数组。 这个想法的一个关键点是这两个数组的值是相互对应的。

我的意思是,两个数组的第一个值是从第二个左叉到第一个主叉的距离(如图中编号 1 所示)等等...

通过使用这些值,我通过使用 R package 来使用 DTW 算法。

这是我想听取您的意见的地方。我尝试了两种方法:

A) 不对称

我使用了它,因为正如我从阅读的内容中了解到的那样,如果您有相应的值要检查,则可以使用非对称 stepPattern。将第一张图像的值 1 与另一张图像的值 1 进行比较,将第一张图像的值 2 与另一张图像的值 2 进行比较,依此类推...

首先我运行这个

dist = dtw(F,K1,keep=TRUE,step.pattern = asymmetric)

然后我把它改成了那个

dist = dtw(K1,F,keep=TRUE,step.pattern = asymmetric)

这两个不同的执行返回了不同的距离值 (dist$distance)。我不喜欢那样,但据我所知,结果必须是预期的,因为该方法仅通过 i 值(x 轴)改变(如果我错了请纠正我)。

B) 对称 1

之后我决定 运行 用不同的方式

dist = dtw(F,K1,keep=TRUE,step.pattern = symmetric1)

dist = dtw(K1,F,keep=TRUE,step.pattern = symmetric1)

returns相同距离值(dist$distance).

如您所知,stepPatterns 不止这些。那么我应该根据什么为我的案例选择 stepPattern?

谢谢。

最好的选择可能是 symmetric2 模式,它具有以下理想特征:

  1. 众所周知且常用
  2. 它是对称的,属性你可以理解地欣赏
  3. 它是可标准化的,因此您将能够比较不同长度的对齐方式。

其他模式将缺少上述一种或多种特性。