boosting算法_集成学习:boosting、BDT、GBDT的概括理解

boosting是一种集成学习的方法,与bagging并列形成俩中不同的集成学习算法,本文主要概括boosting方法。

boosting在训练过程中,它通过改变训练样本的权重,学习多个学习器,然后将这些学习器线性组合,提高分类器的性能。

本文主要按以下思路讨论,boosting算法的整体流程,boostingDT,GBDT。

boosting是一大类集成学习框架的总称,前面我们说到 机器学习的三要素:模型、策略、算法。模型即映射函数或者条件概率:

,此处,boosting的模型为
,这是一种线性组合的方式,我们称这种方法为
加法模型,boosting集成学习是一系列的基学习器的线性组合,其中b是基学习器,
是基学习器的参数,求和即说明了这是一种线性组合,
是线性组合的系数;策略即确定损失函数,boosting的策略既是损失函数的确定,即
,由不同的损失函数确定的是不同的集成学习算法,比如使用指数函数作为损失函数的是adaboosting,使用平方损失函数的是BDT;算法是指如何基于损失函数最小求取模型的参数,即
,由于这是一个非常复杂的问题,因为是加法模型,所以求解损失函数最小化是通过从前往后一步一步求解每一个基函数以及其系数。这种算法称为
前向分布算法。

具体来讲:前向分布算法:

输入:数据集D,基函数

,损失函数

输出:预测函数

第一:

第二:对于m=1,2...,M

极小化损失函数 :

更新

第三步得到加法模型:

至此,我们解释了boosting的加法模型,策略,前向分布算法。由加法模型和前向分布算法以及确定一个损失函数得到模型都是boosting模型。

接下来讨论BDT

BDT是boosting decision tree,是以回归决策树(CART树)为基模型以平方误差为损失函数的boosting方法。

BDT的模型:

,这里,模型系数
=1,BDT的损失函数为:
,此处,我们将
定义为残差,由损失函数可分析得到,第m个决策树拟合的正是m-1步的残差

因此,基于前向分布模型可以得到DBT算法

输入:数据集

输出:预测函数

第一:初始化

第二:for m=1,2,...m

(a)计算第m步的残差

(b)将残差作为新数据集使用CART回归树算法生成回归树

(c)更新

最后得到boosting回归树

至此,我们得到了boosting回归树,是算法是使用CART回归树作为基学习器,使用boosting的方式(即前向分布算法和加法模型)。

接下来我们讨论一下GDBT,基于boosting的算法以CART回归树作为基学习器,以平方损失函数作为损失函数的我们称之为DBT算法,但有时候往往使用的是一般的损失函数,一般的损失函数在进行前向分布算法更新参数使得损失函数变小的时候往往很难直接求得参数,所以我们采用损失函数的负梯度来近似拟合残差,

,即在假设空间中寻找最优的决策函数

所以,GBDT算法和BDT、以及前向分布算法一样,只是将负梯度作为残差,让决策树拟合负梯度这个残差。

输入:数据集D,损失函数

输出:回归树

(1)初始化:

(2)for m=1,2...m

计算损失函数的负梯度:

对该负梯度作为残差进行拟合一个决策回归树

最后的到GBDT模型:

思考?为社么是用损失函数的负梯度就可以拟合残差?

损失函数

中变化的是fx,而fx的变化是使得损失超最小值的方向变化,所以
,而前向分布算法
,对比两式所以决策树拟合的是损失函数的负梯度。

至此,我们基于前向分布算法得到GBDT算法,如果我们的损失函数采用指数损失函数,通过对指数损失函数求导得到更新的参数,我们将得到adaboost算法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值