首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从dtw库约束dtw?

如何从dtw库约束dtw?
EN

Stack Overflow用户
提问于 2020-09-11 04:52:06
回答 1查看 241关注 0票数 0

以下是我想做的事:

  • 保持参考曲线不变(只移动和拉伸查询曲线)
  • 限制重复了多少个元素
  • 保持开始和结束都打开

我试过:

代码语言:javascript
复制
dtw(ref_curve,query_curve,step_pattern=asymmetric,open_end=True,open_begin=True)

但是,我不能限制查询曲线的拉伸方式。

代码语言:javascript
复制
dtw(ref_curve,query_curve,step_pattern=mvmStepPattern(10))

它对曲线没有任何作用!

代码语言:javascript
复制
dtw(ref_curve,query_curve,step_pattern=rabinerJuangStepPattern(4, "c"),open_end=True, open_begin=True)

我最喜欢这个,但在某些情况下,它比需要的更能改变查询曲线.

我读过报纸(https://www.jstatsoft.org/article/view/v031i07)和API,但仍然不太明白如何实现我想要的。还有其他限制重复元素数量的选项吗?我很感谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-09-11 08:25:15

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

您发现的模式rabinerJuangStepPattern(4, "c")实际上满足了您的需求:

  1. 它是不对称的,每一步都将引用推进一个步骤
  2. 它的坡度限制在1/2到2之间
  3. 它是"c“类型,因此可以以允许开放开始和开放结束的方式进行规范化。

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

不用说,在所有情况下,你得到的都是最优的排列方式,也就是在所有允许的路径中积累的距离最少的一条。

作为另一种选择,您可以考虑使用更简单的asymmetric递归--这是您在上面的第一次尝试--限制了全局扭曲窗口:参见dtw.windowwindow_type参数。这提供了不同形状(和灵活大小)的约束,这可能适合您的具体情况。

asymmetricP2递归也类似于RJ-4c,但具有更多的约束斜率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63840961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档