以下是我想做的事:
我试过:
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,但仍然不太明白如何实现我想要的。还有其他限制重复元素数量的选项吗?我很感谢你的帮助!
发布于 2020-09-11 08:25:15
为了澄清:我们正在讨论由dynamictimewarping.github.io的DTW套件包提供的功能。实际上,这个问题与语言无关(并且可能更适合交叉验证的堆栈交换)。
您发现的模式rabinerJuangStepPattern(4, "c")实际上满足了您的需求:
如果您还没有,请查看dtw.rabinerJuangStepPattern(4, "c").plot()。
不用说,在所有情况下,你得到的都是最优的排列方式,也就是在所有允许的路径中积累的距离最少的一条。
作为另一种选择,您可以考虑使用更简单的asymmetric递归--这是您在上面的第一次尝试--限制了全局扭曲窗口:参见dtw.window和window_type参数。这提供了不同形状(和灵活大小)的约束,这可能适合您的具体情况。
asymmetricP2递归也类似于RJ-4c,但具有更多的约束斜率。
https://stackoverflow.com/questions/63840961
复制相似问题