机器学习强基计划10-1:为什么需要集成学习?核心原理是什么?

news2024/11/18 22:50:38

目录

  • 0 写在前面
  • 1 集成学习概念与优势
  • 2 结合策略梳理
    • 2.1 加权平均法
    • 2.2 投票法
    • 2.3 学习法
  • 3 误差-分歧分解

0 写在前面

机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编写、测试与文章配套的各个经典算法,不依赖于现有库,可以大大加深对算法的理解。

🚀详情:机器学习强基计划(附几十种经典模型源码)


1 集成学习概念与优势

集成学习(ensemble learning)并非一种机器学习算法,而是一种通过结合多个学习器来获得比单一学习器显著优越泛化性能的算法框架。集成学习的基本概念整理如下,可以收藏一下~

在这里插入图片描述

集成学习的算法框架如图所示

在这里插入图片描述
那么为什么需要集成学习呢?是因为相比个体学习器,集成学习具有特别的优势:

  • 统计意义:学习任务的假设空间往往很大,若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器会减小这一风险;
  • 计算意义:学习算法往往会陷入局部极小值——有的局部陷阱对应的泛化性能可能很糟糕, 结合多个学习器可降低陷入局部陷阱的风险;
  • 表示意义:某些学习任务的真实假设可能不在当前学习算法的假设空间中,结合多个学习器扩大总体假设空间,有可能学得更好的近似。

在这里插入图片描述

2 结合策略梳理

在结合策略中,设集成包含 T T T个个体学习器 { h 1 , h 2 , ⋯   , h T } \left\{ h_1,h_2,\cdots ,h_T \right\} {h1,h2,,hT} H H H是结合 T T T个个体学习器后的集成模型

2.1 加权平均法

加权平均法(weighted averaging)表示如下

H ( x ) = ∑ i = 1 T w i h i ( x ) , ( w i ⩾ 0 且 ∑ i = 1 T w i = 1 ) H\left( \boldsymbol{x} \right) =\sum_{i=1}^T{w_ih_i\left( \boldsymbol{x} \right)}, \left( w_i\geqslant 0\text{且}\sum\nolimits_{i=1}^T{w_i}=1 \right) H(x)=i=1Twihi(x),(wi0i=1Twi=1)

其中 w i w_i wi为个体学习器 h i h_i hi的权重,权重一般由训练数据中学习得到,例如估计出个体学习器的误差,然后令权重大小与误差大小成反比。特别地,当 w i = 1 / T w_i={{1}/{T}} wi=1/T时,加权平均法退化为简单平均法(simple averaging)。一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。平均法策略常用于回归任务。

2.2 投票法

投票法(voting)策略常用于分类任务。设类别集合为 { c 1 , c 2 , ⋯   , c N } \left\{ c_1,c_2,\cdots ,c_N \right\} {c1,c2,,cN},则个体学习器 h i h_i hi在样本 x \boldsymbol{x} x上的输出是一个 N N N维向量 [ h i 1 ( x ) h i 2 ( x ) ⋯ h i N ( x ) ] T \left[ \begin{matrix} h_{i}^{1}\left( \boldsymbol{x} \right)& h_{i}^{2}\left( \boldsymbol{x} \right)& \cdots& h_{i}^{N}\left( \boldsymbol{x} \right)\\\end{matrix} \right] ^T [hi1(x)hi2(x)hiN(x)]T,其中 h i j h_{i}^{j} hij表示 h i h_i hi在类标记 c j c_j cj上的输出。绝对多数投票法(majority voting)核心原理是若某标记得票过半数则预测为该标记,否则拒绝预测

