您现在的位置是:首页 >其他 >机器学习 | 集成算法 | Bagging | Boosting | 概念向网站首页其他
机器学习 | 集成算法 | Bagging | Boosting | 概念向
简介机器学习 | 集成算法 | Bagging | Boosting | 概念向
?Bagging和Boosting的概念
集成学习(Ensemble Learning)就是通过某种策略
将多个模型集成
起来,通过群体决策来提高决策准确率。为什么集成学习会好于单个学习器呢?原因可能有三:
- 训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用;
- 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足;
- 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。
?Bagging
- Bagging(Bootstrap Aggregating)是集成学习的一种方法,其思想是通过
从训练集中随机抽取一定数量的样本
,重复多次构建多个基本分类器
,然后通过投票或平均来获得最终的预测结果。 - Bagging可以有效减小模型的方差,提高模型的泛化能力。
?Boosting
- 集成学习Boosting可以将多个弱学习器(即准确率略高于随机猜测的学习器)组合成一个强学习器。
- Boosting通过
迭代地引入
新的弱学习器,并给予它们更多的关注度,达到逐步提高集成模型准确率的目的。 - 在Boosting算法中,
每个弱学习器的预测结果都会参与到下一次迭代中
,如果预测错误,则会给这个样本一个更高的权重,并重新拟合一个新的学习器。这样,每个弱学习器都会关注于预测错误的样本,因此在多个弱学习器的组合下,集成模型的准确率得到了提高。
?Bagging和Boosting区别
Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。
- Bagging:利用多个过拟合的弱学习器来获得更好的效果。
- Boosting:利用多个欠拟合的弱学习器来获得更好的效果。
bagging | boosting |
---|---|
bagging算法通常考虑的是同质弱学习器,相互独立地并行 学习这些弱学习器,并按照某种确定性的平均过程 将它们组合起来。 | boosting算法通常考虑的也是同质弱学习器。它以一种高度自适应 的方法顺序地学习 这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。 |
bagging 的重点在于获得一个方差 比其组成部分更小 的集成模型 | boosting 则将主要生成偏差 比其组成部分更低 的强模型(即使方差也可以被减小) |
Bagging采取的是随机有放回 的均匀取样每个样本的权重相同, | Boosting的每一轮训练的样本是固定的 ,改变的是每个样本的权重 ,错误率越大的样本权重越大 |
Bagging所有预测函数权值相同 | Boosting中误差越小的预测函数权值越大 |
Bagging 的各个预测函数可以并行生成 | Boosting的各个预测函数必须按照顺序 迭代生成 |
?Bagging和Boosting具体实现
⭐️将Bagging和Boosting分别和树模型结合分别生成:
Bagging+决策树=随机森林
Boosting+决策树=GBDT
?随机森林
- 如下图:分别从数据集中随机取一部分数据交给每一棵小树进行训练,再让每一棵小树都得出一个训练结果,最后将它们所得到的的训练结果来一个综合,即为随机森林的预测结果。
- 基本逻辑:
- 优缺点:
?GBDT
-
和随机森林相比,GBDT里的树都是回归树。
-
GBDT里的每棵树都建立在前一棵树的基础上。
- 以苹果打分为例,我们会先训练一棵树,大体预测一下苹果们的分数
- 再去训练一棵树,去预测它们与真实分数间的差距
- 如果两者相加仍与真实分数存在差距,我们在训练第三棵树预测这部分差距
- 重复这个过程不断减少误差,将这些数的预测值加起来就是苹果的分数。
- 在GBDT中,每一次迭代都会训练一个新的模型,该模型将前面模型的预测结果与真实标签之间的残差作为新的标签。
- GBDT的残差指的是
前面模型的预测结果与真实标签之间的差异
。 - 在每一次迭代中,新的模型都会尝试通过
学习这些残差
来进一步提高模型的预测性能
,从而有效提高模型的准确性。
?Adaboost(Boosting类型代表)
-
前人栽树,后人乘凉:前辈为后辈创造条件,而后辈在前辈创造的基础上进行改进。
-
每一次的改进都更专注于之前做错的问题~~(刷题逻辑bushi)~~
-
Adaboost的训练步骤:
-
优缺点:
参考博客
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。