当前位置: 首页 > article >正文

【机器学习基础】机器学习入门核心算法:集成学习(Ensemble Learning)

在这里插入图片描述

机器学习入门核心算法:集成学习(Ensemble Learning)

    • 1. 算法逻辑
        • 核心逻辑:
    • 2. 算法原理与数学推导
        • 2.1 Bagging(Bootstrap Aggregating)
        • 2.2 Boosting
        • 2.3 Stacking
    • 3. 模型评估
        • 评估指标
        • 基学习器选择策略
    • 4. 应用案例
        • 4.1 金融风控(Stacking)
        • 4.2 医学影像诊断(Boosting)
        • 4.3 推荐系统(Bagging)
    • 5. 面试题
    • 6. 优缺点分析
        • **优点**:
        • **缺点**:
    • 7. 数学证明:为什么集成有效

1. 算法逻辑

集成学习通过组合多个基学习器来提升模型性能,核心思想是"三个臭皮匠,顶个诸葛亮"。主要分为三类:

集成学习
Bagging
Boosting
Stacking
并行训练
随机森林
串行训练
AdaBoost/GBDT
分层训练
Blending
核心逻辑:
  1. 多样性原则:基学习器应有差异性(不同结构/数据/特征)
  2. 组合策略
    • 平均法(回归)
    • 投票法(分类)
    • 学习法(Stacking)

2. 算法原理与数学推导

2.1 Bagging(Bootstrap Aggregating)

原理:通过自助采样构建多个独立模型

  • 采样率:约63.2%的样本被选中( l i m n → ∞ ( 1 − 1 n ) n = 1 e ≈ 0.368 lim_{n \to \infty} (1-\frac{1}{n})^n = \frac{1}{e} \approx 0.368 limn(1n1)n=e10.368)
  • 最终预测: f bag ( x ) = 1 T ∑ t = 1 T f t ( x ) f_{\text{bag}}(x) = \frac{1}{T} \sum_{t=1}^T f_t(x) fbag(x)=T1t=1Tft(x)

方差减少证明
Var ( f ˉ ) = ρ σ 2 + 1 − ρ T σ 2 \text{Var}(\bar{f}) = \rho \sigma^2 + \frac{1-\rho}{T} \sigma^2 Var(fˉ)=ρσ2+T1ρσ2
其中 ρ \rho ρ是模型间相关性,Bagging通过随机采样降低 ρ \rho ρ

2.2 Boosting

原理:顺序训练模型,后续模型聚焦前序错误

AdaBoost推导(二分类):

  1. 初始化权重: w i ( 1 ) = 1 N w_i^{(1)} = \frac{1}{N} wi(1)=N1
  2. t = 1 to  T t=1 \text{ to } T t=1 to T
    • 训练弱分类器 h t h_t ht
    • 计算错误率: ϵ t = ∑ i = 1 N w i ( t ) 1 ( h t ( x i ) ≠ y i ) \epsilon_t = \sum_{i=1}^N w_i^{(t)} \mathbf{1}(h_t(x_i) \neq y_i) ϵt=i=1Nwi(t)1(ht(xi)=yi)
    • 计算权重: α t = 1 2 ln ⁡ ( 1 − ϵ t ϵ t ) \alpha_t = \frac{1}{2} \ln \left( \frac{1-\epsilon_t}{\epsilon_t} \right) αt=21ln(ϵt1ϵt)
    • 更新样本权重: w i ( t + 1 ) = w i ( t ) e − α t y i h t ( x i ) Z t w_i^{(t+1)} = \frac{w_i^{(t)} e^{-\alpha_t y_i h_t(x_i)}}{Z_t} wi(t+1)=Ztwi(t)eαtyiht(xi)
  3. 最终模型: H ( x ) = sign ( ∑ t = 1 T α t h t ( x ) ) H(x) = \text{sign} \left( \sum_{t=1}^T \alpha_t h_t(x) \right) H(x)=sign(t=1Tαtht(x))
2.3 Stacking

