您现在的位置是:首页 >其他 >机器学习 | 集成算法 | Bagging | Boosting | 概念向网站首页其他

机器学习 | 集成算法 | Bagging | Boosting | 概念向

啦啦右一 2024-09-26 00:01:02
简介机器学习 | 集成算法 | Bagging | Boosting | 概念向

?Bagging和Boosting的概念

集成学习(Ensemble Learning)就是通过某种策略将多个模型集成起来,通过群体决策来提高决策准确率。为什么集成学习会好于单个学习器呢?原因可能有三:

  • 训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用;
  • 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足;
  • 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。

在这里插入图片描述

?Bagging

  • Bagging(Bootstrap Aggregating)是集成学习的一种方法,其思想是通过从训练集中随机抽取一定数量的样本重复多次构建多个基本分类器,然后通过投票或平均来获得最终的预测结果。
  • Bagging可以有效减小模型的方差,提高模型的泛化能力。

?Boosting

  • 集成学习Boosting可以将多个弱学习器(即准确率略高于随机猜测的学习器)组合成一个强学习器。
  • Boosting通过迭代地引入新的弱学习器,并给予它们更多的关注度,达到逐步提高集成模型准确率的目的。
  • 在Boosting算法中,每个弱学习器的预测结果都会参与到下一次迭代中,如果预测错误,则会给这个样本一个更高的权重,并重新拟合一个新的学习器。这样,每个弱学习器都会关注于预测错误的样本,因此在多个弱学习器的组合下,集成模型的准确率得到了提高。

?Bagging和Boosting区别

Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。

  • Bagging:利用多个过拟合的弱学习器来获得更好的效果。
  • Boosting:利用多个欠拟合的弱学习器来获得更好的效果。
baggingboosting
bagging算法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。boosting算法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
bagging 的重点在于获得一个方差比其组成部分更小的集成模型boosting 则将主要生成偏差比其组成部分更低的强模型(即使方差也可以被减小)
Bagging采取的是随机有放回均匀取样每个样本的权重相同,Boosting的每一轮训练的样本是固定的,改变的是每个样本的权重,错误率越大的样本权重越大
Bagging所有预测函数权值相同Boosting中误差越小的预测函数权值越大
Bagging 的各个预测函数可以并行生成Boosting的各个预测函数必须按照顺序迭代生成

?Bagging和Boosting具体实现

⭐️将Bagging和Boosting分别和树模型结合分别生成:

  • Bagging+决策树=随机森林
  • Boosting+决策树=GBDT

?随机森林

【五分钟机器学习】随机森林(RandomForest):看我以弱搏强

在这里插入图片描述

  • 如下图:分别从数据集中随机取一部分数据交给每一棵小树进行训练,再让每一棵小树都得出一个训练结果,最后将它们所得到的的训练结果来一个综合,即为随机森林的预测结果。在这里插入图片描述
  • 基本逻辑
    在这里插入图片描述
  • 优缺点
    在这里插入图片描述在这里插入图片描述

?GBDT

什么是 GBDT(梯度提升树)?【知多少】

  • 和随机森林相比,GBDT里的树都是回归树。
    在这里插入图片描述

  • GBDT里的每棵树都建立在前一棵树的基础上。
    在这里插入图片描述

    • 以苹果打分为例,我们会先训练一棵树,大体预测一下苹果们的分数
    • 再去训练一棵树,去预测它们与真实分数间的差距
    • 如果两者相加仍与真实分数存在差距,我们在训练第三棵树预测这部分差距
    • 重复这个过程不断减少误差,将这些数的预测值加起来就是苹果的分数

  • 在GBDT中,每一次迭代都会训练一个新的模型,该模型将前面模型的预测结果与真实标签之间的残差作为新的标签。
  • GBDT的残差指的是前面模型的预测结果与真实标签之间的差异
  • 在每一次迭代中,新的模型都会尝试通过学习这些残差来进一步提高模型的预测性能,从而有效提高模型的准确性。

?Adaboost(Boosting类型代表)

【五分钟机器学习】Adaboost:前人栽树后人乘凉

  • 前人栽树,后人乘凉:前辈为后辈创造条件,而后辈在前辈创造的基础上进行改进。
    在这里插入图片描述

  • 每一次的改进都更专注于之前做错的问题~~(刷题逻辑bushi)~~
    在这里插入图片描述

  • Adaboost的训练步骤:
    在这里插入图片描述

  • 优缺点
    在这里插入图片描述


参考博客

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