时间序列 Keras LSTM 回显而不是预测
Posted
技术标签:
【中文标题】时间序列 Keras LSTM 回显而不是预测【英文标题】:Time Series Keras LSTM echoing instead of predicting 【发布时间】:2018-12-28 04:22:59 【问题描述】:我正在尝试训练 LSTM 来预测给定最后 8 个值的时间序列中的下一个值。结果是一个网络在响应当前值而不是下一个值作为其预测时逐渐变得更好。
这是我数据中的一个样本 火车_X [[0.01549889 0.0200023 0.01537059 0.01064907 0.00771096 0.00352831 0.00363095 0.00413133]]
train_y [0.00357963]
测试_X [[0.0275208 0.01929664 0.02047702 0.02625061 0.03220383 0.02612231 0.02551929 0.01510116]]
test_y [0.01250945]
这是我的模型
model = Sequential()
model.add(Activation('relu'))
model.add(LSTM(128, input_shape=(train_X.shape[1], train_X.shape[2])))
#model.add(Dropout(.2))
model.add(Dense(1, activation='relu'))
model.compile(loss='mse', optimizer='adam')
# fit network
history = model.fit(train_X, train_y, epochs=100, validation_data=(test_X, test_y), batch_size=10, verbose=2,
shuffle=False)
所以输出的只是一个非常接近输入数组中最后一个数字的数字。这适用于测试集或训练集上的 model.predict()。看来该模型正在训练错误。提前感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:我自己解决了这个问题。我通过让 RNN 预测超过一天的未来来做到这一点。这增加了损失并消除了我不断陷入的局部最小值。但它确实让它开始根据实际预测进行训练。
【讨论】:
以上是关于时间序列 Keras LSTM 回显而不是预测的主要内容,如果未能解决你的问题,请参考以下文章