X 和 Y 矩阵
X and Y matrices
矩阵 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 列。例如预测我们会使用简单的神经元网络。
当建立一个将在现实世界中实施的模型时,而不仅仅是为了研究目的等...
假设这是一个时间序列问题。您的 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 格式化,它需要是 window 个值,对于一个具有 3 个特征且 window 长度为 3.
的示例,它看起来像这样
[[var1_lag3, var1_lag2, var1_lag1],
[var2_lag3, var2_lag2, var2_lag1],
[var3_lag3, var3_lag2, var3_lag1]
]
矩阵 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 列。例如预测我们会使用简单的神经元网络。
当建立一个将在现实世界中实施的模型时,而不仅仅是为了研究目的等...
假设这是一个时间序列问题。您的 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 格式化,它需要是 window 个值,对于一个具有 3 个特征且 window 长度为 3.
的示例,它看起来像这样[[var1_lag3, var1_lag2, var1_lag1],
[var2_lag3, var2_lag2, var2_lag1],
[var3_lag3, var3_lag2, var3_lag1]
]