LSTM模型不会预测高于特定值的值(始终不是同一值)

时间:2018-12-09 20:42:31

标签: python keras time-series lstm rnn

首先感谢您的帮助!

我想创建一个简单的LSTM模型,该模型可以预测下一分钟家庭用电量的值。使用此数据集:

https://archive.ics.uci.edu/ml/datasets/individual+household+electric+power+consumption

到目前为止,我所做的是:

1)标准化数据并创建一个“窗口”,使我的LSTM网络如下所示: enter image description here

从t0-t29开始的30分钟系列,每分钟具有8个功能,并且网络应输出t30房屋的电能消耗。 因此,我的每个样本输入的形状均为[30x8],输出应为[1x1]。到目前为止,一切都很好。

2)我建立了一个简单的LSTM模型,如下所示:

model4 = Sequential()
model4.add(LSTM(1,input_shape=(30, 8)))
model4.add(Dense(1))
model4.compile(loss='mean_squared_error', optimizer='adam')

如您所见,非常简单的多对一模型。我已经对该模型进行了25个时期的训练,由于某种原因,该模型似乎无法预测高于5-5.5的值,如您在此图中看到的: Predictions vs. actual

3)我尝试过:

  • 以不同的方式对数据进行标准化(最小最大或平均标准差)
  • 对所有数据进行归一化,但功耗列与原始值保持一致。 以上均无济于事。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决方案:

我将LSTM层的属性“激活”更改为“无”。 这样,默认的“ tanh”功能不会“破坏”这些值。