动态时间规整(DTW)
动态时间规整(Dynamic Time Warping,简称 DTW)是一个强大的时间序列分析工具,最初在 20 世纪 70 年代被开发出来,用于比较声波形式的语音和单词识别。它提供了一种传统方法可能忽略的、比较时间序列相似性的独特方式。
在本文中,我将尝试解释 DTW 的基本概念和一些底层理论,然后使用我最喜欢的探索数据语言——Python——给出一个实际示例。
DTW 简介
动态时间规整(Dynamic Time Warping,简称DTW)是一种衡量两个时间序列之间相似性的算法,其核心基于动态规划思想。该算法由日本学者Itakura于20世纪60年代提出,最初应用于孤立词语音识别领域,用于解决不同人发音时语速不一导致的时间轴长度不匹配问题。DTW通过将时间序列进行非线性地“伸长”或“压缩”,从而找到两个序列之间最优的对齐路径,进而评估它们的相似度。
在时间序列分析中,传统相似度度量方法如欧氏距离要求两个序列长度相等且时间点严格对齐,这在很多实际场景中难以满足。例如,同一矿区的植被生长周期在不同年份可能因降水或温度差异而呈现时间上的前移或后移,但整体变化趋势相似。DTW恰好能够处理这种“时间扭曲”现象,因此在遥感时序分析中具有独特价值。
其核心思想是计算时间序列之间相似元素的匹配距离。举个例子:想象两个人说同样一句话,一个人语速快,一个人语速慢。如果你将每句话的声波绘制成图,两个波形在起伏趋势上看起来很相似,但由于语速不同,它们在时间轴上无法完美对齐。如果你尝试用简单的点对点方法(比如欧几里得距离)来比较这两段声波,结果会有失偏颇。