DTW(Dynamic Time Warping:動的時間伸縮法)で2つの時系列データの類似度を調べる方法をまとめました。
【DTWとは】動的時間伸縮法で2つの時系列データの類似度を調べる
DTW(Dynamic Time Warping)とは、2つの時系列データの類似度を調べることができるアルゴリズムです。
2つの時系列データの各サンプル値間の距離(コスト)を総渡りで計算していき、距離(コスト)が最小となる関係性(経路)を見つます。よって
●サンプル数が異なる時系列データ同士の比較が可能
●時間や位相軸が異なっていても、波形が似ていれば類似度が高くなる
という優れた利点があります。つまり、周期や動きが似ているが、サンプル数が異なる時系列データ同士を比較できます。
【アルゴリズム】類似度の算出(計算例つき)
アルゴリズムを計算例つきで解説します。
● 2つの時系列データ(X, Y)を用意します。ます。
x = [1, 2, 3] y = [2, 3, 4]
● 各サンプル点に対して総当たりで距離を計算し、要素がデータ点同士の距離となる行列D(m × n)を作成します。
D = [[1. 4. 9.] [0. 1. 4.] [1. 0. 1.]]
● D[0][0] からD[m][n]までに通るパスのうち、行列の要素の合計が最小となるパスを探索します。
コストパスの要素の合計がDTW距離となります。
D(0, 0) -> D(1, 0) -> D(2, 1) -> D(2, 2)が最短経路。 よって、1 + 0 + 0 + 1 = 2がDTW距離(類似度)。
コメント