【发布时间】:2014-09-09 02:10:57
【问题描述】:
我们希望使用 R 的 dtw 库,以便将某些时间序列数据收缩和扩展为标准长度。
考虑三个具有等效列的时间序列。 moref 的长度(行)为 105,mobig 为 130,mosmall 为 100。我们希望将 mobig 和 mosmall 投影到 105 的长度。
moref <- good_list[[2]]
mobig <- good_list[[1]]
mosmall <- good_list[[3]]
因此,我们计算两个对齐方式。
ali1 <- dtw(mobig, moref)
ali2 <- dtw(mosmall, moref)
如果我们打印出对齐结果是:
DTW alignment object
Alignment size (query x reference): 130 x 105
Call: dtw(x = mobig, y = moref)
DTW alignment object
Alignment size (query x reference): 100 x 105
Call: dtw(x = mosmall, y = moref)
那么正是我们想要的?据我了解,我们需要使用变形函数ali1$index1 或ali1$index2 来缩小或扩大时间序列。但是,如果我们调用以下命令
length(ali1$index1)
length(ali2$index1)
length(ali1$index2)
length(ali2$index2)
结果是
[1] 198
[1] 162
[1] 198
[1] 162
这些是带有索引的向量(可能是指其他向量)。我们可以将其中哪一个用于映射?是不是都太长了?
【问题讨论】:
-
算法从 series1 的索引到 series2 的索引中找到最优的单调递增分配,如下图所示:raw.githubusercontent.com/talcs/simpledtw/master/dtw_vis.png
-
您可以在本文档中查看输入和输出的外观:github.com/talcs/simpledtw
标签: r machine-learning time-series