原理:分层训练元学习器
Level 1: y ^ i ( k ) = f k ( x i ) \text{Level 1:} \quad \hat{y}_i^{(k)} = f_k(x_i) Level 1:y^i(k)=fk(xi)
Level 2: g ( y ^ i ( 1 ) , . . . , y ^ i ( K ) ) \text{Level 2:} \quad g(\hat{y}_i^{(1)}, ..., \hat{y}_i^{(K)}) Level 2:g(y^i(1),...,y^i(K))

3. 模型评估

评估指标
评估维度指标
准确性准确率(分类)/MSE(回归)
鲁棒性OOB误差/交叉验证方差
多样性Q统计量/Kappa系数
计算效率训练时间/预测延迟
基学习器选择策略
  1. 精度-多样性权衡
    • 高精度:SVM、神经网络
    • 高多样性:决策树、KNN
  2. 数量选择
    Error ∝ e − k T ( 经验公式 ) \text{Error} \propto e^{-kT} \quad (\text{经验公式}) ErrorekT(经验公式)
    通常取10-100个基学习器

4. 应用案例

4.1 金融风控(Stacking)
  • 结构
    Level 1: Logistic回归 + 随机森林 + XGBoost
    Level 2: 神经网络元学习器
  • 效果:AUC=0.92,比单模型提升8%
4.2 医学影像诊断(Boosting)
  • 方案:AdaBoost + CNN特征提取器
  • 数据:皮肤癌ISIC数据集
  • 结果:恶性黑色素瘤识别率96.3%
4.3 推荐系统(Bagging)
  • 场景:Netflix视频推荐
  • 技术:随机森林 + 矩阵分解集成
  • 指标:RMSE降低至0.85(Kaggle冠军方案)

5. 面试题

Q1:为什么集成学习能提升性能?
A:通过偏差-方差分解解释:
E [ ( y − f ^ ) 2 ] = Bias 2 ( f ^ ) + Var ( f ^ ) + σ 2 E[(y-\hat{f})^2] = \text{Bias}^2(\hat{f}) + \text{Var}(\hat{f}) + \sigma^2 E[(yf^)2]=Bias2(f^)+Var(f^)+σ2

  • Bagging主要降低方差
  • Boosting主要降低偏差
  • 二者都能减少不可约误差 σ 2 \sigma^2 σ2

Q2:如何处理基学习器相关性?
A:三种方法:

  1. 特征随机(随机森林)
  2. 数据扰动(Bagging)
  3. 算法扰动(不同学习器组合)

Q3:为什么GBDT比AdaBoost更流行?

维度GBDTAdaBoost
损失函数自定义(Huber/Quantile)指数损失
数据兼容性支持缺失值需完整数据
特征重要性内置计算需额外实现
超参敏感性较低较高

6. 优缺点分析

优点
  1. 精度提升:Netflix竞赛中集成方案比单模型误差低28%
  2. 鲁棒性强:对噪声数据和异常值不敏感
  3. 避免过拟合:Bagging类方法天然正则化
  4. 灵活扩展:支持异构学习器组合(如SVM+决策树)
缺点
  1. 计算成本高
    • 训练时间: O ( T × t base ) O(T \times t_{\text{base}}) O(T×tbase)
    • 存储空间: O ( T × s base ) O(T \times s_{\text{base}}) O(T×sbase)
  2. 可解释性差:比单模型更难解释(SHAP值可缓解)
  3. 实现复杂度:Stacking需多阶段训练
  4. 边际递减:性能随学习器数量增加而饱和

7. 数学证明:为什么集成有效

分类错误率分析(假设基学习器独立):
P ( 错误 ) = ∑ k = ⌊ T / 2 ⌋ + 1 T ( T k ) p k ( 1 − p ) T − k P(\text{错误}) = \sum_{k=\lfloor T/2 \rfloor+1}^T \binom{T}{k} p^k (1-p)^{T-k} P(错误)=k=T/2+1T(kT)pk(1p)Tk
其中 p p p为单学习器错误率。当 p < 0.5 p<0.5 p<0.5时:
lim ⁡ T → ∞ P ( 错误 ) = 0 \lim_{T \to \infty} P(\text{错误}) = 0 TlimP(错误)=0

实际案例

  • p = 0.4 , T = 25 p=0.4, T=25 p=0.4,T=25时,集成错误率 < 0.01 <0.01 <0.01
  • p = 0.4 , T = 100 p=0.4, T=100 p=0.4,T=100时,集成错误率 ≈ 10 − 7 \approx 10^{-7} 107

