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))