AdaBoost和Gradient Boosting算法实现

本文深入探讨了Boosting算法的两大核心问题:如何调整训练数据的权值及如何组合弱分类器。详细介绍了AdaBoost与Gradient Boosting算法的实现步骤,包括函数模型选择、损失函数类型及优化策略。

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

在介绍两种算法前,先介绍一下关于Boosting的两个核心问题

1)在每一轮如何改变训练数据的权值或概率分布?

通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。这样分错的样本就被突显出来,从而得到一个新的样本分布。

2)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

下面介绍算法的实现步骤:

AdaBoost算法

算法的实现:

1、若为Adaboost分类,函数模型使用CART分类树;若为Adaboost回归,函数模型使用CART回归树。

2、损失函数为“指数损失函数”

3、针对Boosting需要解决的两个问题,AdaBoost算法采用了以下策略:

使用加权后选取的训练数据代替随机选取的训练样本,这样将训练的焦点集中在比较难分的训练数据样本上;

将弱分类器联合起来,使用加权的投票机制代替平均投票机制。让分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重。

Gradient Boosting算法

算法的实现:

1、函数模型为CART回归树模型

2、损失函数一般为“对数损失函数”或“指数损失函数”

Gradient Boosting算法即梯度提升算法,

3、优化算法采用梯度下降

4、针对Boosting需要解决的两个问题,Gradient
Boosting算法采用了以下策略:

将残差作为下一个弱分类器的训练数据,每个新的弱分类器的建立都是为了使得之前弱分类器的残差往梯度方向减少。

将弱分类器联合起来,使用累加机制代替平均投票机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值