Pythonライブラリ「DTW」で動的時間伸縮法を実装し、サンプル数が異なる時系列データ同士の類似度を算出します。
【PYthon】DTW(動的時間伸縮法)の実装
DTW(Dynamic Time Warping)とは、2つの時系列データの類似度を調べることができるアルゴリズムです。
2つの時系列データの各サンプル値間の距離(コスト)を総渡りで計算していき、距離(コスト)が最小となる関係性(経路)を見つます。よって
●サンプル数が異なる時系列データ同士の比較が可能
●時間や位相軸が異なっていても、波形が似ていれば類似度が高くなる
という優れた利点があります。つまり、周期や動きが似ているが、サンプル数が異なる時系列データ同士を比較できます。
【Python】DTW(動的時間伸縮法)でサンプル数が異なる時系列データの類似度計算
Pythonライブラリ「DTW」で動的時間伸縮法を実装し、サンプル数が異なる時系列データ同士の類似度を算出します。
今回は「DTW」 or「fastdtw」モジュールを使って実装します。
【dtw】実装例
インストール
pip install dtw
サンプルコード
「acc_cost_matrix」のヒートマップを見ると、y=0.0に対して、x=0,1が結ばれています。
このように1点に複数点が結ばれるため、サンプル数が異なっている時系列データ間の類似度を算出できます。
【fastdtw】実装例
インストール
pip install fastdtw
コメント