例如,給定樣本序列X和比較序列Y,Z:
X:3,5,6,7,7,1
Y:3,6,6,7,8,1,1
Z:2,5,7,7,7,2
是X和Y更相似還是X和Z更相似?
DTW首先會根據序列點之間的距離(歐氏距離)得到壹個序列距離矩陣MM,其中行對應X序列,列對應Y序列,矩陣元素是X序列和Y序列在對應行和列中點到點的歐氏距離:
通過分析時間序列的波動模式,DTW可以得到更好的時間序列分類結果。研究表明,DTW距離測度結合簡單最近鄰在時間序列分類中可以取得比傳統的歐洲距離算法(如SVM、經典多層神經網絡、決策樹和Adaboost)更大的優勢。
DTW進壹步衍生出許多不同的變體,如基奧和帕紮尼提出的基於序列壹階導數的改進,取得了很好的效果;其中壹種簡單的方法叫做復雜度不變距離(CID),它利用壹階導數信息來計算DTW距離,在壹些問題上有突出的效果。
除了DTW,還有其他考慮時間序列的波型算法。例如,葉和提出的Shapelet方法:研究序列中的代表性子序列,並將其分類為Shapelet特征。林等人提出了壹種基於詞典的方法,將序列按照特定的詞典轉換成詞序列,從而進行分類。鄧提出了壹種基於區間的波動特征提取方法。
除了上述方法,聚合算法(將許多不同的算法聚合在壹起)的研究也取得了很大的進展。最近提出的COTE算法聚合了上述幾乎所有不同的分類算法,取得了很好的分類效果。
這類方法都是通過壹定的度量關系來提取相關特征的方法,比如詞袋法。通過找出時間序列中是否存在與已有詞包(序列的外觀)相匹配的特征,用詞來表示壹個序列,然後對詞進行分類。其他基於特征的方法使用類似的方法,例如提取統計數據、基於規則等。,然後通過分類模型進行分類。
1、MLP、FCN、ResNet
MLP的輸入是壹個向量(數組),整個數組的每個元素以全連接的形式逐層加權,得到最終的分類。這種方法是壹種粗糙學習方法,直接學習所有元素的直接線性或非線性相關性,但沒有深入挖掘數組中較好的性能特征,分類效果不好。
FCN用卷積層代替了MLP中的全鏈路層,雷斯網也是如此,只是卷積層被壹維卷積核代替了。
從《用深度神經網絡從零開始的時間序列分類:強基線》可以看出,深度學習方法的效果基本接近甚至超過傳統方法,其中FCN是整體表現最好的。
LSTM FCN的方法比較簡單,就是把輸入分別輸入到LSTM和FCN兩個分支,最後把softmax的兩個輸出分支串聯起來,得到分類結果。在這篇論文中,作者說這種方法取得了比FCN更好的結果。
在其他壹些比賽方案中,也有resnet+LSTM+FC的組合形式。首先通過Resnet的壹維卷積提取相關特征,然後通過LSTM學習壹維特征向量的相關性,進而進行分類。對於不同的問題,可能需要嘗試了解哪壹種更好。
與上述方法相比,BiGRU-CNN實際上並沒有什麽大的改進,就是把LSTM分支換成了雙向的GRU分支。