【时间序列】DTW算法详解
作者?| 追光者
研究?| 機器學(xué)習(xí)與時間序列
出品 | AI蝸牛車
1.DTW
1.1 時序相似度
在時間序列數(shù)據(jù)中,一個常見的任務(wù)是比較兩個序列的相似度,作為分類或聚類任務(wù)的基礎(chǔ)。那么,時間序列的相似度應(yīng)該如何計算呢?
“經(jīng)典的時間序列相似性度量方法總體被分為兩 類: 鎖步度量(lock-step measures) 和彈性度量(elastic measures) . 鎖步度量是時間序列進行 “一對一”的比 較; 彈性度量允許時間序列進行 “一對多”的比較.
——《時間序列數(shù)據(jù)挖掘的相似性度量綜述》
”最簡單的相似度計算方法可能是計算兩個時間序列的歐氏距離。歐氏距離屬于鎖步度量
假設(shè)有兩個時間序列,Q和C,如果直接用歐氏距離計算相似度的話,如果存在時間步不對齊,序列長短不一等問題...
如上圖1所示,如果序列長短不一,或時間步不對齊的時候,歐氏距離是無法有效計算兩個時間序列的距離,特別是在峰值的時候。
圖2則是DTW算法,首先將其中一個序列進行線性放縮進行某種“扭曲”操作,以達到更好的對齊效果,可以存在一對多mapping的情況,適用于復(fù)雜時間序列,屬于彈性度量
1.2 DTW算法
動態(tài)時間規(guī)整在60年代由日本學(xué)者Itakura提出,用于衡量兩個長度不同的時間序列的相似度。把未知量伸長或縮短(壓擴),直到與參考模板的長度一致,在這一過程中,未知序列會產(chǎn)生扭曲或彎折,以便其特征量與標準模式對應(yīng)
首先假設(shè)有兩條序列Q和C,他們的長度分別是n和m
用一個矩陣來對比兩個序列,warping路徑會穿越這個矩陣,warping路徑的第k個元素表示為,橫縱代表的是兩個序列對齊的點
約束條件
1)邊界條件:和,表示兩條序列首尾必須匹配,各部分的先后次序匹配。
2)連續(xù)性: ? 如果且,則必須滿足且。這條約束表示在匹配過程中多對一和一對多的情況只能匹配周圍一個時間步的的情況,也就是不可能跨過某個點去匹配,只能和自己相鄰的點對齊。這樣可以保證Q和C中的每個坐標都在wraping路徑中出現(xiàn)。
3)單調(diào)性: 如果,且,則必須滿足且,表示warping路徑一定是隨時間單調(diào)遞增的。
滿足以上約束條件的warping路徑有很多,所以問題的本質(zhì)是最優(yōu)化問題——找出最優(yōu)warping路徑,數(shù)學(xué)語言表示為:
解法思路是通過動態(tài)規(guī)劃算法,數(shù)學(xué)語言描述為:
時間復(fù)雜度
單調(diào)性與連續(xù)性約束直觀上表示為如下三種可能
1.3 優(yōu)化方法
1.3.1 使用平方距離
原始DTW計算距離使用的是平方根計算,但是在排序任務(wù)中,平方或平方根不會對結(jié)果有影響,但是平方根計算資源消耗大,所以可以改為平方距離
1.3.2 Lower Bounding
顧名思義,這個優(yōu)化方法的主要思想是先通過計算LB(lower bounding)處理掉不可能是最有匹配序列的序列,計算LB的主要有LB_Kim 和 LB_keogh等方法,這里只介紹一下LB_keogh,感興趣可自行查閱資料。
首先上公式
如上圖所示,首先找到找到序列的上包絡(luò)線U和下包絡(luò)線L,計算候選序列超出上下包絡(luò)線區(qū)域的部分之和作為下界。
1.3.3 Early Abandoning
從 K=0 開始逐步計算DTW并且和K后面的LB_keogh部分累加,判斷距離是否大于目前最好的匹配序列,在這個過程中,一旦發(fā)現(xiàn)大于當(dāng)前最好匹配得距離,則放棄該序列停止DTW
1.3.4 Reordering Early Abandoning
如下圖所示,如果要早停的話,從序列的起點按順序計算不一定可以得到最優(yōu)的結(jié)果。所以可以對序列進行排序先。首先對序列進行z歸一化,
除了以上優(yōu)化方法,還有計算卷LB_Keogh時轉(zhuǎn)換Query/Data,級聯(lián)下界(Cascading Lower Bounds)等優(yōu)化方法。
1.4 總結(jié)
優(yōu)點:
1.支持非等長序列
2.支持有斷點序列
缺點:
1.不是一個嚴格的距離度量,因為它不符合三角形不等式,在一個度量空間中,距離必須符合三角形不等式。
2.對噪音敏感,所以需要對DTW的算法進行優(yōu)化,不然時間復(fù)雜度很高
參考
《Searching and Mining Trillions of Time Series Subsequences under Dynamic Time Warping 》——Thanawin Rakthanmanon, Bilson Campana, Abdullah Mueen, Gustavo Batista2 , Brandon Westover1 , Qiang Zhu, Jesin Zakaria, Eamonn Keogh
《時間序列數(shù)據(jù)挖掘的相似性度量綜述》 ——陳海燕, 劉晨暉,孫 博
《時間序列數(shù)據(jù)挖掘中的動態(tài)時間彎曲研究綜述》——李海林,梁葉,王少春
更多精彩內(nèi)容(請點擊圖片進行閱讀)
公眾號:AI蝸牛車
保持謙遜、保持自律、保持進步
個人微信
備注:昵稱+學(xué)校/公司+方向
如果沒有備注不拉群!
拉你進AI蝸牛車交流群
總結(jié)
以上是生活随笔為你收集整理的【时间序列】DTW算法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: d3 制作条形图_停止制作常见的坏条形图
- 下一篇: chrome插件“京东商品佣金助手”之京