💡 关键洞察:集成学习的本质是通过多样性降低风险

  1. 数据多样性:Bagging的自助采样
  2. 特征多样性:随机森林的特征扰动
  3. 模型多样性:Stacking的异构学习器

实际应用建议:

  • 首选方案:从随机森林/XGBoost开始(Scikit-Learn实现)
  • 调参重点:控制基学习器数量与复杂度平衡
  • 工业部署:使用ONNX加速集成模型推理
  • 可解释性:结合SHAP/LIME解释集成决策

⚠️ 注意事项:当基学习器精度<50%时,集成效果可能变差(需筛选合格基学习器)

相关文章:

【机器学习基础】机器学习入门核心算法:集成学习(Ensemble Learning)

机器学习入门核心算法&#xff1a;集成学习&#xff08;Ensemble Learning&#xff09; 1. 算法逻辑核心逻辑&#xff1a; 2. 算法原理与数学推导2.1 Bagging&#xff08;Bootstrap Aggregating&#xff09;2.2 Boosting2.3 Stacking 3. 模型评估评估指标基学习器选择策略 4. 应…...

【TMS570LC4357】之相关驱动开发学习记录1

系列文章目录 【TMS570LC4357】之工程创建 【TMS570LC4357】之工程配置修改 【TMS570LC4357】之HALCOGEN使用 【TMS570LC4357】之相关问题及解决 ——————————————————— 前言 记录笔者在第一次使用TMS570过程中对外设驱动的一些学习碎片。 1. RTI 1.1 添…...

RAG入门 - Retriever(1)

文章目录 环境准备知识库加载1. Retriever - embeddings &#x1f5c2;️1.1 将文档拆分为chunks1.2 词嵌入1.3 构建向量数据库Nearest Neighbor search algorithm &#xff08;最近邻搜索算法&#xff09;Distances &#xff08;距离&#xff09;点积&#xff08;Dot Product&…...

pyspark实践

1。pyspark是什么 PySpark 是 Apache Spark 的官方 Python 接口&#xff0c;它使得 Python 开发者能够访问 Spark 的核心功能&#xff0c;如&#xff1a; Spark SQL&#xff1a;用于执行 SQL 查询以及读取数据的库&#xff0c;支持多种数据格式和存储系统。py.qizhen.xyz Data…...

内网怎么映射外网ip? 内网的地址快速映射给外网访问用方法

本文章向大家介绍内网怎么映射外网ip&#xff0c;主要包括如何将内网 IP 端口的网络服务映射到外网使用实例、应用技巧、基本知识点总结和需要注意事项&#xff0c;具有一定的参考价值&#xff0c;需要的朋友可以参考一下。内容主要包括路由映射公网IP和无公网IP通过nat123映射…...

【深度学习新浪潮】多模态模型如何处理任意分辨率输入?

多模态模型处理任意分辨率输入的能力主要依赖于架构设计的灵活性和预处理技术的结合。以下是核心方法及技术细节: 一、图像模态的分辨率处理 1. 基于Transformer的可变补丁划分(ViT架构) 补丁化(Patch Embedding): 将图像分割为固定大小的补丁(如1616或3232像素),不…...

ZYNQ移植FreeRTOS和固化和openAMP双核

想象一下:一颗拥有“双脑”的ZYNQ芯片,左脑运行Linux处理复杂网络协议,右脑运行FreeRTOS以微秒级精度控制电机,双脑通过“量子纠缠”般的技术实时对话——这就是OpenAMP框架创造的工程奇迹!今天,我们将揭开这项技术的神秘面纱,带你从零构建一个双核异构的智能系统。 🧠…...

K-匿名模型

K-匿名模型是隐私保护领域的一项基础技术&#xff0c;防止通过链接攻击从公开数据中重新识别特定个体。其核心思想是让每个个体在发布的数据中“隐匿于人群”&#xff0c;确保任意一条记录至少与其他K-1条记录在准标识符&#xff08;Quasi-Identifiers, QIDs&#xff09;上不可…...

UE5蓝图暴露变量,在游戏运行时修改变量实时变化、看向目标跟随目标Find Look at Rotation、修改玩家自身弹簧臂

