正如标题所述,我正在进行多元时间序列预测。我对这种情况有一些经验,能够在TF Keras中成功设置和训练工作模型。
但是,我不知道处理多个不相关的时间序列样本的“正确”方法。我有大约8000个独特的样品“块”,每个样品的时间步长从800个时间步到30,000个时间步。当然,我无法将它们全部合并为一个单一的时间序列,因为样本2的第一点在时间上与样本1的最后点没有关系。
因此,我的解决方案是将每个样本分别放入一个循环中(效率极低)。
我的新想法是/可以/应该将每个样本的开头填充空的时间步长=到RNN的回顾量,然后将填充的样本连接成一个时间序列吗?这将意味着第一步将具有大部分为0的回溯数据,这听起来像是解决我的问题的另一个“方法”,而不是正确的解决方法。
答案 0 :(得分:2)
主要挑战在于800到30,000个时间步长,但您无能为力。
(samples, timesteps, channels)
-或等效地,(sequences, timesteps, features)
Conv1D
和/或RNN-例如GRU, LSTM
。每个人都可以处理可变的时间步长 channels
维(维度2)进行馈送。但是绝不要沿时间序列维度进行连接,因为这暗示着因果连续性不存在。strides > 1
的CNN来降低维度,然后将其输出馈送到RNN。CuDNNLSTM
或CuDNNGRU
,因为它们快10倍 注意:上面的“样本”,在机器学习中,是指独立的示例/观察结果,而不是测量的信号数据点(称为{{ 1}})。
下面是一个适合时间序列的模型的基本代码:
timesteps