論文
《Derivative Dynamic Time Warping》
https://www.ics.uci.edu/~pazzani/Publications/keogh-kdd.pdf
DTW用於衡量兩個長度不同的時間序列的相似度的方法。
上圖A中的兩個序列分別表示單詞‘Pen’的兩個語音波形。
上圖B中爲通過實際中兩個波形對齊的點。
DTW算法將時間序列進行延伸和縮短,,使兩者可以達到時間上的對齊。
A = [0, 0, 1, 1, 2, 4, 2, 1, 2, 0]
B = [1, 1, 1, 2, 2, 2, 2, 2, 0]
衡量對齊的標準
兩個序列長度分別爲m,n,構造一個nxm的矩陣網格,矩陣元素(i,j)表示A中第i個元素和B中第j個元素的距離。
路徑用W表示,W的第k個元素定義爲:
標識規整後的兩個序列件的元素映射。
規整代價最小化
這條路徑的選擇需要滿足以下幾個條件。
- 邊界條件:所選路徑必須從左下角開始,右上角結束。
- 連續性:
github 參考源碼
https://github.com/pierre-rouanet/dtw