https://blog.csdn.net/yyy430/article/details/85108797blog.csdn.net 梯度提升树(GBDT)原理小结 - 刘建平Pinard - 博客园www.cnblogs.com https://www.cnblogs.com/peizhe123/p/5086128.htmlwww.cnblogs.com 七月在线:机器学习面试题精讲(二)zhuanlan.zhihu.com
https://blog.csdn.net/blank_tj/article/details/82262431blog.csdn.net https://blog.csdn.net/zpalyq110/article/details/79527653blog.csdn.net xxxk:XGBoost与GBDT(二)-算法推导zhuanlan.zhihu.com
https://blog.csdn.net/yc1203968305/article/details/78251400blog.csdn.net
Bagging和Boosting区别:
Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,
我们可以得到更精确和/或更鲁棒的模型。
bagging 的重点在于获得一个方差比其组成部分更小的集成模型,而 boosting 和 stacking
则将主要生成偏差比其组成部分更低的强模型(即使方差也可以被减小)
Bagging和Boosting 的主要区别:
1. Bagging采取Bootstraping的是随机有放回的取样,Boosting的每一轮训练的样本是固定的
,改变的是每个样本的权重。
2. Bagging 的各个预测函数可以并行生成;Boosting的各个预测函数必须按照顺序迭代生成
将Bagging和Boosting分别和树模型结合分别生成:
Bagging+决策树=随机森林
Boosting+决策树=GBDT
随机森林优缺点:
优点:1) 很容易查看模型的输入特征的相对重要性
2) 可以处理高维数据
3) 因为是 属于Bagging所以模型的泛化能力强 (方差小)
缺点:1)使用大量的树会使算法变得很慢,无法做到实时预测
2)对于回归问题,精准度不够
3)抗噪声干扰能力弱,无法自动处理异常样本
为什么当GBDT用作分类任务时可以选择deviance loss
和exponential loss
, 而这两个损失函数的y^(i)取值都为0-1标量, 如何计算残差?
答:在GBDT做二分类任务时, y^(i)不再是标量, 而是概率(为正的概率); 另一方面, deviance loss(二分类就是交叉熵损失)和exponential loss都是 评价预测(概率)与真实(概率)之间的差距, 也就是残差, 是一个连续值, 从而是一个回归问题.
残差和负梯度什么关系?
GBDT认为每棵残差树只学到了真实情况的一小部分,希望通过每次走一小步的方式逐渐逼近真实结果,认为这样比每次迈一大步的方式更容易避免过拟合,这就是shrinkage的思想