X和Y矩阵

时间:2018-04-11 13:36:03

标签: python pandas machine-learning neural-network recurrent-neural-network

矩阵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是否应仅包含val1val2或所有3列。例如,预测我们将使用简单的神经网络。

1 个答案:

答案 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]
]