神经网络预测回归任务,输出是具有相同峰值的输入的多因子

数据挖掘 Python 神经网络 rnn lstm
2022-02-28 02:25:13

当我错过了一些细节时,请指出这一点。我为回归制作了一个简单的顺序 LSTM 模型。模型损失为 3.2145e-06。数据在 0 和 1 之间缩放。我尝试了不同的层等变体,但发生了同样的情况,我使用的最简单的模型如下:

from keras.models import Sequential
from keras.layers import LSTM
model = Sequential()
model.add(LSTM(16,return_sequences=True,input_shape=(None,1))
model.add(LSTM(1,activation='sigmoid', return_sequences=True))
model.compile(loss='mae', optimizer='adam', metrics=['mae','mse']) 
history=model.fit(train,train, epochs=10, batch_size=78, shuffle=False)

predicted=model.predict(test)

我的火车数据如下:

在此处输入图像描述

当我比较测试和预测时,预测看起来比测试数据小很多倍,并且显示了准确的峰值。就我而言,我希望这些值很小,因为我使用完全不同的数据(一种异常回归)进行训练,令人惊讶的是峰值是相同的。上面的测试数据图和下面的预测。所以我的问题是为什么会出现峰值,我怎样才能让网络无法检测到峰值并按照训练进行预测?

测试数据

预料到的

编辑:在使用 MAE 作为损失函数和 500 次训练后,我达到了 0.0180 损失。预测看起来像是 mse 预测的镜像(见下文)。在 2000 个 epochs 之后,我达到了 0.0030 的最小值和 th

在此处输入图像描述

在 2000 个 epoch 之后,我达到了 0.0030 的最小值,预测如下所示:在此处输入图像描述

编辑:我的数据应该与 LSTM 一起使用,我需要另一个模型。

0个回答
没有发现任何回复~