news 2026/2/9 16:00:39

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

作者头像

张小明

前端开发工程师

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/2/5 19:34:32

教育资源获取新方式:这款PDF工具让电子教材下载效率提升300%

教育资源获取新方式:这款PDF工具让电子教材下载效率提升300% 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 还在为寻找电子教材耗费大量时间&#xf…

作者头像 李华
网站建设 2026/2/6 17:09:50

云盘功能增强工具:技术测评与应用指南

云盘功能增强工具:技术测评与应用指南 【免费下载链接】123pan_unlock 基于油猴的123云盘解锁脚本,支持解锁123云盘下载功能 项目地址: https://gitcode.com/gh_mirrors/12/123pan_unlock 云盘功能增强工具是一类基于油猴脚本(用户脚本…

作者头像 李华
网站建设 2026/1/30 4:13:07

AI绘画研究新利器:NewBie-image-Exp0.1预置镜像部署实战推荐

AI绘画研究新利器:NewBie-image-Exp0.1预置镜像部署实战推荐 你是否试过花一整天配置环境,结果卡在某个CUDA版本兼容性问题上?是否为了一张动漫风格图反复调试提示词,却始终无法精准控制角色发色、服饰细节或构图逻辑&#xff1f…

作者头像 李华
网站建设 2026/2/3 10:32:32

3步解锁Zotero效率革命:Ethereal Style插件全方位使用指南

3步解锁Zotero效率革命:Ethereal Style插件全方位使用指南 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地…

作者头像 李华
网站建设 2026/2/7 17:32:53

智能客服实战:用Qwen2.5极速版快速搭建问答系统

智能客服实战:用Qwen2.5极速版快速搭建问答系统 你是否遇到过这样的问题:客服人力成本高、响应慢、重复问题多,而部署一个专业级AI客服又动辄需要GPU服务器、数小时配置、复杂API对接?今天我要分享的,是一个真正“开箱…

作者头像 李华
网站建设 2026/2/8 20:59:03

OpCore Simplify:让黑苹果安装像搭积木一样简单的5分钟工具

OpCore Simplify:让黑苹果安装像搭积木一样简单的5分钟工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果的EFI配置头疼吗&…

作者头像 李华