关于如何构造 LSTM 输入数据的建议

Advice on how to structure LSTM input Data

我建立了模型来预测特定股票的价格。我有这只股票过去三年的所有每小时蜡烛图数据,以及其他功能。

现在,输入向量的形状是 [206,72,9]。 72是三天,9是特征数。

我的第一个问题是,对于第二个维度,是否存在最佳数量的蜡烛? [618,24,9] 会改善结果吗?

我的第二个问题是,现在数据[1,2,3,4,5,6]作为[1,2,3],[4,5,6]传入,不包含重叠的时间。将其更改为 [1,2,3],[2,3,4],[3,4,5],[4,5,6] 是否也可能改善结果?

问题一:最优量就像任何模型超参数一样,需要自己去寻找。每个模型和每个数据都不同,不可能有现成的答案。

但总的来说:

  • 太短:数据不够,学不会
  • 太长:可能是处理太多而收获甚微(甚至损失)

问题 2:是的,使用滑动 windows 会有所改进,因为您有更多数据可以更好地概括。 (除非你的原始数据集已经足够长了)

让我试着同时回答你的两个问题。

更多的数据(在更大的时间步长和重叠序列方面)可能可能改善结果——但是在某些情况下,太多的数据也可能是有害的根据您的预测。

使用 LSTM 模型进行时间序列预测的缺点之一是它们往往会将先前时间步长的太多波动性带入后续预测 - 这可能使该模型不适合分析趋势数据 - 他们最适用于高度波动的时间序列。因此 - 在回答您的问题时 - 数据过多可能与数据不足一样糟糕 - 这完全取决于所分析的时间序列。

在这方面,你应该考虑你的股票的价格走势。如果它是高度波动的股票,例如一只小盘股,那么 LSTM 模型可能效果很好。但是,如果是大盘股,或者随着时间的推移数据有明显趋势的股票,那么 LSTM 可能被证明是不合适的。

您可能会发现 the following article 关于使用 LSTM 预测石油使用价格 - 很明显,随着数据的强劲趋势,LSTM 被证明太不稳定而无法有效预测。