集成算法学习笔记

一、集成算法简介

1. 核心思想

类比“多个专家综合判断优于单个专家”,通过构建并结合多个个体学习器,提升模型的泛化能力(降低过拟合风险、提高预测准确性),完成复杂的学习任务。

2. 个体学习器与结合模块

        个体学习器:多个基础模型(如决策树、KNN、SVM等),是集成算法的核心组成单元。

        结合模块:将所有个体学习器的预测结果汇总,输出最终结论,常见结合策略包括3类:

        简单平均法:对回归任务,直接取所有个体学习器预测结果的平均值作为最终输出。

        加权平均法:对回归任务,给不同个体学习器分配不同权重(通常精度高的权重更大),加权求和得到最终结果(公式:H(x) = \sum_{i=1}^{n} \omega_i h_i(x),其中\omega_i为第i个学习器的权重,且\omega_i \geq 0、\sum_{i=1}^{n} \omega_i = 1)。

    投票法:对分类任务,采用“少数服从多数”原则,统计所有个体学习器的预测类别,得票最多的类别为最终结果。

        若多数个体学习器预测正确,集成结果会提升性能(如测试例1中集成正确,单个学习器有错误);

        若个体学习器错误趋势一致,集成可能不起作用(如测试例2)或起负作用(如测试例3)。

二、集成算法分类(按个体学习器生成方式)

根据个体学习器间的依赖关系,分为3类核心算法:

        并行化方法(Bagging):个体学习器无强依赖,可同时生成,代表为随机森林。

        序列化方法(Boosting):个体学习器有强依赖,需串行生成(后一个学习器依赖前一个的结果),代表为AdaBoost。

        堆叠方法(Stacking):聚合多种类型分类器/回归器,分阶段训练,综合多模型结果。

三、Bagging算法与随机森林

1. Bagging算法

        全称:Bootstrap Aggregation(自助聚合)。

        核心逻辑:

    1.    并行训练:通过“有放回采样(Bootstrap)”从原始训练集中生成多个不同的子数据集,每个子数据集对应训练一个个体学习器(如决策树)。

    2.    结果结合:分类任务用简单投票法,回归任务用简单平均法,汇总所有个体学习器结果。

2. 随机森林(Bagging的典型代表)

        定义:以“决策树”为个体学习器的Bagging算法,核心在于“双重随机性”。

        随机1:数据采样随机:通过有放回采样生成不同子数据集,训练不同决策树。

        随机2:特征选择随机:每个决策树在划分节点时,仅从所有特征中随机选择部分特征,再从中选最优切分特征。

        优势:

    1.    能处理高维度数据(特征多),无需手动做特征选择。

    2.    训练后可输出特征重要性,辅助分析。

    3.    个体学习器可并行训练,速度快。

    4.    支持可视化(如决策树结构),便于理解模型逻辑。

3. 随机森林代码实现(Python sklearn)

(1)核心类

        RandomForestClassifier():用于分类任务的随机森林模型。

        RandomForestRegressor():用于回归任务的随机森林模型。

(2)关键参数
参数 含义与取值 
n_estimators 个体学习器(决策树)的数量,默认100,通常需根据数据调整(数量过少易欠拟合,过多增加计算成本)。 
oob_score 是否用“袋外样本(Out of Bag,未被采样到的样本)”评估模型,默认False;设为True时,等同于简易交叉验证,无需额外划分验证集。 
bootstrap 是否采用有放回采样,默认True(Bagging的核心特性,保证子数据集多样性)。 
max_samples 每个决策树训练时使用的最大样本量,默认None(即使用全部子数据集样本)。 

4. 课堂练习:葡萄酒分类

基于sklearn.datasets.load_wine数据集(含13个特征,如酒精含量、苹果酸、灰分等,目标是将葡萄酒分为3类),用RandomForestClassifier()实现分类,步骤包括数据加载、划分训练/测试集、模型训练、精度评估。

四、Boosting算法与AdaBoost

1. Boosting核心思想

从“弱学习器”(精度略高于随机猜测的模型)开始,通过动态调整样本权重和学习器权重,逐步加强模型能力,最终将多个弱学习器串联成“强学习器”。核心特点是个体学习器串行生成(后一个学习器依赖前一个的结果)。

2. AdaBoost(Boosting的典型代表)

