矩阵X是否包含想要预测(Y)的列?
我们有这样的数据框:
val1 val2 val3
126.25 9.343 59.1
131.75 8.359 70.2
102.5 24.671 16.3
110.5 5.015 29.0
101.25 12.015 13.7
140.5 16.015 54.9
要预测的列是val3。因此val3将为Y
,我想知道X
是否应仅包含val1
和val2
或所有3列。例如,预测我们将使用简单的神经网络。
答案 0 :(得分:0)
构建将在现实世界中实施的模型,而不仅仅是用于研究目的等...
假设这是一个时间序列问题。您的X数据应仅包含预测时模型可用的信息。示例..如果预测下个月的销售额,您的算法将不具有该月可用的实际销售数量,因此不应包括在内。但是,它可以访问之前月的销售数字。因此可以使用目标变量的滞后。
df["lag_1"] = df["val3"].shift(1)
df["lag_2"] = df["val3"].shift(2)
df["lag_3"] = df["val3"].shift(3)
然后只需删除这将产生的NA,您就可以将3个新功能输入网络。
如果这不是时间序列,那么我只是说不,你不应该包括目标。网络将使用该信息并为您提供一个不太现实的完美预测。
修改强> 对你的问题......
我上面描述的格式仍将针对标准神经网络进行格式化。要格式化RNN,它需要是一个值的窗口,对于一个具有3个特征和窗口长度为3的示例,它看起来像这样。
[[var1_lag3, var1_lag2, var1_lag1],
[var2_lag3, var2_lag2, var2_lag1],
[var3_lag3, var3_lag2, var3_lag1]
]