[英]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.