机器学习_10、集成学习-Bagging(自举汇聚法)

Bagging(自举汇聚法)

Bagging(Bootstrap Aggregating,自举汇聚法)是一种集成学习方法,由Leo Breiman于1996年提出。它旨在通过结合多个模型来提高单个预测模型的稳定性和准确性。Bagging方法特别适用于减少高方差模型(如决策树)的过拟合问题,从而提高模型的泛化能力。

工作原理

Bagging的核心思想是通过并行地训练多个独立的预测模型,并将它们的预测结果进行汇总(对于分类任务通常采用投票机制,对于回归任务则采用平均),以此来提高整体模型的预测性能。具体步骤如下:

  1. 自助采样(Bootstrap sampling):从原始训练数据集中使用有放回的抽样方法随机选取N个样本,形成一个新的训练集。这个过程重复K次,生成K个不同的训练集。这些训练集之间可能有重叠的样本。

  2. 独立训练:对每个生成的训练集,独立地训练一个基预测模型。这些基模型可以是任何类型的模型,但在实践中常用决策树。每个模型只看到数据的一部分子集,这有助于模型学习到数据的不同方面。

  3. 汇总预测

    • 对于分类问题,最终的预测结果通常是通过投票机制得到的,即选择出现次数最多的类别标签作为最终预测。
    • 对于回归问题,最终的预测结果是通过计算所有单个模型预测值的平均值得到的。

优点

  • 减少方差:Bagging通过构建多个模型并汇总它们的预测结果,可以有效减少模型的方差,降低过拟合风险。
  • 提高鲁棒性:即使基模型的性能不是很好,通过Bagging也能提高整体模型的稳定性和准确性。
  • 易于实现并行化:由于各个基模型的训练是相互独立的,因此Bagging方法很容易进行并行化处理,提高计算效率。
  • 灵活性:Bagging方法可以与各种类型的预测模型结合使用,增加了方法的通用性。

应用场景

Bagging方法广泛应用于各种机器学习任务中,尤其是那些模型容易受到过拟合影响的场景。随机森林(Random Forest)就是一种基于决策树和Bagging原理的集成学习算法,它在多个领域内都表现出了优异的性能,如金融风险评估、医学诊断、图像识别等。此外,Bagging技术也适用于提升那些本身就表现不错但希望进一步提高准确度的模型性能。

复制代码
#coding=utf-8
#BaggingClassifier.py
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import BaggingClassifier

# 加载葡萄酒数据集
wine = load_wine()
X, y = wine.data, wine.target

# 划分训练集与测试集
X_train, X_test, y_train, y_test = \
    train_test_split(X, y, stratify=y, random_state=0)

# 创建基本分类模型对象
gnb_clf = GaussianNB()

# 创建集成学习器
bc = BaggingClassifier(gnb_clf, n_estimators=20,
                       max_samples=0.5, bootstrap=True,
                       random_state=0)
# 训练模型
bc.fit(X_train, y_train)
print("训练集准确率:",bc.score(X_train,y_train),sep="")
print("测试集准确率:",bc.score(X_test,y_test),sep="")
print("测试集前三个样本的预测标签:",bc.predict(X_test[:3]))
print("测试集前三个样本的真实标签:",y_test[:3])
print("测试集前三个样本的标签预测概率:\n",
      bc.predict_proba(X_test[:3]),sep="")
相关推荐
共创splendid--与您携手2 分钟前
AI读取前端项目生成skill.md
前端·人工智能·ai
gis分享者1 小时前
AI数字营销实测体验,GEO效果查询功能体验
人工智能·csdn·geo·数字营销·实测体验·效果查询
莱歌数字1 小时前
轻出20%性能:三维拓扑优化如何重塑无人机电子设备散热格局
人工智能·科技·制造·cae·散热
猿小猴子2 小时前
主流 AI IDE 之一的「DeepSeek-Reasonix 」介绍
人工智能·ai·deepseek·reasonix
装不满的克莱因瓶2 小时前
链式法则如何传递参数误差 —— 深入理解神经网络中的梯度传播
人工智能·python·深度学习·神经网络·数学·机器学习·ai
Anastasiozzzz2 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
程序员cxuan8 小时前
为每个任务配一套 harness:Claude Code 里的动态工作流
人工智能
程序员cxuan8 小时前
Claude Fable 5 来了
人工智能·后端·程序员
云边云科技_云网融合8 小时前
云边云科技亮相 2026 WOD 制造业数智化博览会 云网融合赋能制造焕新
人工智能·科技·安全·制造
Σίσυφος19008 小时前
激光三角 光平面标定-多高度误差分析
人工智能·计算机视觉·平面