UE5蓝图中暴露变量&#xff0c;类似Unity中public一个变量&#xff0c;在游戏运行时修改变量实时变化 1&#xff0c;添加变量 2&#xff0c;设置变量的值 3&#xff0c;点开小眼睛&#xff0c;此变量显示在编辑器中&#xff0c;可以运行时修改 看向目标跟随目标Find Look at R…...

C语言进阶知识:深入探索编程的奥秘

一、指针&#xff1a;C语言的灵魂 指针是C语言中最核心的概念之一&#xff0c;它为程序员提供了对内存的直接操作能力。指针变量存储的是一个地址&#xff0c;通过这个地址可以访问和修改内存中的数据。 &#xff08;一&#xff09;指针的基本操作 指针的声明 指针的声明格式…...

机器视觉2D定位引导一般步骤

机器视觉的2D定位引导是工业自动化中的核心应用,主要用于精确确定目标物体的位置(X, Y坐标)和角度(旋转角度θ),并引导机器人或运动机构进行抓取、装配、对位、检测等操作。其一般步骤可概括如下: 一、系统规划与硬件选型 明确需求: 定位精度要求(多少毫米/像素,多少…...

Python-matplotlib中的Pyplot API和面向对象 API

matplotlib中的Pyplot API和面向对象 API Pyplot API&#xff08;状态机模式&#xff09;面向对象 API 详解二者差别核心区别方法命名差异注意事项差别举例 &#x1f345; Pyplot API&#xff08;状态机模式&#xff09;和面向对象 API 是两种不同的编程接口.&#x1f345; 它们…...

FastAPI安全认证:从密码到令牌的魔法之旅

title: FastAPI安全认证:从密码到令牌的魔法之旅 date: 2025/06/02 13:24:43 updated: 2025/06/02 13:24:43 author: cmdragon excerpt: 在FastAPI中实现OAuth2密码流程的认证机制。通过创建令牌端点,用户可以使用用户名和密码获取JWT访问令牌。代码示例展示了如何使用Cry…...

人工智能时代教师角色的重塑与应对策略研究:从理论到实践的转型

一、引言 1.1 研究背景 近年来&#xff0c;人工智能技术迅猛发展&#xff0c;已经逐渐渗透到社会的各个领域&#xff0c;对人类的生产、生活和学习方式产生了深远影响。作为社会发展的重要组成部分&#xff0c;教育领域也不可避免地受到人工智能的冲击&#xff0c;正经历着前…...

java对接bacnet ip协议(跨网段方式)

1、环境准备 #maven环境<repositories><repository><id>ias-releases</id><url>https://maven.mangoautomation.net/repository/ias-release/</url></repository></repositories><dependencies><dependency><…...

LabVIEW超宽带紧凑场测量系统

采用 LabVIEW 开发超宽带紧凑场测量系统&#xff0c;实现天线方向图、目标雷达散射截面&#xff08;RCS&#xff09;及天线增益的自动化测量。通过品牌硬件设备&#xff0c;优化系统架构&#xff0c;解决传统测量系统在兼容性、数据处理效率及操作便捷性等方面的问题&#xff0…...

编译rustdesk,使用flutter、hwcodec硬件编解码、支持Windows 7系统

目录 安装相应的环境安装visual studio安装vpkg安装rust开发环境安装llvm和clang编译源码下载源码使用Sciter作为UI的(已弃用)使用flutter作为UI的(主流)下载flutter sdk桥接静默安装支持Windows 7系统最近某desk免费的限制越来越多,实在没办法,平时远程控制用的比较多,…...

ROS机器人和NPU的往事和新知-250602

往事&#xff1a; 回顾一篇五年前的博客&#xff1a; ROS2机器人笔记20-12-04_ros2 移植到vxworks-CSDN博客 里面提及专用的机器人处理器&#xff0c;那时候只有那么1-2款专用机器人处理器。 无关&#xff1a; 01&#xff1a; 每代人的智商和注意力差异是如何出现的-250602-…...

【从零开始学习QT】信号和槽

目录 一、信号和槽概述 信号的本质 槽的本质 二、信号和槽的使用 2.1 连接信号和槽 2.2 查看内置信号和槽 2.3 通过 Qt Creator 生成信号槽代码 自定义槽函数 自定义信号 自定义信号和槽 2.4 带参数的信号和槽 三、信号与槽的连接方式 3.1 一对一 &#xff08;1&…...

MCP调研

什么是 MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;&#xff0c;是由 Anthropic 在 2024 年 11 月底推出的开放标准协议&#xff0c;旨在统一大型语言模型&#xff08;LLM&#xff09;与外部数据源、工具的通信方式。MCP 的主要目的在于…...

TDengine 运维——巡检工具(定期检查)

背景 TDengine 在运行一段时间后需要针对运行环境和 TDengine 本身的运行状态进行定期巡检&#xff0c;本文档旨在说明如何使用巡检工具对 TDengine 的运行环境进行自动化检查。 安装工具使用方法 工具支持通过 help 参数查看支持的语法 Usage: taosinspect [OPTIONS]Check…...

8.7 基于EAP-AKA的订阅转移

8.7 基于EAP-AKA的订阅转移 以下场景描述如下情况&#xff1a; • 主ODSA设备应用程序被允许用于该类型主设备&#xff0c;且已获得服务提供商&#xff08;SP&#xff09;授权。 • 终端用户在存有活跃订阅的旧主设备上发起订阅转移请求&#xff0c;且可访问eSIM数据。 • 由于…...

qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力

qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力 完整可运行代码: import torch import torch.nn.functional as F from transformers...

调整数据集的方法

我们对worldquant中的数据&#xff0c; 对数据频率怎么算 在 WorldQuant 平台中&#xff0c;数据更新频率是影响量化策略有效性、回测准确性和实盘交易表现的核心因素之一。它决定了数据的时效性和连续性&#xff0c;直接关系到策略能否捕捉市场动态、应对突发事件或适应不同…...

TCP 四次挥手

引言&#xff1a;优雅的告别 在网络通信中&#xff0c;建立连接需要三次握手&#xff0c;而终止连接则需要四次挥手。这种设计体现了 TCP 协议的可靠性和完整性原则。本文将用通俗易懂的方式&#xff0c;深入解析四次挥手的原理、状态转换和实际应用&#xff0c;帮助您掌握这一…...

MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法|文献速递-深度学习医疗AI最新文献

Title 题目 MSTNet: Multi-scale spatial-aware transformer with multi-instance learning for diabetic retinopathy classification MSTNet&#xff1a;用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法 01 文献速递介绍 糖尿病视网膜病变&#…...

docker运行程序Killed异常排查

问题描述 我最近开发了一个C 多线程程序&#xff0c;测试没有问题&#xff0c;封装docker测试也没有问题&#xff0c;然后提交给客户了&#xff0c;然后在他那边测试有问题&#xff0c;不定时、不定位置异常中断&#xff0c;以前一直认为只要封装了docker就万事大吉&#xff0…...

【数学 逆序对 构造】P12386 [蓝桥杯 2023 省 Python B] 混乱的数组|普及+

本文涉及知识点 数学 构造 P12386 [蓝桥杯 2023 省 Python B] 混乱的数组 题目描述 给定一个正整数 x x x&#xff0c;请找出一个尽可能短的仅含正整数的数组 A A A 使得 A A A 中恰好有 x x x 对 i , j i, j i,j 满足 i < j i < j i<j 且 A i > A j A_…...

Excel 批量下载PDF、批量下载考勤图片——仙盟创梦IDE

在办公场景中&#xff0c;借助应用软件实现 Excel 批量处理考勤图片、电子文档与 PDF&#xff0c;具有诸多显著优势。 从考勤图片处理来看&#xff0c;通过 Excel 批量操作&#xff0c;能快速提取图片中的考勤信息&#xff0c;如员工打卡时间、面部识别数据等&#xff0c;节省…...

PCIe-Error Detection(一)

下表为PCIe协议中给出的错误&#xff1a; 一、可纠正错误&#xff08;Correctable Errors&#xff0c;8种&#xff09;​​ ​​检错机制​​ ​​错误名称​​​​检测层级​​​​触发条件​​​​Receiver Error​​Physical接收端均衡器&#xff08;EQ&#xff09;监测到…...