【问题标题】:dynamic time warping (DTW) algorithm动态时间规整 (DTW) 算法
【发布时间】:2016-12-03 18:24:25
【问题描述】:

我正在尝试理解所谓的DTW algorithm

以下是什么意思?

for i := 1 to n
   DTW[i, 0] := infinity

和下面的有什么不同?

for i := 1 to m
   DTW[0, i] := infinity

【问题讨论】:

  • 那些“索引零”行和列的定义只是为了在迭代实际的第一行和第一列时不需要向递归公式添加异常(实际上你只能向左看或只向上看)。定义“索引零”行和列时,您还可以查看那些“禁止”单元格,而不添加异常,但您会看到infinity,因此您的算法永远不会选择它们。您可能想看看这个简单的 Python 实现:github.com/talcs/simpledtw
  • 这个项目的文档可以帮助你:github.com/talcs/simpledtw

标签: algorithm


【解决方案1】:

数组填充了非常大的值。它简化了主算法周期中的比较。

在实践中,可以将MaxInt 之类的常量用于整数值(2^31-1 用于int32)或Inf/Math.Infinity(正无穷大)用于浮点数(ieee 754 浮点数标准的特殊值,它大于任何实际值)

编辑:这两个循环填充表格的第一列和第一行。

【讨论】:

  • 我稍微修改了一下问题。我可以要求调整答案吗?
猜你喜欢
  • 1970-01-01
  • 2021-06-14
  • 2019-10-02
  • 2012-07-16
  • 2016-05-05
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多