使用 Python 的梯度提升 - 一般问题

Gradient Boosting using Python - General Question

我想达到的目标。

我的数据格式如下。每日天然气价格结算。 A 列:2018 年 12 月至 2026 年 12 月的各行 B 列:2018 年 12 月至 2026 年 12 月的天然气开盘价 C 列:2018 年 12 月至 2026 年 12 月的先前天然气价格。

我想在 Python 中使用梯度提升算法来预测 2026 年 12 月以后的价格,但我认为通常算法的输出 returns 实施 D 矩阵和后续命令后的某种数组随后 运行 再执行几个步骤即可得出散点图。

问题。

使用数组(生成的数据)我不知道接下来应该做什么来预测 2026 年 12 月及以后,因为我的散点图可能只采用训练和测试数据集并做出预测,但未来几年呢?我感兴趣。

如果您没有 2026 年以后的数据,那么您将无法知道您的模型在那些年的表现如何(这是同义反复。)

我认为在这种情况下您可以做的一件事是根据数据的日期时间索引对训练、验证和测试拆分进行加权。通过在训练中阻止模型 "seeing the future",您可以很好地了解目标的可预测性,在训练后测量模型在 "future" 保留数据上的性能。据推测,作为模型的维护者,您会在新的年份数据可用时更新您的预测(并迭代训练)。

我想我还应该指出,您没有分享一个令人信服的理由,为什么只有 xgboost 可以解决这个问题。对于可能投入生产的模型,我鼓励您 运行 一些回归或更便宜的算法并比较性能。如果您还没有查看一些模型选择工具,我认为您值得一试!一个简单的开始是 gridsearchhttps://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html