Machine learning LSTM神经网络的错误预测

Machine learning LSTM神经网络的错误预测,machine-learning,deep-learning,keras,lstm,tensor,Machine Learning,Deep Learning,Keras,Lstm,Tensor,我是LSTM的新手,我正在尝试训练一个模型来预测给定一年数据的IP流量。数据集由Kaggle提供 这就是网络的建模方式 model = Sequential() model.add(LSTM(128,input_shape=(trainX.shape[1], trainX.shape[2]), activation='relu',return_sequences=True)) model.add(LSTM(32, return_sequences=True)) mo

我是LSTM的新手,我正在尝试训练一个模型来预测给定一年数据的IP流量。数据集由Kaggle提供

这就是网络的建模方式

model = Sequential()
model.add(LSTM(128,input_shape=(trainX.shape[1], trainX.shape[2]),
               activation='relu',return_sequences=True))
model.add(LSTM(32, return_sequences=True))
model.add(LSTM(10))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=10, batch_size=64, verbose=2)
您可以在我的内核中找到所有细节

这是我在10个时代之后得到的


蓝色表示实际值,红色表示预测值。

不幸的是,对于这个问题没有通用的解决方案,但很明显,您的模型不适合数据

我有什么建议

  • 减少模型中隐藏层的数量

  • 增加历代的数量

  • 将优化器函数更改/尝试为“sgd”或“RMSprop”

  • 增加批量

  • 并添加正则化和退出

正如我所说,没有通用的解决方案,所以,从上面尝试一些东西,它可能会帮助你


另外,检查输出层的激活功能正如建议的那样,规范化输入数据

不幸的是,这个问题没有通用的解决方案,但很明显,您的模型不适合数据

我有什么建议

  • 减少模型中隐藏层的数量

  • 增加历代的数量

  • 将优化器函数更改/尝试为“sgd”或“RMSprop”

  • 增加批量

  • 并添加正则化和退出

正如我所说,没有通用的解决方案,所以,从上面尝试一些东西,它可能会帮助你


另外,检查输出层的激活功能正如建议的那样,规范化输入数据

这里有三件事:1。使用
sklearn
中的
standardscaler
等标准化目标。2.从LSTM的第一层删除
relu
,因为这实际上可能会损害训练。3.训练时间更长——
LSTM
更喜欢更长时间的训练。使用
sklearn
中的
standardscaler
等标准化目标。2.从LSTM的第一层删除
relu
,因为这实际上可能会损害训练。3.训练时间更长-
LSTM
更喜欢更长的训练时间。