首页 > 解决方案 > LSTM 时间序列输出与实际数据不匹配

问题描述

我在 Keras 中使用 LSTM 模型来预测时间序列数据。我使用 MinMaxScaler 来规范化数据并创建类似于此代码的模型。

sc = MinMaxScaler()
train_sc = sc.fit_transform(train)
test_sc = sc.transform(test)

X_train = train_sc[:-1]
y_train = train_sc[1:]

X_test = test_sc[:-1]
y_test = test_sc[1:]

X_train_t = X_train[:, None]
X_test_t = X_test[:, None]

K.clear_session()
model = Sequential()
model.add(LSTM(12, input_shape=(1, 1)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train_t, y_train,epochs=200, batch_size=1, verbose=1)

y_pred = model.predict(X_test_t)

real_pred = sc.inverse_transform(y_pred)
real_test = sc.inverse_transform(y_test)

输出显示如下图。当将测试值放入 model.predict() 时,它会显示预测值。所以,我认为预测值应该与下表中的下一个测试值进行比较。

在此处输入图像描述

图片显示预测值与实际值不符。它看起来像从输入到显示的输出复制值。如何解决?

标签: pythontensorflowkeraslstm

解决方案


推荐阅读