動態時間規整和歸一化
我正在使用動態時間扭曲來匹配“查詢”和“模板”曲線,並且到目前為止取得了相當大的成功,但我有一些基本問題:
- 我通過評估 DTW 結果是否小於我啟發式得出的某個閾值來評估“匹配”。這是使用 DTW 確定“匹配”的一般方法嗎?如果不是,請解釋…
假設 (1) 的答案是“是”,那麼我很困惑,因為 DTW 結果對 a) 曲線幅度的差異和 b) 查詢向量的長度和“模板”矢量。
我使用的是對稱階躍函數,因此對於 (b),我通過除以 M+N(DTW 矩陣的寬度 + 高度)來歸一化我的 DTW 結果。這似乎有點有效,但它似乎會懲罰距離對角線較遠的 DTW 匹配(即,通過 DTW 矩陣的路徑較長)。對於“標準化”方法來說,這似乎有點武斷。除以通過矩陣的步數似乎具有直觀意義,但根據文獻,這似乎不是這樣做的方法。 2. 那麼有沒有更好的方法來根據查詢和模板向量的大小調整 DTW 結果呢? 3. 最後,如何針對查詢和模板向量之間的幅度差異對 DTW 結果進行歸一化?
事實上,鑑於缺乏可靠的標準化技術(或我缺乏理解),在處理樣本數據以確定定義“匹配”的最佳閾值水平時似乎需要大量的手動工作。我錯過了什麼嗎?
至少據我所知,不存在對此的“一般方法”。此外,無論如何您都在嘗試最小化距離度量。例如,在 DTW 論文的祖父 Sakoe & Chiba (1978)中使用作為兩個特徵向量之間差異的度量。
正如您正確識別的那樣,您需要(通常)具有相同數量的點才能開箱即用。我建議在曲線上使用 lowess() 平滑器/插值器,以使它們首先具有相同的大小。這是“曲線統計”的非常標準的東西。您可以在Chiou 等人中看到一個示例應用程序。(2003);作者在這項工作中並不關心 DTW,但它是如何處理大小不等的讀數的一個很好的例子。
此外,正如您所說,“幅度”是一個問題。老實說,這有點開放。您可以嘗試像Zhang 和 Mueller (2011)提出的曲線下面積方法來解決這個問題,但實際上是為了時間扭曲甚至超範數歸一化(即替換和可以像Tang 和 Mueller (2009)的這篇論文那樣做。我會遵循第二個,但無論如何你也注意到樣本標準化是必要的。
根據數據的性質,您可以找到更多特定於應用的文獻。我個人發現關於目標成對翹曲函數的最小化方法最直觀的。所以要最小化的目標函數是: ,儘管它很不可思議,但整個事情實際上非常簡單:你試圖找到翹曲函數最小化扭曲查詢曲線的不匹配的預期總和到參考曲線(術語) 受制於對該翹曲施加的時間失真的一些歸一化(術語)。這就是 MATLAB 包PACE正在實現的內容。我知道JO Ramsay 等人的 R 包fda存在。這也可能有幫助,但我沒有親自使用它(有點煩人的是,該包方法的標準參考在許多情況下是 Ramsay 和 Silverman 的優秀書籍,Functional Data Analysis (2006) 2nd ed.,你必須搜索400 頁的書,可以找到你想要的東西;至少它還是很好讀的)
您在統計文獻中描述的問題被廣泛稱為“曲線配準”(例如,參見Gasser 和 Kneip (1995)對該問題的早期處理),屬於功能數據分析技術的一般範疇。
(如果我能在網上找到原始論文,則鏈接指向那裡;否則鏈接指向一般數字圖書館。幾乎所有提到的論文都可以免費找到草稿版本。我刪除了我原來的評論被本帖取代。)