前向分布算法、Adaboost算法、提升树算法、梯度提升算法、GBDT(梯度提升决策树)和XGBoost(极限梯度提升)

本文详细梳理了与提升算法相关的概念,包括前向分布算法、Adaboost、提升树算法、梯度提升算法、GBDT和XGBoost。通过实例解释了如何使用这些算法进行分类和回归,并探讨了它们之间的联系和区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:好好捋一捋跟提升有关的算法,总结实属不易,望点赞或关注,谢谢。

一、前向分布算法

首先必须了解前向分布算法,因为这个算法将提升思想变得更容易实现,它只需求出每一次迭代时的最优弱模型的参数和系数即可,不用一次性求出所有的弱模型。
下面是我的另一篇博客,里面讲解了前向分布算法的思想和实现。
https://blog.csdn.net/watermelon12138/article/details/90370257

二、Adaboost算法

前向分布算法中并没有要求损失函数必须取哪一种(平方损失、指数损失等等),也没有要求基函数(就是弱模型)应该取哪一种(线性回归、svm、决策树等等),所以说前向分布算法更像是一个框架,需要你自己添加血和肉。Adaboost算法就是这样来的,如果将前向分布算法中的损失函数取 指数损失函数,那么前向分布算法就等价于Adaboost算法。
具体的分析和讲解,请看我的另一篇博客:
https://blog.csdn.net/watermelon12138/article/details/90370257

三、提升树算法

如果前向分布算法中的基函数取决策树(一般默认使用CART树,因为它即可做回归也可以做分类),那么该前向分布算法就可以称为提升树算法。针对不同的损失函数和树的类型,提升树有不同的用途,对于前向分布算法来说,当损失函数取指数损失,基函数取二叉分类树,前向分布算法就变成了用于分类的提升树算法; 当损失函数取平方损失,基函数取二叉回归树,前向分布算法就变成了用于回归的提升树算法;

3.1用于分类的提升树算法
这里我就不再啰嗦了,就是将Adaboost算法中的基函数取二叉分类树,算法具体流程和Adaboost一样。

3.2用于回归的提升树算法
前向分步算法中的基函数采用二叉回归树,损失函数采用平方损失,就得到了解决回归问题的提升树。

分析:
假设现在是前向分布算法的第 m 次 迭代,当前模型为 fm-1(x),此时的弱模型未知,我们记为T(x;θ),第m次迭代的目标是找到使得损失函数 L(yi, fm-1(xi) + T(xi;θ))取最小值的 T*(x;θ),然后更新当前模型 fm(x) = fm-1(x) + T*(x;θ)。
因为损失函数采用的是平方损失,所以有:
L(yi, fm-1(xi) + T(xi;θ)) = (yi - fm-1(xi) -T(xi;θ))2 = ( r - T(xi;θ))2
其中 r = yi - fm-1(xi) ,这是当前模型拟合数据的残差。从上面的表达式可以看出弱模型T(xi;θ)的预测值越是接近 r ,损失L的值就越小,所以说每一次迭代过程的弱模型 T(xi;θ) 只需拟合当前模型的残差就可以了,但这只限于损失函数取平方损失的时候。

算法:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值