Bagging, Boosting, Bootstrap
Bagging 和 Boosting 都属于机器学习中的元算法(meta-algorithms)。所谓元算法,简单来讲,就是将几个较弱的机器学习算法综合起来,构成一个更强的机器学习模型。这种「三个臭皮匠,赛过诸葛亮」的做法,可以帮助减小方差(over-fitting)和偏差(under-fitting),提高准确率。
狭义的理解:Bagging,Boosting 为这种元算法的训练提供了一种采样的思路。
Boosting
Boosting 最著名的实现版本应该是 AdaBoost 了。
Boosting 的流程一般为:
- 从数据集 D 中,无放回地、随机地挑选出一个子集 d1,训练一个弱的分类器 C1;
- 从数据集 D 中,无放回地、随机地挑选出一个子集 d2,再加上一部分上一步被错分类的样本,训练一个弱分类器 C2;
- 重复步骤 2,直到所有分类器都训练完毕;
- 综合所有的弱分类器,并为每个分类器赋予一个权值。
Bagging
采用 Bagging 原理的机器学习算法,代表的有 Random Forest(有些许改进)。
理解 Bagging 之前,需要先简单了解一下 Bootstrap 的概念。Bootstrap 是一种有放回的随机采样过程(注意,Boosting 是无放回的)。
Bagging 指的其实是 Bootstrap AGGregatING,「aggregating」是聚合的意思,也就是说,Bagging 是 Bootstrap 的增强版。
Bagging 的流程一般为:
- 根据 bootstrap 方法,生成 n 个不同的子集;
- 在每个子集上,单独地训练弱分类器(或者说,子机器学习模型);
- 预测时,将每个子模型的预测结果平均一下,作为最终的预测结果。
Bagging 和 Boosting 对比
Bagging 这种有放回的采样策略,可以减少 over-fitting,而 Boosting 会修正那些错分类的样本,因此能提高准确率(但也可能导致 overfitting )。
Bagging 由于样本之间没有关联,因此它的训练是可以并行的,比如 Random Forest 中,每一棵决策树都是可以同时训练的。Boosting 由于需要考虑上一步错分类的样本,因此需要顺序进行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异