(1)核心逻辑

    1.    初始化样本权重:首次训练时,所有样本分配相同的权重(如总样本数为N,每个样本权重为1/N)。

    2.    训练弱学习器并调整样本权重:

        用当前权重的样本集训练一个弱学习器(如简单决策树)。

        计算该学习器的分类误差率,对分类错误的样本提高权重(下次训练更关注这些难分样本),对分类正确的样本降低权重。

    3.    迭代训练多个弱学习器:重复步骤2,生成多个弱学习器。

    4.    组合弱学习器为强学习器:

        给误差率低的弱学习器分配更大权重(其预测结果更可信),给误差率高的分配更小权重。

        最终预测时,加权汇总所有弱学习器的结果(分类任务为加权投票,回归任务为加权平均)。

(2)核心优势

通过“关注难分样本+加权组合学习器”,能有效提升弱学习器的整体性能,泛化能力强,对简单数据集效果显著。

五、Stacking算法

1. 核心思想

“暴力聚合多种模型”,不限制个体学习器类型(可同时使用KNN、SVM、随机森林、逻辑回归等),分两个阶段训练:

    1.    第一阶段(基础模型训练):用原始训练集训练所有选定的基础模型,得到每个模型对训练集和测试集的预测结果。

    2.    第二阶段(元模型训练):将第一阶段的预测结果作为“新特征”,训练一个“元模型”(如逻辑回归、简单决策树),最终由元模型输出集成结果。

2. 特点

        灵活性高:可融合多种类型模型的优势,适合复杂数据集。

        计算成本高:需训练多类基础模型和元模型,步骤较繁琐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94135.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让Chrome信任自签名证书

让Chrome信任自签名证书(Unix系列OS) 背景 想在本地测试自己写的基于HTTPS连接的Web应用,跑在3001端口。但使用Chrome浏览器访问https://localhost:3001时显示连接不安全。解决了但没解决 使用mkcert一键创建证书: mkcert localho…

[江科大库]基于 OpenMV 的矩形识别与 STM32 串口通信(电子设计大赛实用教程)

