发文新思路之区间预测:梯度提升(QR-GBDT)分位数回归预测实战!!!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类算法的家人,可关注我的VX公众号:python算法小当家,不定期会有很多免费代码分享~     

目录

01 引言

什么是区间预测?

区间预测的重要性

02 相关原理介绍

梯度提升决策树(GBDT)

分位数回归

GBDT中的分位数回归

03 模型构建

1. 定义问题和选择模型

2. 参数配置

3. 损失函数的选择

4. 训练模型

04 结果展示

05 代码获取

        小伙伴好,今天小当家向大家介绍一下怎么用GBDT去做区间预测。区间预测是现代统计分析和机器学习领域中一个非常重要的概念,特别是在需要评估预测不确定性时。与传统的单点预测方法相比,区间预测提供了更多关于数据未来走向的信息,这对于决策制定过程是极其宝贵的。


01 引言

什么是区间预测?

        区间预测不仅给出了一个预测值,而且还提供了一个预测的不确定性范围,通常表现为预测区间。这个区间显示了预测值的可能波动范围,并给出了关于预测准确性的额外信息。区间预测特别适用于那些对预测的准确性和可靠性有高要求的应用场景。

区间预测的重要性

  • 不确定性量化:传统的单点预测方法仅提供一个预测值,而无法表达预测结果的不确定性。区间预测通过给出一个可能的值范围,使决策者能够看到预测的不确定性,从而更好地规划和应对风险。

  • 增强决策支持:在许多实际应用中,了解预测结果的潜在波动范围对于制定策略和决策至关重要。例如,在财务预测、库存管理和风险管理等领域,决策者可以根据预测区间采取不同的策略。

  • 提高模型透明度:区间预测帮助用户理解模型预测的可靠性,增加了模型的透明度,使用户能够更信任模型的输出。

02 相关原理介绍

梯度提升决策树(GBDT)

        梯度提升决策树(GBDT)是一种强大的机器学习技术,属于集成学习的范畴。它通过组合多个决策树来构建一个更为强大的模型,主要用于回归和分类问题。GBDT的核心在于每一棵树学习的是前一棵树预测的残差,即前一个模型错误的梯度。主要原理如下:

  • 初始化:GBDT首先初始化一个基准预测器,通常是数据的平均值(回归问题)或者是最常见的类别(分类问题)。

  • 迭代训练:在每一次迭代中,GBDT会添加一棵新的决策树来改进模型的预测。这棵树试图纠正前一轮模型的残差,即真实值与当前模型预测值之间的差异。

  • 梯度计算:在每一步,计算损失函数的负梯度,在当前模型的预测下,相当于残差的方向。

  • 学习新树:根据梯度(残差),训练一棵新的决策树,然后将这棵树的预测结果与前面的结果相加,以更新模型的预测。

  • 模型更新:通过引入学习率(步长)来调节每棵树对最终预测的贡献,防止过拟合。

分位数回归

        分位数回归是一种统计技术,用于估计因变量的条件分位数,例如条件中位数或其他任何百分位数。与传统的最小二乘回归方法(预测平均值)相比,分位数回归提供了对不同条件水平下因变量分布的更全面了解。

        分位数回归的目标是最小化预测误差的加权和。不同于最小二乘回归对所有残差平方给予相同的权重,分位数回归对残差的权重依赖于所选分位数:

  • 如果残差为正(即预测值低于实际值),权重为 𝛼α(分位数)。

  • 如果残差为负(即预测值高于实际值),权重为 1-α。

GBDT中的分位数回归

        在GBDT框架中应用分位数回归时,GBDT的损失函数被修改为分位数损失,使得模型不仅能预测中心趋势,还能预测任意分位数,从而生成预测的不确定性区间。这对于风险管理、异常值检测等场景特别有用。

03 模型构建

1. 定义问题和选择模型

        首先,明确我们的目标是构建一个能够预测给定分位数(如10%和90%)的区间预测模型。这种类型的模型特别适用于需要估计结果不确定性的情况。梯度提升决策树(GBDT)由于其灵活性和高效性,非常适合处理此类回归问题。

