深度学习; LSTM样本外预测

时间:2020-03-27 07:17:42

标签: deep-learning time-series lstm forecast

0

我正在尝试通过深度学习LSTM对房价指数进行样本外预测。 我用示例数据(apt_data_sc)进行了代码练习,并使用70%,30%的训练和测试集(split_date是断点)将其拆分。下面的代码是模型的一部分,显示了数据和模型的制作以及拟合过程。

然后,我修改了数据,使要超出样本的待预测部分包括空行,然后重新运行模型。

问题在于样本外模型的验证数据没有任何信息,并且对“ x_val_multi”的预测变为“ nan”。

有人会帮我吗?非常感谢您的提前帮助。如果需要,我可以将完整的代码与数据一起发布。

past_history = 1 
future_target = 1 



x_train_multi, y_train_multi = multivariate_data(apt_data_sc, apt_data_sc[:, 0], 0,
                                                 split_date, past_history,future_target)
x_val_multi, y_val_multi = multivariate_data(apt_data_sc, apt_data_sc[:, 0],
                                             split_date, None, past_history, future_target)

model_multi = Sequential() 
model_multi.add(LSTM(60, return_sequences=True,
                    input_shape=x_train_multi.shape[-2:])) 
model_multi.add(LSTM(30, return_sequences=False,
                    activation='relu')) 
model_multi.add(Dense(y_val_multi.shape[1])) 
model_multi.compile(loss='mean_squared_error', optimizer='adam') 
model_multi.summary()

### model fitting 

TM_RMSE_10 =[]
repeats = 1
for _ in range(repeats):
        model_multi.fit(x_train_multi, y_train_multi, epochs=200,
                batch_size=1, verbose=1, callbacks=callbacks_list, 
                validation_split=0.7, 
                validation_data=(x_val_multi, y_val_multi)) 
        TM_RMSE_10.append(np.sqrt(model_multi.evaluate(x_val_multi, y_val_multi, verbose=True)))
        TM_RMSE_10_Mean = np.mean(TM_RMSE_10, axis = 0)
        MULTI_PREDICT_train.append(model_multi.predict(x_train_multi))
        MULTI_PREDICT_test.append(model_multi.predict(x_val_multi))

0 个答案:

没有答案