我有一个大约400个双变量时间序列的数据集,每个时间序列包含大约80,000个观测值。手动查看之后很明显有些非常相似,所以我想使用DTW(动态时间扭曲)对它们进行聚类。
现在,如果我尝试使用DTW方法创建整个集合的距离矩阵,R告诉我它需要50 GB的RAM(我没有)。是否可以使用for循环(或类似的)分别计算两个时间序列之间的距离?
您建议使用哪种其他距离方法来聚类时间序列?
答案 0 :(得分:0)
如果你天真地做DTW,它是二次的,你的矩阵将有6400000000个元素,因此50 gig
但是如果你只需要距离而不是路径,你可以一次只使用两列,只需160000个元素,小于1兆字节
然而,仍有一些坏消息,空间复杂性不是问题,但时间的复杂性将会扼杀你。
但是,有一些技巧,比如下采样[a]可能有所帮助。
如果您需要更多帮助,请发送电子邮件至[a](我)
的最后一次创作