[英]R dynamic time warping for long time series
我正在尝试计算很长时间序列的dtw距离,但是出现一个错误,表明我无法为矩阵分配内存。
这是我的工作:
library(dtw)
set.seed(1234)
N <- 300000
x <- rnorm(N)
y <- rnorm(N)
dtw(x,y,distance.only=TRUE)$distance
Error: cannot allocate vector of size 670.6 Gb
是否有另一种无需分配那么多内存即可计算dtw距离的方法?
我不知道这个包裹,但是从包裹的配套文件中您可以找到:
更大的问题可以通过近似策略来解决,例如,计算下采样时间序列之间的初步一致性(Salvador和Chan 2004); 索引(Keogh and Ratanamahatana 2005); 或将其中一个序列分成多个块,然后迭代子序列匹配。
后一种选项可以通过以下方式实现:
lapply(split(y,1:100), ## I split y in 100 chnucks
function(z)dtw(x,z,distance.only=TRUE)$distance)
PS:这里的问题更大,这意味着您遇到的问题超过了8000×8000点(接近虚拟内存限制)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.