🎯 基于 OpenMV 的矩形识别与 STM32 串口通信(电子设计大赛实用教程) 一、前言 在本科生电子设计大赛中,经常会遇到图像识别相关的任务,例如: 识别 矩形框(如识别一个 A4 纸、黑色标记框等); 将识别结果传输到 STM32 单片机,用于后续控制(舵机、移动小车、机械臂…

人脸识别驱动的工厂人体属性检测与预警机制

人体属性检测:人脸识别智慧检测驱动的工厂管理革新(所有图片均为真实项目案例)在制造业数字化转型浪潮中,人体属性检测技术已成为破解传统工厂管理难题的核心工具。通过融合人脸识别智慧检测、目标检测算法与多模态数据分析&#…

数据工程师——ETL

ETL面试题01 一、基础概念与理论类 1. 请解释什么是 ETL?它在数据处理流程中扮演什么角色? 答:ETL就是数据抽取、转化、加载。目的是将分散的数据源集中在一起进行处理分析。 数据抽取:是指各种数据源中抽取数据,包括关系型数据库(MySQL、Oracle等)、日志文件、Exce…

Oracle APEX 经典报表中的Checkbox

目录 1. 建表&投入测试数据 2. 经典报表做成 2-1. 画面布局如下​编辑 2-2. 报表使用的SQL 2-3. RS列的Heading设定 2-4. Function and Global Variable Declaration 2-5. Execute when Page Loads 2-6. Process 3. 运行效果​编辑 1. 建表&投入…

Codeforces Round 1043 (Div.3)

比赛连接:Codeforces Round 1043 (Div.3) A. Homework 题目链接:A - Homework Vlad and Dima have been assigned a task in school for their English class. They were given two strings aaa and bbb and asked to append all characters from bbb …

GPS欺骗式干扰的产生

我们在GNSS抗干扰天线的选型、测试方法以及为什么不能做RTK?(抗干扰内容全集)中提到的抗干扰天线,针对的是GPS压制式干扰。对于GPS欺骗式干扰,抗干扰天线是无能为力的。 简单来说,压制式干扰是通过发射强功…

[PV]AXI R/W/RW带宽计算的tcl脚本

AXI R/W/RW带宽计算的tcl脚本 我基于前述的axi_read_bw_per_id.tcl脚本进行了修改,使其支持: 读通道(Read Channel):计算基于rvalid && rready的有效周期(已在前述实现)。 写通道(Write Channel):计算基于wvalid && wready的有效周期,考虑wstrb的ac…

阿里云AnalyticDB同步数据至华为云taurusdb

1 概述 AnalyticDB和taurusdb都是高度兼容mysql协议的数据库,从现有的AnalyticDB官方数据同步方案来看,只有FlinkSQL合适。 同步方案官方文档: https://help.aliyun.com/zh/analyticdb/analyticdb-for-mysql/user-guide/flink-subscribes-b…

学习嵌入式之驱动——系统移植(二)

一、uboot常用命令与环境变量1.命令:(1)环境变量操作命令命令功能格式printenv 查看环境变量printenvsetenv新建/修改环境变量setenv 环境变量名 环境变量值saveenv保存环境变量saveenv(2)内存操作命令命令功能格式示例…

EasyExcel 合并单元格最佳实践:基于注解的自动合并与样式控制

EasyExcel 合并单元格最佳实践:基于注解的自动合并与样式控制 前言 在日常开发中,我们经常需要导出 Excel 报表,而合并单元格是提升报表可读性的常见需求。本文将介绍如何基于 EasyExcel 实现智能的单元格合并功能,通过自定义注解…

Unity设置UI显示区域

系列文章目录 untiy工具 文章目录 系列文章目录 👉前言 👉一、效果图 👉二、制作过程(检测中心点位置) 👉2-1、代码实现 👉三、优化为检测整个UI四个角点 👉四、性能优化建议 👉壁纸分享 👉总结 👉前言 思路: 获取屏幕的宽度和高度,定义中间区域的范围…

Qt中用于图像缩放的核⼼⽅法QPixmap::scaled

QPixmap::scaled是Qt中用于图像缩放的核⼼⽅法,其作⽤和⽤法如下:‌一、核心作用‌‌图像尺寸调整‌根据指定尺寸对图像进⾏等⽐例或⾮等⽐例缩放,⽀持放⼤和缩⼩操作。‌保持宽高比‌通过AspectRatioMode参数控制是否保持原始图像的宽⾼⽐。…

SQL Workbench/J:一款免费开源、跨平台的通用SQL查询工具

SQL Workbench/J 是一款基于 Java 开发的免费开源、跨平台的通用 SQL 查询工具。 SQL Workbench/J 主要专注于 SQL 脚本开发和数据导入导出功能,不提供各种数据库管理功能。 功能特性 跨平台:可以在任何安装了 Java 运行时环境的操作系统上运行&#xf…

DOLO 上涨:Berachain 生态爆发的前奏?

在 Berachain 生态逐渐进入公众视野之际,Dolomite(简称 Dolomite,代币 DOLO)成为链上表现最为突出的明星协议。其代币价格在短短两个月内,从 $0.03 飙升至 $0.3,涨幅接近 10 倍。市场不仅将其视作 Berachai…

吉利汽车与芯鼎微成立联合创新实验室共谱车规级LCoS显示新篇章

2025年8月20日,吉利汽车研究院技术规划中心副主任李莉、光学实验室负责人李金桦博士等一行四人莅临芯鼎微,双方共同为"吉利汽车-芯鼎微联合创新实验室"揭牌,标志着两家企业在车载先进显示技术领域迈入深度协同创新的新阶段。 在这汽…

NPM组件 @angular_devkit/core 等窃取主机敏感信息

【高危】NPM组件 angular_devkit/core 等窃取主机敏感信息 漏洞描述 当用户安装受影响版本的 angular_devkit/core 等NPM组件包时会窃取用户的主机名、用户名、IP地址信息并发送到攻击者可控的服务器地址。 MPS编号MPS-1jf5-s6ix处置建议强烈建议修复发现时间2025-08-14投毒…

docker cuda版安装 dockercuda版安装

目录 1.一键安装docker 测试ok 2.安装cuda支持 通用的应该没问题 安装工具包 配置 runtime: 3.检查 Docker 是否支持 NVIDIA 运行时 1.一键安装docker 测试ok curl -fsSL https://get.docker.com | sh 2.安装cuda支持 通用的应该没问题 也可以搜索安装 cuda版d…

Spring发布订阅模式详解

Spring 的发布订阅模式(Publish-Subscribe Pattern)是一种基于事件驱动的设计模式,通过 "事件" 作为中间载体实现组件间的解耦。在这种模式中,"发布者"(Publisher)负责产生事件并发布&…

服务器硬件中的磁盘SSD与HDD性能区别,以及分别适用于什么业务?

SSD(固态硬盘)和 HDD(机械硬盘)是服务器中常见的存储设备类型,两者在性能、可靠性、成本等方面存在显著差异。根据这些特性,它们适用于不同的业务需求。以下是详细的对比与应用场景分析:1. SSD …