独家 | 如何用XGBoost做时间序列预测?

本文详细介绍了如何利用XGBoost解决时间序列预测问题,包括将时间序列转化为有监督学习形式、使用前向验证评估模型,以及具体代码示例。XGBoost在分类和回归任务中表现出色,但在时间序列预测中需通过滑动窗口转换数据,并采用前向验证避免过拟合。通过实例展示了在婴儿出生数预测问题上,XGBoost模型相对于持续性模型的改进。
摘要由CSDN通过智能技术生成

作者:Jason Brownlee

翻译:wwl

校对:王雨桐

本文约3300字,建议阅读10分钟

本文介绍了如何用XGBoost做时间序列预测,包括将时间序列转化为有监督学习的预测问题,使用前向验证来做模型评估,并给出了可操作的代码示例。

针对分类和回归问题,XGBoost是梯度提升算法的一种高效实现。

 

它兼顾了速度和效率,且在很多预测模型任务中表现优异,在数据科学比赛中广受赢家偏爱,如Kaggle。

 

XGBoost也可以用于时间序列预测,尽管要先把时间序列数据集转换成适用于有监督学习的形式。它还需要使用一种专门的技术来评估模型,称为前向推进验证,因为模型评估使用了k-折叠交叉,这会产生有正偏差的结果。

 

在本文中,你将会了解到如何开发应用于时间序列预测的XGBoost模型。

 

完成本教程后,你将知道:

  • XGBoost是用于分类和回归问题的梯度提升集成方法的一个实现。

  • 通过使用滑动时间窗口表示,时间序列数据集可以适用于有监督学习。

  • 在时间序列预测问题上,如何使用XGBoost模型进行拟合、评估、预测。

 

让我们开始吧!

教程概览

本教程分为三个部分,分别是:

一、XGBoost集成

二、时间序列数据准备

三、时间序列预测上的XGBoost

一、XGBoost集成

XGBoost是Extreme GradientBoosting的缩写,是一种高效的随机梯度提升的实现。

 

随机梯度提升算法(或者叫gradient boosting machines ortree boosting)是一种强大的机器学习技术,在很多有挑战的机器学习问题上,表现的非常好甚至是最好。

 

Tree boosting has been shown to give state-of-the-art results onmany standard classification benchmarks.

— XGBoost:A Scalable Tree Boosting System, 2016.

https://arxiv.org/abs/1603.02754

它是一个决策树算法的集成,其中新树可以对模型中已有树的结果进行修正。我们可以不断增加决策树,直到达到满意的效果。

XGBoost是随机梯度提升算法的一种高效实现,它可以通过一系列模型超参数在整个训练过程中控制模型。

The mostimportant factor behind the success of XGBoost is its scalability in allscenarios. The system runs more than ten times faster than existing popularsolutions on a single machine and scales to billions of examples in distributedor memory-limited settings.

— XGBoost: A Scalable TreeBoosting System, 2016.

https://arxiv.org/abs/1603.02754

XGBoost是为表格式数据集的分类和回归问题而设计的,也可以用于时间序列预测。

 

想获得更多有关GDBT和XGBoost实现,请看以下教程:

《机器学习中梯度提升算法的简要概括》

链接:https://machinelearningmastery.com/gentle-introduction-gradient-boosting-algorithm-machine-learning/

 

首先,XGBoost需要安装,你可以用pip安装,如下:

安装后,可以通过以下代码确认是否成功安装以及安装的版本:

执行以上代码,会看到如下的版本号,也有可能版本号更高:

虽然XGBoost库有自己的python接口,你也可以使用scikit-learn API中的XGBRegressor包装类。

 

模型的一个实例可以被实例化并像任何其他scikit-learn类一样用于模型评估。例如:

  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值