使用动态时间规整(DTW)进行时间序列聚类的方法是什么?
我已经读过有关DTW的方法,该方法可以找到两个时间序列之间的相似性,而它们可能会随时间变化。我可以将这种方法用作k-means等聚类算法的相似性度量吗?
使用动态时间规整(DTW)进行时间序列聚类的方法是什么?
我已经读过有关DTW的方法,该方法可以找到两个时间序列之间的相似性,而它们可能会随时间变化。我可以将这种方法用作k-means等聚类算法的相似性度量吗?
Answers:
千万不能使用k均值的时间序列。
DTW 不会通过均值最小化;k均值可能不会收敛,即使收敛,也不会产生很好的结果。平均值是坐标上的最小二乘估计量。它最小化了方差,而不是任意距离,并且k均值设计用于最小化方差,而不是任意距离。
假设您有两个时间序列。两个正弦波,频率相同,采样周期较长;但它们被偏移。由于DTW会进行时间扭曲,因此可以对齐它们,使其完全匹配,除了开始和结束。DTW将为这两个系列分配一个很小的距离。但是,如果您计算两个系列的均值,则将是平坦的0-它们会抵消。平均也不会做动态时间规整,并失去所有DTW得到了价值。在这样的数据上,k均值可能无法收敛,结果将毫无意义。实际上,仅应在方差(=平方欧几里得)或某些等效情况下使用K均值(如余弦,在L2归一化数据上,其中余弦相似度为2 -等于平方欧几里德距离)
取而代之的是,使用DTW计算距离矩阵,然后运行分层聚类,例如单链接。与k均值相比,该序列甚至可能具有不同的长度。
是的,您可以使用DTW方法对时间序列进行分类和聚类。我已经编译了以下资源,这些资源都专注于这个主题(我最近回答了一个类似的问题,但不在此站点上,因此为了大家的方便我在这里复制内容):
Petitjean等人提出了一种最新的DTW重心平均(DBA)方法。平均时间序列。在另一篇论文中,他们从经验和理论上证明了如何将其用于用k均值聚类时间序列。作者在GitHub上提供了一个实现(代码的链接)。
1 F. Petitjean,G. Forestier,GI Webb,AE Nicholson,Y. Chen和E. Keogh,“时间序列的动态时间扭曲平均可以实现更快,更准确的分类”,2014 IEEE国际数据挖掘会议,深圳,2014年。
2 F. Petitjean,P.Gançarski,通过平均来总结一组时间序列:从Steiner序列到紧凑的多重比对,《理论计算机科学》,第414卷,2012年第1期
动态时间扭曲比较可能实现或可能无法实现的已实现数据点。一种更严格的方法是通过称为望远镜距离的度量来比较时间序列的分布。
关于该指标的最酷的事情是,通过拟合一系列二进制分类器(例如SVM)来进行经验计算。
有关简要说明,请参见this。
对于聚类时间序列,它的表现优于DTW;参见原始论文的表1 [1]。
[1] Ryabko,D.和Mary,J.(2013)。时间序列分布之间的基于二进制分类的度量及其在统计和学习问题中的使用。机器学习研究杂志,14(1),2837-2856。
是。天真的和可能缓慢的方法可能是
n! / k! / (n-k)!
。这些就像潜在的中心。我用它来做一个小项目。这是我有关时间序列聚类的存储库,以及与此有关的其他答案。