news 2026/5/1 7:47:47

机器学习 —— 自助聚合(装袋法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 —— 自助聚合(装袋法)

摘要:装袋法(Bagging)是一种集成学习技术,通过有放回抽样生成多个训练子集,分别训练基础模型后对预测结果进行平均或投票。该方法能降低模型方差,提高稳定性和准确性。示例展示了使用Scikit-learn实现装袋法的完整流程:加载鸢尾花数据集,基于决策树构建包含10个模型的装袋分类器,最终在测试集上获得100%的准确率。装袋法的核心优势在于通过模型多样性降低过拟合风险。

目录

机器学习 —— 自助聚合(装袋法)

装袋法的工作原理

示例:使用 Python 实现装袋法

代码说明

输出结果


机器学习 —— 自助聚合(装袋法)

装袋法(Bagging)是一种集成学习技术,它结合多个模型的预测结果,以提高单个模型的准确性和稳定性。其核心流程是通过有放回的随机抽样创建训练数据的多个子集,用每个子集分别训练一个独立模型,最终通过对所有模型的预测结果取平均(回归任务)或多数投票(分类任务)得到最终预测结果。

装袋法的核心思想是:通过使用多个复杂度较低但仍具备准确性的模型,降低单个模型的方差。通过对多个模型的预测结果进行融合,装袋法能有效降低过拟合风险,提升模型的稳定性。

装袋法的工作原理

装袋法算法按以下步骤执行:

  1. 通过有放回的随机抽样,生成训练数据的多个子集;
  2. 用每个数据子集分别训练一个独立的模型;
  3. 让每个训练好的模型对测试数据进行预测;
  4. 对所有模型的预测结果进行融合,具体方式为取平均(回归)或多数投票(分类)。

装袋法的关键特征是每个模型都基于训练数据的不同子集进行训练,这为集成模型引入了多样性。这些模型通常采用基础估计器(基模型)训练,例如决策树、逻辑回归或支持向量机等。

示例:使用 Python 实现装袋法

下面将展示如何使用 Scikit-learn 库在 Python 中实现装袋法,本示例将使用经典的鸢尾花(Iris)数据集。

# 导入所需库 from sklearn.datasets import load_iris from sklearn.ensemble import BaggingClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 iris = load_iris() # 将数据分割为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42) # 定义基础估计器(决策树,最大深度为3) base_estimator = DecisionTreeClassifier(max_depth=3) # 定义装袋分类器(包含10个决策树模型) bagging = BaggingClassifier(base_estimator=base_estimator, n_estimators=10, random_state=42) # 训练装袋分类器 bagging.fit(X_train, y_train) # 用训练好的模型对测试集进行预测 y_pred = bagging.predict(X_test) # 评估模型准确率 accuracy = accuracy_score(y_test, y_pred) print("准确率(Accuracy):", accuracy)

代码说明

  1. 首先使用 Scikit-learn 的load_iris函数加载鸢尾花数据集,并通过train_test_split函数将数据集分割为训练集(占比 80%)和测试集(占比 20%);
  2. 定义基础估计器为最大深度为 3 的决策树,避免单棵决策树过拟合;
  3. 构建装袋分类器,包含 10 个基于不同数据子集训练的决策树模型;
  4. 使用fit方法训练装袋分类器,通过predict方法对测试集进行预测;
  5. 利用 Scikit-learn 的accuracy_score函数计算模型在测试集上的准确率。

输出结果

运行上述代码后,将得到以下输出:

准确率(Accuracy): 1.0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:07:50

5步解锁鸣潮自动化工具:从入门到精通的效率提升指南

5步解锁鸣潮自动化工具:从入门到精通的效率提升指南 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 探索鸣潮自…

作者头像 李华
网站建设 2026/5/1 3:39:58

一张图搞定部署:BSHM人像抠图镜像使用流程图解

一张图搞定部署:BSHM人像抠图镜像使用流程图解 1. 引言:为什么你需要一个高效的人像抠图方案? 你有没有遇到过这样的情况:手头有一堆产品宣传照,模特站在各种复杂背景前,而你却要一个个把人像抠出来换上纯…

作者头像 李华
网站建设 2026/4/24 0:39:07

聊天记录总丢失?这款工具让消息永存

聊天记录总丢失?这款工具让消息永存 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitHub_Trending…

作者头像 李华
网站建设 2026/5/1 5:49:38

效果惊艳!Qwen3-Embedding-4B+SGlang打造的跨语言搜索案例

效果惊艳!Qwen3-Embedding-4BSGlang打造的跨语言搜索案例 1. 引言:当跨语言搜索遇上高性能嵌入模型 你有没有遇到过这样的问题:用中文搜索一段内容,却希望找到英文、法文甚至阿拉伯语的相关资料?传统搜索引擎往往束手…

作者头像 李华
网站建设 2026/5/1 6:44:12

实测NewBie-image-Exp0.1:3.5B大模型动漫生成效果惊艳

实测NewBie-image-Exp0.1:3.5B大模型动漫生成效果惊艳 你有没有试过输入一段文字,几秒钟后就得到一张堪比专业画师手绘的动漫图?不是那种边缘模糊、比例失调的“AI味”作品,而是发丝清晰可见、光影自然过渡、角色神态生动、构图富…

作者头像 李华
网站建设 2026/4/27 18:18:46

解锁文献管理新维度:Zotero效率工具Ethereal Style插件效率提升指南

解锁文献管理新维度:Zotero效率工具Ethereal Style插件效率提升指南 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。…

作者头像 李华