【机器学习】Boosting与Bagging算法

Boosting与Bagging算法

[1. Bagging(Bootstrap Aggregating)](#1. Bagging(Bootstrap Aggregating))

核心思想:

Bagging的步骤:

例子:

Bagging的优势:

适用场景:

[2. Boosting](#2. Boosting)

核心思想:

Boosting的步骤:

例子:

Boosting的优势:

缺点:

适用场景:

[Bagging vs Boosting 总结对比:](#Bagging vs Boosting 总结对比:)

结论:


|---------------------|
| 🎈边走、边悟🎈迟早会好 |

Boosting 和 Bagging 是两种常用的集成学习方法,它们通过结合多个弱学习器(弱分类器或回归器)来提升模型的整体性能。虽然两者的目标相同,但它们在工作原理、如何训练模型和组合结果的方式上有显著的不同。

1. Bagging(Bootstrap Aggregating)

核心思想:

Bagging的核心思想是并行训练多个弱学习器,通过减少模型的方差来提升整体性能。它通过随机采样创建多个训练集(有放回采样),然后对每个训练集训练一个模型,最后将这些模型的输出进行组合(例如分类问题用投票法,回归问题用平均法)。

Bagging的步骤:
  1. 数据采样:从原始数据集中随机有放回地抽取子集,生成多个不同的训练集。
  2. 训练多个模型:对每个子集分别训练一个模型,模型可以是决策树、线性回归、KNN等。
  3. 结果融合
    • 分类问题:通过投票法,即选择多数模型的预测结果作为最终结果。
    • 回归问题:通过平均法,即取所有模型输出的均值。
例子:

随机森林是Bagging的经典应用。它使用多个决策树作为弱学习器,通过随机采样特征和样本来训练每棵树,并通过投票得到最终分类结果。

Bagging的优势:
  • 降低方差:通过平均多个模型的预测,Bagging能显著减少方差,防止模型过拟合。
  • 并行训练:每个模型可以并行训练,训练效率较高。
适用场景:

Bagging适用于高方差的模型,如决策树、神经网络等。这些模型对训练数据敏感,容易过拟合,而Bagging可以有效降低这种风险。


2. Boosting

核心思想:

Boosting的核心思想是串行训练多个弱学习器 ,每个新模型都试图修正前一个模型的错误。与Bagging不同,Boosting注重减少偏差,通过逐步改进模型性能来提升整体的准确性。

Boosting的步骤:
  1. 初始化:训练第一个弱学习器,并在整个训练数据上进行预测。
  2. 更新权重
    • 在每次迭代中,Boosting会为每个样本分配一个权重,错误分类的样本会获得更大的权重,下一步的模型会更关注这些样本。
    • 新的弱学习器会针对这些权重进行训练,以更好地处理之前分类错误的样本。
  3. 结果融合:将所有弱学习器的结果加权组合,最终得到强学习器。每个弱学习器的权重通常根据其错误率决定,错误率越低的模型权重越大。
例子:

AdaBoostGradient Boosting是Boosting的代表算法。

  • AdaBoost:在每一轮迭代中,增加被错误分类的样本的权重。
  • Gradient Boosting:通过最小化目标函数的梯度方向来逐步训练模型,常用于回归问题和分类问题。
Boosting的优势:
  • 降低偏差:Boosting逐步改进模型,使得整体模型更具鲁棒性,能够减少偏差。
  • 精度高:Boosting的串行模型会不断修正前一步模型的错误,通常最终的集成模型性能优越。
缺点:
  • 训练时间长:由于模型是串行训练的,训练时间相对较长,尤其是在大数据集上。
  • 容易过拟合:如果模型的迭代次数太多,Boosting可能会过拟合训练数据,尤其是在有噪声的数据集上。
适用场景:

Boosting适用于高偏差的模型,例如线性回归、弱决策树等。在这些模型上,Boosting可以有效减少偏差并提高预测准确性。


Bagging vs Boosting 总结对比:

特性 Bagging Boosting
核心思想 并行训练多个模型,平均结果减少方差 串行训练模型,每次迭代纠正上一步的错误
数据采样 随机有放回采样,生成多个子集 通过权重调整关注难以分类的样本
弱学习器 独立训练 每个学习器依赖前一个学习器的结果
训练效率 并行训练,训练速度较快 串行训练,训练时间较长
偏差与方差 减少方差,防止过拟合 减少偏差,提升精度
代表算法 随机森林 AdaBoost, Gradient Boosting
适用场景 高方差的模型,如决策树、神经网络 高偏差的模型,如线性模型、弱决策树

结论:

  • Bagging 更适合用于减少模型的方差,防止过拟合,适合高方差模型。
  • Boosting 更适合用于减少偏差,逐步提升模型的精度,但可能导致过拟合,适合高偏差模型。

两者可以在不同场景下使用,根据数据的特点和模型的表现来选择合适的集成方法。

🌟感谢支持 听忆.-CSDN博客

|--------------------|
| 🎈众口难调🎈从心就好 |

相关推荐
Power20246662 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
数据猎手小k2 小时前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
sp_fyf_20242 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸3 小时前
链表的归并排序
数据结构·算法·链表
jrrz08283 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time3 小时前
golang学习2
算法
知来者逆3 小时前
研究大语言模型在心理保健智能顾问的有效性和挑战
人工智能·神经网络·机器学习·语言模型·自然语言处理
老艾的AI世界4 小时前
新一代AI换脸更自然,DeepLiveCam下载介绍(可直播)
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·ai换脸·视频换脸·直播换脸·图片换脸
南宫生4 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法