我正在尝试开发一个模型来根据之前的观察预测商品价格的走势。该模型应该学习常见的技术分析模式,例如头肩顶。所以,我认为我应该使用有状态的 LSTM,以便它保持长期状态来跟踪技术分析模式。
另一方面,随着数据集每天更新,即添加新的观察值,我需要模型每天不断学习和预测。所以,为了更新每个新观察的模型参数,我认为我应该使用batch_size=1.
如果我使用最后 N 个观测值来预测接下来的 M 个步骤,则模型的输入张量将具有以下形状(1, N, num_features):
问题:
为什么我们应该
reset_states在训练集训练之后和测试集预测之前?我认为我们不应该因为 TA 模式可能一半在训练集中,一半在测试集中。如果我们重置状态,模型就无法识别这种模式。我可以输入
reset_states不同商品的数据吗?因为我只需要模型来学习 TA 模式而不是商品的特定特征。如果是这样,我怎样才能恢复states对第一个商品的预测?