本文主要是介绍Boosting、Bagging和Stacking知识点整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
全是坑,嘤嘤哭泣= =
- 简述下Boosting的工作原理
Boosting主要干两件事:调整训练样本分布,使先前训练错的样本在后续能够获得更多关注
集成基学习数目
Boosting主要关注降低偏差(即提高拟合能力) - 描述下Adaboost和权值更新公式
Adaboost算法是“模型为加法模型、损失函数为指数函数、学习算法为前向分布算法”时的二类分类学习方法。
Adaboost有两项内容:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值;加大分类错误率小的弱分类器的权值。
步骤一:初始化训练数据的权值分布,一开始赋予相同的权值 1N
步骤二:多轮迭代
a. 带权的训练数据集进行学习,得到基本的二分类器 Gm(x)
b. 计算带权的分类误差率 em=∑Ni=1wmiI(Gm(xi)≠yi)
c. 计算 Gm(x) 的系数 αm=12log1−emem
注: αm 随 em 的减小而增大,所以分类误差率越小的基本分类起在最终分类起中的作用越大,加大了分类错误率小的弱分类器的权值。
d. 更新训练数据集的权值分布
wm+1,i=wmiZmexp(−αmyiGm(xi))
Zm=∑Ni=1wmiexp(−αmyiGm(xi)
注意到 Gm 是一个二分类器
步骤三:组合各个弱分类器
f(x)=∑Mm=1αmGm(x) - 请问(决策树、Random Forest、Boosting、Adaboost)GBDT和XGBoost的区别是什么?
而随机森林Random Forest是一个包含多个决策树的分类器。至于AdaBoost,则是英文”Adaptive Boosting”(自适应增强)的缩写,关于AdaBoost可以看下这篇文章《Adaboost 算法的原理与推导》。GBDT(Gradient Boosting Decision Tree),即梯度上升决策树算法,相当于融合决策树和梯度上升boosting算法。
@Xijun LI:xgboost类似于gbdt的优化版,不论是精度还是效率上都有了提升。与gbdt相比,具体的优点有: 1.损失函数是用泰勒展式二项逼近,而不是像gbdt里的就是一阶导数 2.对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性 3.节点分裂的方式不同,gbdt是用的gini系数,xgboost是经过优化推导后的
这篇关于Boosting、Bagging和Stacking知识点整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!