您现在的位置是:首页 >其他 >机器学习 | 集成算法 | 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的训练步骤:

 -  
优缺点:

 
参考博客
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。
        
    
        
    
            




U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结