机器学习_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="")
相关推荐
坐吃山猪4 分钟前
Python-UV多环境管理
人工智能·python·uv
努力也学不会java18 分钟前
【Java并发】揭秘Lock体系 -- condition等待通知机制
java·开发语言·人工智能·机器学习·juc·condition
武子康26 分钟前
AI-调查研究-90-具身智能 机器人数据采集与通信中间件全面解析:ROS/ROS2、LCM 与工业总线对比
人工智能·ai·中间件·机器人·职场发展·个人开发·具身智能
新知图书38 分钟前
大模型架构之GPT、LLaMA与PaLM模型
人工智能·gpt·语言模型·大模型应用开发·大模型应用
lisw0540 分钟前
大模型的第一性原理考量:基于物理本质与数学基础的范式重构
网络·人工智能·机器学习
后端小肥肠42 分钟前
Coze+liblib 强强联合!阿容容治愈插画、灵魂画手素描、火柴人漫画,一键生成不翻车
人工智能·aigc·coze
一条数据库1 小时前
中文粤语(广州)语音语料库:6219条高质量语音数据助力粤语语音识别与自然语言处理研究
人工智能·自然语言处理·语音识别
ZHOU_WUYI1 小时前
构建AI安全防线:基于越狱检测的智能客服守护系统
人工智能·安全
l1t1 小时前
编译Duckdb机器学习插件QuackML
数据库·c++·人工智能·机器学习·插件·duckdb
Sunhen_Qiletian1 小时前
从语言到向量:自然语言处理核心转换技术的深度拆解与工程实践导论(自然语言处理入门必读)
人工智能·自然语言处理