关于mlpy.dtw包Python中的两个问题?(Two Issues about mlpy.dtw

2019-09-27 09:01发布

作为动态时间规整(DTW)一个新手,我发现它的Python实现mlpy.dtw不是在一个非常详细的记载延伸。 我有一些问题,它的返回值。

关于返回值dist ? 我有两个问题

  • 这里任何错字? 对于标准DTW,文件说

如[Muller07]所描述的,使用欧几里得距离(差的绝对值)或平方欧氏距离(如在[Keogh01])作为本地成本度量标准DTW。

并进行后续DTW,文件说

亚序列DTW如[Muller07]中描述,假设y的长度比x的长度大得多并且使用曼哈顿距离(差的绝对值),为本地成本度量。

相同的所谓的“差的绝对值”对应两个不同的距离度量?

  • 总距离是多少? 运行该代码段后

    DIST,成本,路径= mlpy.dtw_std(X,Y,dist_only =假)

dist是一个值。 因此,它是所有每一个匹配对之间的距离的总和集中?

Answer 1:

是的, mlpy.dtw()函数没有很好的记载。

  • 第一个问题:这里没有错字。 正如你可以在文档中看到,欧氏,欧氏平方和曼哈顿距离关注当地成本的措施 。 在这种情况下,成本度量被定义为两个实数值(一维)之间的距离,请参见在伪成本 http://en.wikipedia.org/wiki/Dynamic_time_warping 。 所以,在这种情况下,曼哈顿距离和欧氏距离是相同的( http://en.wikipedia.org/wiki/Euclidean_distance#One_dimension )。 总之,在标准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
  • 第二个问题:DIST是时间序列x和y之间的非归一化最小距离经纱路径。 它是用非标准化DTW距离。 您可以正常化它通过LEN(X)+ LEN(Y)划分。 见http://www.irit.fr/~Julien.Pinquier/Docs/TP_MABS/res/dtw-sakoe-chiba78.pdf

欢呼声,达维德



Answer 2:

这似乎是在文档中的错误。 欧氏距离不是“差的绝对值”,这是曼哈顿度量的正确描述。 也许笔者在想一维的情况下,与R都欧几里德和曼哈顿的指标是相同的(和欧几里德度量真正反映差的绝对值,然后)。 我不熟悉的图书馆,如果只在一名维对象进行操作,那么就没有错误,这两个距离度量等价

dist值是最好的时间扭曲的值(作为匹配的概括成本计量, 见维基百科上的算法definiton )。 所以它实际上是‘匹配’的对象之间的两个序列,其中特定的编辑的成本在相异度(距离)表示之间的最小编辑距离



文章来源: Two Issues about mlpy.dtw package in Python?