【发布时间】:2013-09-24 02:18:48
【问题描述】:
我试图通过 DTW 获取下面显示的这两个数组之间的距离。
我正在使用提供的 Python mlpy 包
dist, cost, path = mlpy.dtw_std(y1, y2, dist_only=False)
我了解 DTW 确实负责“转移”。此外,从上面可以看出,mlpy.dtw_std() 只接受 2 个一维数组。所以我希望无论我如何左/右移动曲线,函数返回的dist 都不会改变。
然而,在我的绿色曲线向右移动一点之后,mlpy.dtw_std() 返回的 dist 发生了变化!
转移前:Python mlpy.dwt_std 报告 dist = 14.014
转移后:Python mlpy.dwt_std 报告dist = 38.078
显然,由于曲线仍然是那两条曲线,我不希望距离不同!
为什么会这样?哪里出错了?
【问题讨论】:
-
你是怎么换档的?你能显示你的代码吗?如果在向量的开头添加“人工”点,问题是这些点也需要被映射,所以最终的 DTW 值会改变。
标签: python algorithm machine-learning pattern-matching data-mining