机器学习_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="")
相关推荐
huaqianzkh1 小时前
人工智能大趋势下软件开发的未来
人工智能
酱香编程,风雨兼程2 小时前
深度学习——多层感知机的从零开始实现和简洁实现
人工智能·深度学习
King.6242 小时前
sql工具!好用!爱用!
大数据·数据库·人工智能·sql·学习
Hali_Botebie2 小时前
拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM
算法·机器学习·支持向量机
GOTXX2 小时前
基于深度学习的手势识别算法
人工智能·深度学习·算法·机器学习·数据挖掘·卷积神经网络
Jurio.3 小时前
【论文笔记】Large Brain Model (LaBraM, ICLR 2024)
大数据·论文阅读·人工智能·深度学习·数据挖掘
EasyCVR3 小时前
ISUP协议视频平台EasyCVR萤石设备视频接入平台银行营业网点安全防范系统解决方案
大数据·人工智能·物联网·安全·音视频·监控视频接入
声网4 小时前
WebRTC 作者加入 OpenAI 主导实时 AI 项目;TTS 小模型 OuteTTS v0.2 发布:声音克隆+多语言
人工智能
剑盾云安全专家4 小时前
AI助力PPT创作:从手动到智能,打造高效演示
人工智能·powerpoint
努力的小雨4 小时前
借助AI助手如何高效排查SQL问题
人工智能·后端·豆包marscode