0

我在这里阅读了DTW计算的功能: https ://tslearn.readthedocs.io/en/stable/user_guide/dtw.html

在我看来,以下两行之一出错了:

C[0, 0] = 0.
dist = d(x_i, y_j) ** 2

或者对于 [0] 和 [1] 上的简单 dtw,您不会有 1 作为答案。所以两种可能的更正:

C[0,0] = d(x_0, y_0) ** 2

或者

dist = d(x_{i-1}, y_{j-1}) ** 2

如果我们想概括它,我认为这是第二种解决方案。

4

1 回答 1

0

文本指定伪代码假定时间索引从 1 开始,实际上主循环从 1 开始。因此,该C[0,0] = 0初始化是正确的。成本矩阵的第一个单元格将如下所示:

0   | inf | ...
inf | inf | ...
...

i = 1并且当评估以下行时j = 1

C[i, j] = dist + min(C[i-1, j], C[i, j-1], C[i-1, j-1])

min函数将简单地返回零,并且C[1,1]将简单地具有第一次计算的值,即dist

这是实现 DTW 的常用方法,这也是它在Wikipedia上描述的方式。

于 2021-03-25T22:57:27.477 回答