DTW(Dynamic Time Warping)の実装についての質問なのですが、以下の実装例を自分で解釈していたのですが
python
1def dtw(vec1, vec2): //vec1とvec2は長さの異なる整数型配列 2 import numpy as np 3 d = np.zeros([len(vec1)+1, len(vec2)+1]) 4 d[:] = np.inf 5 d[0, 0] = 0 6 for i in range(1, d.shape[0]): 7 for j in range(1, d.shape[1]): 8 cost = abs(vec1[i-1]-vec2[j-1]) 9 d[i, j] = cost + min(d[i-1, j], 10 d[i, j-1], 11 d[i-1, j-1]) 12 return d[-1][-1]
まずpythonの文法としてnp.infが何をしているのかが疑問です。d[:]には何が入っているのでしょうか
次にアルゴリズムについて単にcostの中身をd[i,j]に入れればいいのではと思ったのですがmin()を行うことの意味がよくわかりません。
どなたかご教授願えればと思います。
http://sinhrks.hatenablog.com/entry/2014/11/14/232603
https://en.wikipedia.org/wiki/Dynamic_time_warping 英Wiki
などを参考にしています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。