【问题标题】:How to constrain dtw from dtw-python library?如何从 dtw-python 库中约束 dtw?
【发布时间】:2020-09-11 04:52:06
【问题描述】:

这是我想做的:

  • 保持参考曲线不变(仅移动和拉伸查询曲线)
  • 限制重复的元素数量
  • 保持开始和结束都打开

我试过了:

dtw(ref_curve,query_curve,step_pattern=asymmetric,open_end=True,open_begin=True)

但我无法限制查询曲线的拉伸方式

dtw(ref_curve,query_curve,step_pattern=mvmStepPattern(10))

它对曲线没有任何作用!

dtw(ref_curve,query_curve,step_pattern=rabinerJuangStepPattern(4, "c"),open_end=True, open_begin=True)

我最喜欢这个,但在某些情况下,它会使查询曲线移动得超出需要...

我阅读了论文 (https://www.jstatsoft.org/article/view/v031i07) 和 API,但仍然不太了解如何实现我想要的。还有其他限制重复元素数量的选项吗?非常感谢您的帮助!

【问题讨论】:

    标签: dtw


    【解决方案1】:

    澄清一下:我们正在讨论dynamictimewarping.github.io 上的DTW 套件包提供的功能。这个问题实际上与语言无关(并且可能更适合交叉验证的堆栈交换)。

    您找到的模式rabinerJuangStepPattern(4, "c")实际上确实满足您的要求:

    1. 它是不对称的,每一步都会使参考提前一步
    2. 斜率限制在 1/2 到 2 之间
    3. 它是“c”类型,因此可以通过允许开端和开端的方式进行规范化

    如果您还没有,请查看dtw.rabinerJuangStepPattern(4, "c").plot()

    不用说,在所有情况下,您得到的是最佳对齐,即所有允许路径中累积距离最小的对齐。

    作为替代方案,您可以考虑使用更简单的asymmetric 递归——作为您上面的第一次尝试——受全局 扭曲窗口的约束:请参阅dtw.windowwindow_type 参数。这提供了不同形状(和灵活大小)的约束,可能适合您的具体情况。

    PS:编辑添加asymmetricP2 递归也类似于 RJ-4c,但斜率更受限制。

    【讨论】:

    • 感谢您的详细回答。你是对的,问题与语言无关,我只是不知道如何引用 dtw 包套件..
    • 有window_type的例子吗?我找不到任何
    • 参见例如example(dtwWindow.plot)Also online
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2018-02-11
    • 2016-08-09
    • 1970-01-01
    • 2017-07-07
    • 2021-01-12
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多