DataWhale集成学习【中】:(二)Bagging

2024-04-09 19:08

本文主要是介绍DataWhale集成学习【中】:(二)Bagging,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 这篇博文是 DataWhale集成学习【中】 的第二部分,主要是介绍Bagging
  • 参考资料为DataWhale开源项目:机器学习集成学习与模型融合(基于python)和scikit-learn官网
  • 学习交流欢迎联系 obito0401@163.com

文章目录

  • 原理
  • 案例

原理

  • 在DataWhale集成学习【中】:(一)投票法我们提到过:要想让整体模型取得更好的效果,应该增加模型之间的差异性。而增加模型之间的差异性的方法主要有两种:一是不同的数据,另一则是不同的方法
  • Bagging 方法的出发点就是不同的数据,其核心之处在于自助采样(bootstrap),即有放回的从数据集中进行采样
  • 基本流程:首先随机取出一个样本放入采样集合中,再把这个样本放回初始数据集,重复 K 次采样,则最终可以获得一个大小为 K 的样本集合。同样的方法,可以取出 T 个大小为 K 的样本集合,然后基于每个采样集合训练出一个基学习器,将这 T 个基学习器进行集成即可
  • 应用之处:Bagging 是一种降低方差的技术,因此在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更加明显。在实际中,加入列采样的 Bagging 技术对高维小样本有很好的效果

案例

  • Python 的 sklearn 库中提供了 BaggingRegressorBaggingClassifier 两种 Bagging 方法
  • 下面的案例演示的是BaggingClassifier API的应用,基模型默认为树模型
# 导入函数库
from numpy import mean,std
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score,RepeatedStratifiedKFold
from sklearn.ensemble import BaggingClassifier# 加载数据集
X,y = make_classification(n_samples=1000,n_features=20,n_informative=15,n_redundant=5,random_state=911)
# 训练模型
model = BaggingClassifier()
# 评估模型
cv = RepeatedStratifiedKFold(n_splits=10,n_repeats=3,random_state=911)
n_scores = cross_val_score(model,X,y,scoring="accuracy",cv=cv,n_jobs=-1,error_score="raise")
print("Accuracy: %.3f,标准差为 %.3f"%(mean(n_scores),std(n_scores)))

在这里插入图片描述

这篇关于DataWhale集成学习【中】:(二)Bagging的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888985

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项