XGBoost在Python中使用包含时间步长的三维输入?

问题描述 投票:0回答:1

我正试图训练一个 XGBRegressor 在时间序列数据上重塑有时间步长,所以产生的形状为 X_train 可以是 (12345, 5, 10) 如果有12345个样本,10个特征,时间步长为5。

然而,当我们尝试训练 XGBRegressor 使用这样的训练数据。

import xgboost as xgb
xgb = xgb.XGBRegressor()
xgbr.fit(X_train, y_train)

我们得到的错误是

ValueError: ('期待2维的numpy.ndarray, got: ', (12345, 5, 10))

正确的培训方式是什么 XGBRegressor 在训练数据上包含时间步长?

python machine-learning time-series regression xgboost
1个回答
1
投票

从错误中可以看出,不能直接拟合和 XGBRegressor 与一个三维形状的阵列。用ML来解决时间序列问题 很常见,尽管你必须确保你给回归器提供有意义的特征,以捕获样本之间的时间依赖性。

因此,对于你的特定问题,你可以从创建一个新的特征开始,表明一个样本属于哪个时间步。这样一来,决策树也会学习时间依赖变量在目标变量中的影响。虽然你能添加的特征越有意义越好,所以你也可以考虑加入捕捉其他可能的时间依赖性统计的特征。

© www.soinside.com 2019 - 2024. All rights reserved.