我正试图训练一个 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
在训练数据上包含时间步长?
从错误中可以看出,不能直接拟合和 XGBRegressor
与一个三维形状的阵列。用ML来解决时间序列问题 是 很常见,尽管你必须确保你给回归器提供有意义的特征,以捕获样本之间的时间依赖性。
因此,对于你的特定问题,你可以从创建一个新的特征开始,表明一个样本属于哪个时间步。这样一来,决策树也会学习时间依赖变量在目标变量中的影响。虽然你能添加的特征越有意义越好,所以你也可以考虑加入捕捉其他可能的时间依赖性统计的特征。