多变量,多步骤LSTM时间序列预测

时间:2020-06-06 14:14:14

标签: python machine-learning deep-learning prediction forecast

我一直在机器学习精通网站上研究此tutorial,以便实现多变量和多步骤的代码。由于代码太大,因此您可以在以下位置找到实现和数据集:https://github.com/HudaBou/Pollution/blob/master/Pollution-Code.ipynb

如何确定要预测“污染”列而不是其他列?我是python的新手,这让我感到困惑。

我想知道这是否是我们定义代码的一部分:

# invert scaling for forecast
pred_scaler = MinMaxScaler(feature_range=(0, 1)).fit(dataset.values[:,0].reshape(-1, 1)) 
inv_yhat = pred_scaler.inverse_transform(yhat)
print(inv_yhat.shape)
# invert scaling for actual
inv_y = pred_scaler.inverse_transform(test_y)
print(inv_y.shape)

由于运行这部分代码仅从6中选择了第一个预测(t + 1),所以我是否弄错了? 代码:

inv_yhat = inv_yhat[:,0]
inv_y=inv_y[:,0]

1 个答案:

答案 0 :(得分:1)

tutorialDefine and Fit Model部分中,您发现以下代码:

train_X, train_y = train[:, :-1], train[:, -1]
test_X, test_y = test[:, :-1], test[:, -1]

在这里,您看到y列是最后一个-1列。一种更清晰的方法是执行类似的操作

col_to_predict = 'pollution'
train_X, train_y = train.drop(columns=[col_to_predict]), train[col_to_predict]

通过这种方式,您可以确保:

  1. 您的y列是pollution或您想要的任何内容,

  2. 您的训练集除y

  3. 外,还包含所有变量