【问题标题】:lstm prediction result delay phenomenonlstm预测结果延迟现象
【发布时间】:2018-09-27 02:58:26
【问题描述】:

最近我正在使用 lstm 来预测时间序列。我正在使用 keras 2.0 来构建我的 lstm 模型。它的结构如下:

model = Sequential()
model.add(LSTM(128, input_shape=(timesteps, 1), return_sequences=False, stateful=False)
model.add(Dropout(rate=0.1))
model.add(Dense(1))

我尝试使用这个网络来预测几个时间序列,包括sin(t) 和一个真实的交通流量数据集。我发现对 sin 的预测很好,而对真实数据集的预测就像将最后一个输入值移动一步一样。我不知道这是预测错误还是网络根本没有学习数据集的模式。有没有人得到类似的结果?这种烦人的转变有什么解决办法吗?非常感谢。 以下是我的一些预测:

3 frequencies sin prediction result

real traffic dataset prediction result

【问题讨论】:

    标签: python tensorflow keras time-series lstm


    【解决方案1】:

    这只是您网络的起点,您必须通过尝试各种方式来完成它。

    仅举几例:

    • 尝试不同的窗口长度(输入网络的时间步长)
    • 尝试添加密集层、多个 LSTM 层或更少的 LTSM 节点
    • 尝试具有不同学习率的不同优化器
    • 寻找其他数据点以馈入网络
    • 您有多少数据?您可能需要更多才能获得良好的预测
    • 为 Y 变量尝试不同的偏移量,您需要多少时间步才能预测出您的具体问题?

    名单还在继续……

    【讨论】:

    • 非常感谢您的详细回答。它真的对我有很大帮助。我用谷歌搜索了这个问题很长时间,但没有明确的解决方案。我会尝试上面列出的策略。希望做出一些改进。再次感谢您!
    • @EricYu 你得到正确的预测结果了吗?如果是的话,你能分享一下你为纠正它所做的事情吗?我也得到了类似的结果,但我仍然得到了类似的结果(延迟图)。我正在尝试根据过去 1 年的每日数据预测未来一周的数据。这么多数据足以进行预测吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2018-09-16
    • 2018-07-08
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多