H ( x ) = { c j , i f ∑ i = 1 T h i j ( x ) > 1 2 ∑ k = 1 N ∑ i = 1 T h i k ( x ) r e j e c t , o t h e r w i s e H\left( \boldsymbol{x} \right) =\begin{cases} c_j, \mathrm{if} \sum_{i=1}^T{h_{i}^{j}\left( \boldsymbol{x} \right)}>\frac{1}{2}\sum_{k=1}^N{\sum_{i=1}^T{h_{i}^{k}\left( \boldsymbol{x} \right)}}\\ \mathrm{reject}, \mathrm{otherwise}\\\end{cases} H(x)={cj,ifi=1Thij(x)>21k=1Ni=1Thik(x)reject,otherwise

相对多数投票法(plurality voting)核心原理是得票最多的标记即为预测,若同时有多个最高票,则随机选择一个输出

H ( x ) = c a r g max ⁡ j ∑ i = 1 T h i j ( x ) H\left( \boldsymbol{x} \right) =c_{\mathrm{arg}\max _j\sum\nolimits_{i=1}^T{h_{i}^{j}\left( \boldsymbol{x} \right)}} H(x)=cargmaxji=1Thij(x)

加权投票法(weighted voting)则是在相对多数投票法基础上考虑了个体学习器的权重

H ( x ) = c a r g max ⁡ j ∑ i = 1 T w i h i j ( x ) H\left( \boldsymbol{x} \right) =c_{\mathrm{arg}\max _j\sum\nolimits_{i=1}^T{w_ih_{i}^{j}\left( \boldsymbol{x} \right)}} H(x)=cargmaxji=1Twihij(x)

绝对多数投票法提供了拒绝预测选项,这在可靠性要求较高的学习任务中是一个很好的机制。但若要求必须提供预测结果,则不能采用绝对多数投票法。

根据 h i j h_{i}^{j} hij的取值类型分为两种情形

  • h i j ∈ { 0 , 1 } h_{i}^{j}\in \left\{ 0,1 \right\} hij{0,1}时,称为硬投票(hard voting)
  • h i j ∈ [ 0 , 1 ] h_{i}^{j}\in \left[ 0,1 \right] hij[0,1]时可视为后验概率 ,称为软投票(soft voting)

在软投票中,对能在预测出类别的同时产生分类置信度的学习器(如贝叶斯分类),其分类置信度可直接转化为投票概率。若不存在概率语义(如支持向量机分类间隔),则必须校准后才能作为投票概率。值得注意的是,在异质集成中,不同个体学习器的输出投票概率没有可比性,此时需要根据后验概率将软投票转换成硬投票处理。

2.3 学习法

学习法的核心原理是构造一个元学习器,建立个体学习器 { h 1 , h 2 , ⋯   , h T } \left\{ h_1,h_2,\cdots ,h_T \right\} {h1,h2,,hT}预测输出到集成输出的映射

f : [ h 1 ( x ) h 2 ( x ) ⋯ h T ( x ) ] T ↦ H ( x ) f:\left[ \begin{matrix} h_{1}^{}\left( \boldsymbol{x} \right)& h_{2}^{}\left( \boldsymbol{x} \right)& \cdots& h_{T}^{}\left( \boldsymbol{x} \right)\\\end{matrix} \right] ^T\mapsto H\left( \boldsymbol{x} \right) f:[h1(x)h2(x)hT(x)]TH(x)

这类结合策略的典型是Stacking算法,算法流程如表所示。

在这里插入图片描述

3 误差-分歧分解

误差-分歧分解是分析集成学习对个体学习器性能要求的工具,假设结合策略采用加权平均法

定义个体学习器的分歧(ambiguity) A ( h i ∣ x ) = ( h i ( x ) − H ( x ) ) 2 A\left( h_i|\boldsymbol{x} \right) =\left( h_i\left( \boldsymbol{x} \right) -H\left( \boldsymbol{x} \right) \right) ^2 A(hix)=(hi(x)H(x))2,则集成学习的分歧

A ˉ ( h ∣ x ) = ∑ i = 1 T w i A ( h i ∣ x )    = ∑ i = 1 T w i h i 2 ( x ) − H 2 ( x ) \begin{aligned}\bar{A}\left( h|\boldsymbol{x} \right) &=\sum_{i=1}^T{w_iA\left( h_i|\boldsymbol{x} \right)}\,\, \\ &=\sum_{i=1}^T{w_ih_{i}^{2}\left( \boldsymbol{x} \right)}-H^2\left( \boldsymbol{x} \right)\end{aligned} Aˉ(hx)=i=1TwiA(hix)=i=1Twihi2(x)H2(x)

表征了个体学习器间在样本 x \boldsymbol{x} x上的不一致性——也一定程度上反应了个体学习器的多样性。设真实模型为 f f f,则个体学习器 h i h_i hi与集成模型 H H H的偏差为

{ E ( h i ∣ x ) = ( f ( x ) − h i ( x ) ) 2 , i = 1 , 2 , ⋯   , T E ( H ∣ x ) = ( f ( x ) − H ( x ) ) 2 \begin{cases} E\left( h_i|\boldsymbol{x} \right) =\left( f\left( \boldsymbol{x} \right) -h_i\left( \boldsymbol{x} \right) \right) ^2, i=1,2,\cdots ,T\\ E\left( H|\boldsymbol{x} \right) =\left( f\left( \boldsymbol{x} \right) -H\left( \boldsymbol{x} \right) \right) ^2\\\end{cases} {E(hix)=(f(x)hi(x))2,i=1,2,,TE(Hx)=(f(x)H(x))2

设个体学习器的加权偏差为 E ˉ ( h ∣ x ) = ∑ i = 1 T w i E ( h i ∣ x ) \bar{E}\left( h|\boldsymbol{x} \right) =\sum\nolimits_{i=1}^T{w_iE\left( h_i|\boldsymbol{x} \right)} Eˉ(hx)=i=1TwiE(hix),则有 A ˉ ( h ∣ x ) = E ˉ ( h ∣ x ) − E ( H ∣ x ) \bar{A}\left( h|\boldsymbol{x} \right) =\bar{E}\left( h|\boldsymbol{x} \right) -E\left( H|\boldsymbol{x} \right) Aˉ(hx)=Eˉ(hx)E(Hx) ∀ x \forall \boldsymbol{x} x都成立,设 x   p ( x ) \boldsymbol{x}~p\left( \boldsymbol{x} \right) x p(x),在样本空间有

∫ A ˉ ( h ∣ x ) p ( x ) d x = ∫ E ˉ ( h ∣ x ) p ( x ) d x − ∫ E ( H ∣ x ) p ( x ) d x ⇒ ∑ i = 1 T w i ∫ A ( h i ∣ x ) p ( x ) d x = ∑ i = 1 T w i ∫ E ( h i ∣ x ) p ( x ) d x − ∫ E ( H ∣ x ) p ( x ) d x \int{\bar{A}\left( h|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}=\int{\bar{E}\left( h|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}-\int{E\left( H|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}\\\Rightarrow \sum_{i=1}^T{w_i\int{A\left( h_i|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}}=\sum_{i=1}^T{w_i\int{E\left( h_i|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}}-\int{E\left( H|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}} Aˉ(hx)p(x)dx=Eˉ(hx)p(x)dxE(Hx)p(x)dxi=1TwiA(hix)p(x)dx=i=1TwiE(hix)p(x)dxE(Hx)p(x)dx

令个体学习器 h i h_i hi在全样本空间的泛化误差、分歧,以及集成模型的泛化误差为

{ E i = ∫ E ( h i ∣ x ) p ( x ) d x A i = ∫ A ( h i ∣ x ) p ( x ) d x E = ∫ E ( H ∣ x ) p ( x ) d x \begin{cases} E_i=\int{E\left( h_i|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}\\ A_i=\int{A\left( h_i|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}\\ E=\int{E\left( H|\boldsymbol{x} \right) p\left( \boldsymbol{x} \right) \mathrm{d}\boldsymbol{x}}\\\end{cases} Ei=E(hix)p(x)dxAi=A(hix)p(x)dxE=E(Hx)p(x)dx

则误差-分歧分解为

E = E ˉ − A ˉ {E=\bar{E}-\bar{A}} E=EˉAˉ

其中 E ˉ = ∑ i = 1 T w i E i \bar{E}=\sum\nolimits_{i=1}^T{w_iE_i} Eˉ=i=1TwiEi表示个体学习器泛化误差的加权均值, A ˉ = ∑ i = 1 T w i A i \bar{A}=\sum\nolimits_{i=1}^T{w_iA_i} Aˉ=i=1TwiAi表示个体学习器分歧的加权均值。

误差-分歧分解表明个体学习器性能越好、多样性越大,则集成模型总体的泛化误差 越小。因此,集成学习要求个体学习器满足“好而不同”


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

工业能效提升行动计划-安科瑞EMS能效管理平台解决方案

摘要 2022年6月29日工信部、发改委、财政部、生态环境部、国资委、市场监管总局六部门联合下发《关于印发工业能效提升行动计划的通知》(工信部联节〔2022〕76号,以下简称《行动计划》),主要目的是为了提高工业领域能源利用效率&…

读《Spring Boot 3核心技术与最佳实践》有感

我是谁? 👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金、infoQ、51CTO等 🎉简介:CSDN/阿里云/华为云/51CTO博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者&am…

硬件系统工程师宝典(23)-----磁珠选型,你做对了吗?

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到常用的电容种类有铝电解电容、钽电容、陶瓷电容、OSCON固态电容和薄膜电容,应用时都有各自的特点;电感可分为电源…

最新版Cesium使用天地图三维地形、地名服务

目录 1、项目地址2、实现效果3、实现方法 1、项目地址 可直接运行。 https://github.com/zhengjie9510/cesium-tdt 2、实现效果 3、实现方法 参考博客修改cesiumTdt.js。

2-单片机GPIO相关知识点及流水灯和按键采集小实验

目录 小问题 :单片机上电后第一个执行的程序是? 【1】GPIO 1.定义 2.应用 I - Input 输入采集 O - Output 输出控制 3.GPIO结构框图 4.功能描述 输入功能 5.相关寄存器 【2】输出控制实验 实验:点亮一盏LED灯 1.实验…

Jenkins使用k8s部署应用

1、jenkins在k8s内部署(请参考其他人的文章) 2、jenkins安装kubenents相关插件 3、配置k8s云 非常重要,目的是实现jenkins可以远程调用k8s进行部署,并可实现安装jenkins-slave进行构建。使得不再依赖jenkins单机能力进行构建,比较…

Vue电商项目--search模块面包屑的制作

监听路由的变化再次发请求获取数据 复习: 这里要复习的一点就是:我们这个Search组件里面还有一个子组件,SearchSelector。 还有上面画圈的部分:在发请求之前,把接口需要传递参数,进行整理(在给…

北京超算云中心pytorch/mmcv环境配置

北京超算云中心pytorch/mmcv环境配置 which python查看python路径source deactivate mmseg-dev退出当前环境sbatch --gpus2 ./run.sh提交训练任务作业parajobs查看已提交作业sacncel ID取消作业 先放上常用的基本命令。 下面开始配置pytorch pytorch环境配置 1、输入modul…

Highcharts Core Crack

Highcharts Core Crack 添加了新的“x轴交叉”和“y轴交叉”选项,使创建数学绘图的轴布局变得更容易。 添加了新的“series.legendSymbol”选项。 Highcharts是业界领先的JavaScript图表库。Highcharts被数以万计的开发人员和全球100家最大公司中超过80%的公司使用。…

docker创建ubuntu容器,且在该容器内启动jar包

一、创建并运行ubuntu容器 docker run --name docker_ubuntu(容器名称) -it -v /home/docker_ubuntu:/share // 将本地路径挂载到share目录下--restartalways --privilegedtrue // 设置容器退出时重启容器-p 20000:20000 // 映射内外端口,这里可以多个端口&…

Kubeadm方式搭建K8S集群

Kubeadm方式搭建K8S集群 环境准备 在虚拟机里安装三台centos 7.x操作系统 配置系统名称和ip地址(同一网段)如: 角色IPmaster192.168.66.100node1192.168.66.101node2192.168.66.102 三台机器都要执行的命令:(使用xshell执行命令更方便) …

Cloudcanal数据同步神器

一.背景与需求 最近有个OLAP的需求,我们需要将MySQL的一些数据(这种数据有一种特性就是一旦产生记录,以后不会再进行修改、删除操作,例如登录日志、操作日志等诸如此类)。这种数据特性正好符合Clickhouse的用武之地,我们经过调研最…

【冲刺蓝桥杯】牛客竞赛补题 + 算法模板总结

🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 C/C专栏 🌙请不要相信胜利就像山坡上的蒲公英一样唾…

Songtell.CN:用AI解锁您最喜欢的歌曲背后的含义!

🎧听歌不止是享受,还有深度的情感寓意! 🎧探索音乐真谛,Songtell.CN带你用 AI 解锁歌曲深度含义! 🎶音乐是人类的共同语言,它能够温暖我们的心灵,带给我们力量和勇气。…

参与辅助服务的用户侧储能优化配置及经济分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Web APIs之DOM-获取元素

一.Web API基本认知 二.获取DOM对象 三.操作元素内容 四. 操作元素属性 五.定时器-间歇函数 一、Web API基本认知 *作用和分类 *什么是DOM *DOM树 *DOM对象 1.作用和分类 (1)作用:使用JS去操作html和浏览器 (2&#xff09…

【经验分享】一种高内聚低耦合的消息分发模块的设计与实现

【经验分享】一种高内聚低耦合的消息分发模块的设计与实现 又到了每天的open话题:【代码面对面】时刻,让我们一起在摸鱼中学习技术吧。今天的话题是嵌入式的消息分发模块,你会怎么设计和实现? 1 写在前面 老套路,我先…

开源LLM「RWKV」想要打造AI领域的Linux和Android|ChatAI

RWKV想逐步成为最强开源模型,中期计划取代Transformer。能如愿吗? “我们没有护城河,OpenAI也是。”近期,谷歌内部人士在Discord社区匿名共享了一份内部文件,点破了谷歌和OpenAI正面临的来自开源社区的挑战。尽管经外…

QT的qrc文件的创建和编辑

qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误;下面说一下手动修改pro和编写qrc文件的方法: 2.1 添加qrc文件; 2.2 编写qrc文件; 可以用 file…

SocketTools.NET 11.0 Crack

在所有 HTTP 客户端组件中添加对 HTTP/2.0 协议的支持。 2023 年 5 月 17 日 - 10:58新版本 特征 在所有 HTTP 客户端组件中添加了对 HTTP/2.0 协议的支持。 更新了 TLS 1.2(及更高版本)和 SSH 2.0 的安全选项,以使用 Microsoft Windows 11 和…