【发布时间】:2020-02-09 23:26:09
【问题描述】:
我有 10-20k 个不同的时间序列(24 维数据 - 一天中每个小时的一列),我对聚集表现出大致相同活动模式的时间序列感兴趣。
我最初开始实施动态时间规整 (DTW) 是因为:
- 并非我的所有时间序列都完全对齐
- 出于我的目的,两个稍微偏移的时间序列应该被认为是相似的
- 形状相同但尺度不同的两个时间序列应该被认为是相似的
我在使用 DTW 时遇到的唯一问题是它似乎无法很好地扩展——fastdtw 在 500x500 距离矩阵上花费了大约 30 分钟。
还有哪些其他方法可以帮助我满足条件 2 和 3?
【问题讨论】:
-
stats.stackexchange.com 可能更合适...我希望您必须更加具体,天真地这样做不会扩展 20k**2 * (num shifts + 数量级)**2。这听起来有点像基因组学中的“序列比对”,它们的数据非常不同,但它可能会帮助您获得一些想法
-
你用的是什么聚类算法?
-
看看k-Shape clustering,Python 实现here 和here。如果您可以/想要检查其他语言,
dtwclust中的 R 实现是多线程的。 -
也许这里的问题是时间序列的规模,所以我建议减少你的时间序列的维度。看看SAX 它将您的时间序列解压缩为字符串字符并仍然保持行为。之后,您可以简单地使用任何类型的集群 - 当然也可以使用 DTW,它应该会更快
标签: python machine-learning time-series cluster-analysis dtw