我一直在机器学习精通网站上研究此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]
答案 0 :(得分:1)
在tutorial的Define 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]
通过这种方式,您可以确保:
您的y
列是pollution
或您想要的任何内容,
您的训练集除y