如何决定在 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
模式,它具有以下理想特征:
- 众所周知且常用
- 它是对称的,属性你可以理解地欣赏
- 它是可标准化的,因此您将能够比较不同长度的对齐方式。
其他模式将缺少上述一种或多种特性。
我对使用 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
模式,它具有以下理想特征:
- 众所周知且常用
- 它是对称的,属性你可以理解地欣赏
- 它是可标准化的,因此您将能够比较不同长度的对齐方式。
其他模式将缺少上述一种或多种特性。