python – mlpy – 动态时间扭曲取决于x?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – mlpy – 动态时间扭曲取决于x?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1780字,纯文字阅读大概需要3分钟。
内容图文
我试图通过DTW获得下面显示的这两个数组之间的距离.
我正在使用提供的Python mlpy包
dist, cost, path = mlpy.dtw_std(y1, y2, dist_only=False)
据我所知,DTW确实照顾了“转移”.另外,从上面可以看出,mlpy.dtw_std()只接受2个1-D数组.所以我希望无论我如何左/右移动我的曲线,函数返回的dist都不会改变.
然而,在将我的绿色曲线向右移动一点之后,mlpy.dtw_std()返回的dist会发生变化!
在转移之前:Python mlpy.dwt_std报告dist = 14.014
转移后:Python mlpy.dwt_std报告dist = 38.078
显然,由于曲线仍然是那两条曲线,我不认为距离会有所不同!
为什么会这样?出了什么问题?
解决方法:
让我重申我的理解,如果我在任何地方出错,请纠正我.我观察到,在你的两个地块中,你的蓝色1D系列保持相同,而绿色则被拉伸.你是如何做到的,你在2013年9月19日9:36的帖子中解释过它.你的前提是,因为(1)DTW’照顾’时移;(2)你正在做的所有事情是延长一个时间序列长度,不影响y值,(推理:)你期望距离保持不变.
[(1),(2)]和[(推理)]之间有一点缺失的联系.也就是说,与映射相对应的单个距离值会随着您更改信号本身而发生变化.这将导致整体距离计算的差异.绘制翘曲路径,成本网格以便自己查看.
让我们看一个过于简单的案例……
让
a =范围(0,101,5)= [0,5,10,15 … 95,100]
和b =范围(0,101,5)= [0,5,10,15 … 95,100].
现在直观地说,你/我希望2个信号之间一一对应(用于DTW映射),并且所有映射的距离都是0,信号看起来相同.
现在如果我们做,b =范围(0,101,4)= [0,4,8,12 … 96,100],
a和b之间的DTW映射仍然会以0映射到b的0开始,并以100的结束映射到b的100(边界约束).此外,由于DTW’负责’时移,我还希望两个信号中的20,40,60和80相互映射. (我没有试过DTWing这两个,从直觉上说,所以请检查.根据允许的步骤模式/全局限制,几乎不可能发生非直观的扭曲,但让我们直观的扭曲易于理解/简单的时刻).
对于剩余的数据点,显然,对应于映射的距离现在是非零的,因此总距离也是非零的.我们的距离/总成本值已从零变为非零值.
现在,当我们的信号过于简单,线性增加时就是这种情况.想象一下,当你拥有现实生活中非单调的信号,并且需要在它们之间找到时间扭曲时,会出现变化.
内容总结
以上是互联网集市为您收集整理的python – mlpy – 动态时间扭曲取决于x?全部内容,希望文章能够帮你解决python – mlpy – 动态时间扭曲取决于x?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。