時間序列的搜索
來自專欄數學人生73 人贊了文章
時間序列的搜索
在之前的時間序列相似度演算法中,時間戳都是一一對應的,但是在實際的場景中,時間戳有可能出現一定的偏移,但是兩條時間序列卻又是十分相似的。例如正弦函數 和餘弦函數 ,只是平移了 個長度而已。本文將會介紹一些基於形狀的時間序列的距離演算法,並且介紹如何在給定時間序列的情況下,在時間序列資料庫中尋找相似的時間序列。
基於動態規劃的相似度計算方法
DTW 的經典演算法
基於動態規劃的相似度計算的典型代表就是 DTW(Dynamical Time Warping )和 Frechet 距離。在這裡將會主要介紹 DTW 演算法。詳細來說,DTW 演算法是為了計算語音信號處理中,由於兩個人說話的時長不一樣,但是卻是類似的一段話,歐幾里德演算法不完全能夠解決這類問題。在這種情況下,DTW 演算法就被發展出來。DTW 演算法是為了計算兩條時間序列的最佳匹配點,假設我們有兩條時間序列 和 ,長度都是 ,並且 和 。首先我們可以建立一個 的矩陣, 位置的元素是 ,這裡的 dist 可以使用 範數。其次,我們想找到一條路徑,使得這個矩陣的累積距離最小,而這條路則是兩條時間序列之間的最佳匹配。在這裡,我們可以假設這條路徑是 ,其中 的每個元素表示時間序列 中的第 個元素和時間序列 中的第 個元素之間的距離. i.e. 。
現在我們需要找到一條路徑使得
這條路徑就是動態規劃的解,它滿足一個動態規劃方程:對於 ,有
其初始狀態是 最終的取值 就是我們需要的解,也就是兩條時間序列的 DTW 距離。按照上面的演算法,DTW 演算法的時間複雜度是 。特別地,
- 如果 時,則 表示最後的距離;
- 如果 時,則 表示最後的距離。
- 如果 時,則 表示最後的距離。
Remark.
DTW 演算法不滿足三角不等式。例如: 則
DTW 的加速演算法
某些時候,我們可以添加一個窗口長度的限制,換言之,如果要比較 與 的話,i 與 j 需要滿足 這裡的 表示窗口長度。因此演算法的描述如下:
初始條件和之前一樣。
這裡的 取值範圍是:對每一個 需要 滿足
相似時間序列的搜索
相似的時間序列的搜索問題一般是這樣的:
Question 1. 給定一條時間序列 和一個時間序列的資料庫 通過某種相似度或者距離計算方法,計算出給定的時間序列 與時間序列資料庫中 中最相似的時間序列。
Question 2. 給定一條時間序列 和一個時間序列的資料庫 以及正整數 從資料庫 中尋找與給定的時間序列 最相似的 條時間序列。
DTW 演算法的下界 LB_Kim
對於兩條時間序列 和 而言,可以分別提取它們的四個特徵,那就是最大值,最小值,第一個元素的值,最後一個元素的值。這樣可以計算出 LB_Kim
可以證明
DTW 演算法的下界 LB_Yi
有學者在 LB_Kim 的基礎上提出了一種下界的計算方法,那就是 LB_Yi,有興趣的讀者可以參見:efficient retrieval of similar time sequences under time warping,1998.
DTW 演算法的下界 LB_Keogh
但是,如果是基於 DTW 的距離計算方法,每次都要計算兩條時間序列的 DTW 距離,時間複雜度是 。於是就有學者研究是否存在 DTW 距離的下界表示,也就是說找到一個合適的下界,Lower Bound of DTW。每次判斷 Lower Bound of DTW 是否小於當前的最小距離,如果下界高於最小距離,就不需要進行 DTW 的計算;否則開始計算 DTW 的值。如果下界的計算速度足夠快,並且下界足夠精準的話,可以大量的壓縮搜索的時間。於是,Keogh 提出了下界的計算方法。
(1)首先定義時間序列 的上下界。i.e. 給定一個窗口的取值 得到
(2)定義公式:
其中,LBKeogh 滿足性質:
對於任意兩條長度為 的時間序列 和 ,對於任意的窗口 有不等式 成立。
所以,可以把搜索的演算法進行加速:
Lower Bounding Sequential Scan(Q) best_so_far = infinity for all sequences in database LB_dist = lower_bound_distance(C_{i},Q) if LB_dist < best_so_far true_dist = DTW(C_{i},Q) if true_dist < best_so_far best_so_far = true_dist index_of_best_match = i endif endif endfor
在論文 Exact Indexing of Dynamic Time Warping 裡面,作者還嘗試將 Piecewise Constant Approximation 與 LB_Keogh 結合起來,提出了 LB_PAA 的下界。它滿足條件
總結
本文初步介紹了 DTW 演算法以及它的下界演算法,包括 LB_Kim, LB_Keogh 等,以及時間序列資料庫的搜索演算法。
推薦閱讀:
※奇葩實驗室:用氣球把蒜蓉麵包送上太空?
※國家到底會不會消失?關於人類的過去和未來,都在這裡了!
※為什麼貓子一直對著人「喵」?
※蛇的品種及防制方法
※內容簡介 |《新發現》2018年5月刊