我正在使用DeepAR算法来预测调查响应随时间的进度。我希望模型预测调查进度中的下20个数据点。每次调查都是我训练数据中的时间序列。每个时间序列的长度是进行调查的#天。例如,以下系列表明调查于2011年6月29日开始,最后一次答复是在2011年7月24日收到的(长度为25天)。
{"start":"2011-06-29 00:00:00", "target": [37, 41.2, 47.3, 56.4, 60.6, 60.6,
61.8, 63, 63, 63, 63.6, 63.6, 64.2, 65.5, 66.1, 66.1, 66.1, 66.1, 66.1, 66.1,
66.1, 66.1, 66.1, 66.1, 66.7], "cat": 3}
如您所见,时间序列中的值可以保持不变或增加。训练数据永远不会表明下降趋势。出人意料的是,当我生成预测时,我注意到预测呈下降趋势。当训练数据中没有下降趋势的痕迹时,我想知道模型如何才能学到这一点。对我而言,这似乎是预测中的基本缺陷。有人可以解释一下为什么模型会以这种方式运行吗?我使用以下超级参数构建DeepAR模型。该模型已经过测试,RMSE约为9。如果我更改任何超参数,是否有帮助?任何对此的建议。
time_freq= 'D',
context_length= 30,
prediction_length= 20,
cardinality= 8,
embedding_dimension= 30,
num_cells= 40,
num_layers= 2,
likelihood= 'student-T',
epochs= 20,
mini_batch_size= 32,
learning_rate= 0.001,
dropout_rate= 0.05,
early_stopping_patience= 10
答案 0 :(得分:1)
如果所有时间序列都呈上升趋势,那么学习这一点应该没有问题。如果您的时间序列通常具有上升然后下降的时期,那么即使您预测的示例到目前为止只有上升趋势,该算法也可能会学习到并因此生成类似的模式。 您有多少个时间序列,平均多少时间?
您的所有超级参数看起来都是合理的,在不了解更多数据的情况下很难说要改进什么。如果没有那么多时间序列,则可以尝试增加时期数(也许尝试几百次),并将早期停止时间增加到20-30。