作为Dynamic Time Warping(DTW)的新手,我发现它的Python实现mlpy.dtw没有详细记录。我的返回值有些问题。
关于返回值dist
?我有两个问题:
[Muller07]中描述的标准DTW,使用欧几里德距离 (差值的绝对值)或平方欧几里德距离(如 在[Keogh01]中作为当地成本衡量标准。
对于子序列DTW,该文件说
[Muller07]中描述的子序列DTW,假设长度 y的长度远大于x的长度并使用曼哈顿 距离(差异的绝对值)作为本地成本度量。
相同的所谓“差异的绝对值”对应两个不同的距离指标?
总距离?运行代码段后
dist,cost,path = mlpy.dtw_std(x,y,dist_only = False)
dist
是一个值。 那么每个匹配对之间所有距离的总和是多少?
答案 0 :(得分:2)
是的,mlpy.dtw()
功能没有详细记录。
>>> import mlpy
>>> mlpy.dtw_std([1,2,3], [4,5,6], squared=False) # Euclidean distance
9.0
>>> mlpy.dtw_std([1,2,3], [4,5,6], squared=True) # Squared Euclidean distance
26.0
干杯, 的Davide
答案 1 :(得分:2)
这似乎是文档中的错误。欧几里德距离不是“差值的绝对值”,它是对曼哈顿度量的正确描述。可能作者正在考虑一个维度的情况,如在R中,欧几里得和曼哈顿的指标都是相同的(并且欧几里德度量确实表达了差异的绝对值)。 我不熟悉该库,如果它只对1维对象进行操作,则没有错误,这两个距离度量是等价的
dist
值是最佳时间扭曲的值(以匹配的汇总成本see the algorithm definiton on wikipedia衡量)。实际上它是两个序列之间的最小编辑距离,其中特定编辑的成本以“匹配”对象之间的不相似(距离)表示