2. 参数配置

        在GBDT中,关键参数的选择直接影响模型的性能和预测的准确性:

  • n_estimators(树的数量):增加树的数量通常会提高模型的复杂度和预测能力,但同时也可能导致过拟合。一般来说,需要通过交叉验证来找到最佳的树数量。

  • max_depth(树的最大深度):控制每棵树的深度可以防止模型学习过于复杂的数据结构,同样可以通过交叉验证来优化。

  • learning_rate(学习率):这个参数用来缩放每棵树的贡献,较小的学习率配合更多的树可以使模型更稳健,但训练时间会增长。

3. 损失函数的选择

        对于分位数回归,选择合适的损失函数是关键:

  • loss="quantile":这使GBDT模型能够直接针对特定分位数进行优化。

  • alpha参数:这个参数决定了我们关注的分位数。例如,alpha=0.1将会预测10%分位数,而alpha=0.9对应90%分位数。

4. 训练模型

        使用所选参数配置模型,并在训练集上进行训练。这个过程包括:

  • 将数据分为训练集和测试集。

  • 使用训练集数据来拟合模型。

  • 通过测试集评估模型的初步性能。

04 结果展示

图片

图片

        由实验结果可知:梯度提升决策树(GBDT)模型展现出极高的拟合度与预测精准性。具体来说,模型的决定系数(R²)达到了0.9838,显示了模型对数据变异性的高度解释能力。同时,均方误差(MSE)、均方根误差(RMSE)以及平均绝对误差(MAE)都表明了较小的预测误差。此外,模型的覆盖率高达88.82%,意味着绝大多数的实际观测值都落在了预测的95%置信区间内,显示了模型在不确定性处理上的有效性。平均区间宽度为22.75,为预测结果提供了适度的精确范围,这些都证明了模型在实际应用中的可靠性和效果。

05 代码获取

私信或关注VX公众号python算法小当家,后台回复关键字QR-GBDT,即可免费获得代码

QR-GBDT

可后台回复需求定制专属模型

  • 30
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
梯度提升树(Gradient Boosting Decision Tree,简称GBDT)是一种流行的机器学习算法,常用于回归和分类任务。下面以回归为例,详细介绍GBDT的工作原理。 在回归任务中,我们的目标是预测一个连续变量的值。GBDT通过多次迭代的方式,逐步拟合训练数据的残差,最终得到一个强大的回归模型。 首先,GBDT使用一个单独的决策树作为基模型。该树是通过最小化损失函数(例如均方误差)建立的,将输入特征映射到预测值上。 接下来,GBDT通过计算真实值与当前模型的预测值之间的残差,得到一个的训练数据集。这些残差成为下一棵决策树的目标。 然后,通过训练一棵的决策树来拟合残差数据。这个过程是一个迭代的过程,每迭代一次,都会拟合一棵的决策树,并更模型的预测值。 最后,将每棵树的预测结果累加,得到最终的回归模型。这个模型能够准确地预测目标变量的值。 举例来说,假设我们有一组数据,包含一些自变量(如房屋面积、房间数量等)和一个连续的因变量(如房屋价格)。我们想建立一个回归模型来预测房屋价格。 首先,我们使用一棵决策树来拟合这些数据,但是预测结果可能与真实值存在差距。 然后,我们计算真实值和当前模型的预测值之间的残差。使用这些残差作为的目标,我们训练一棵的决策树。 接着,我们将第一棵决策树和第二棵决策树的预测结果相加,得到一个更后的预测值。 我们可以反复迭代这个过程,每次都拟合一棵的决策树,并更预测值。最终,我们将所有决策树的预测结果相加,得到最终的回归模型。 通过这种方式,GBDT能够逐步提升模型的性能,对于复杂的非线性关系,也能够进行有效的拟合。 总而言之,GBDT是一种基于决策树的机器学习算法,通过迭代拟合残差来构建一个强大的回归模型。它在回归任务中具有广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值