整理了一些集成学习以及GBDT的原理和问题,供个人学习,未来将继续补充
Bagging
Bagging (Bootstrap aggregating): Leverages unstable base learners that are weak because of overfitting
- 主要关注降低方差,在不剪枝的决策树等易受样本扰动的学习器上效用更为明显
- 各分类器之间没有依赖关系,可以各自并行,如随机森林
- 结合预测输出时,分类任务常用投票法,回归任务常用简单平均。
Boosting
Boosting: Leverages stable base learners that are weak because of underfitting
- 主要关注降低偏差,基于泛化能力弱的学习器
- 各分类器之间有依赖关系,必须串行,如Adaboost、GBDT、XGBoost
Adaboost
自适应增强(Adaptive Boosting),前一个基分类器分错的样本会得到加强(权值提高),权值更新过后的样本再次被用来训练下一个基分类器。最后将各个训练得到的基分类器组合,通常误差率低的基分类器在最终分类器中占的权重较大。
GBDT
提升方法采用加法模型与前向分布算法。
提升树是多棵回归树来共同决策,所有树的结果相加作为预测结果。 GBDT迭代多轮,每轮迭代产生一棵树,每棵树学习的是之前所有树结论和的残差。弱分类器一般会选择CART回归树。
GBDT为什么可以用负梯度近似残差?
GBDT每轮的训练是在上一轮训练模型的负梯度值基础之上训练的。比如,当损失函数为均方差时: l ( y i , y ^ ) = 1 2 ( y i − y ^ ) 2 l(y_i, \hat y)=\frac{1}{2}(y_i-\hat y)^2 l(yi,y^)