GBDT内容梳理

GBDT: GBDT中的树用的是CART回归树(不是分类树),GBDT用来做 回归预测,调整后也可以用于分类。由于GBDT中的CART树,在模型训练的时候,需要逐个训练样本进行计算,模型的训练时间相当之长。因此,这个也决定了GBDT不适合实时的线上训练,更加适用于离散的场景。

Boosting的两个核心问题
A)在每一轮如何改变训练数据的权值或概率分布?
通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。
B)通过什么方式来组合弱分类器?
通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

Boosting的核心是每次训练样本都是一样的,但是训练时候的训练样本的权重不一样。
1)AdaBoost + 决策树 = 提升树
2)Gradient Boosting + 决策树 = GBDT

在机器学习算法中,决策树的种类有很多。
最早使用的是ID3算法,之后又陆续的提出C4.5算法和CART算法,这是三个比较常用的决策树算法。
ID3算法十分简单,核心是根据“最大信息熵增益”原则选择划分当前数据集的最好特征。ID3缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益?(信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大).
为了避免这个不足C4.5中是用信息增益比率(gain ratio)来作为选择分支的准则。

而Gradient Boosting和原始Boosting方法不同的地方在于,它在残差减少的梯度方向建立新的弱模型。直观上看,它用来训练第K轮弱模型的数据,来自于之前所有弱模型集成后的预测值和样本真实值的"差"(准确来说损失函数梯度减少的方向)。一个GBDT模型由多颗回归决策树组成;理论上在训练过程中的一轮迭代中,算法基于残差减少的梯度方向生成一颗决策树。(scikit-learn在用GBDT解决多标签问题时,实际上在每一轮迭代中用了多棵回归树。同时通过设定合理的样本和特征抽样比例,可以在训练过程中实现交叉检验(cross validation),有效地减少模型过拟合的出现。
Boosting集成方法的算法较难实现并行化,且基于GBDT的模型会较为复杂,深入分析和调优会有一定困难性。

知乎收藏—机器学习—GBDT原理源码
http://www.ccs.neu.edu/home/vip/teach/MLcourse/4_boosting/slides/gradient_boosting.pdf


其中的一部分内容摘自别的网站,但是我忘记来源了。知道来源的欢迎告诉我,我会加上引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值