簡體   English   中英

長時間序列的R動態時間扭曲

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM