《机器学习》周志华-CH8(集成学习)

8.1个体与集成

  集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统,基于委员会的学习。

在这里插入图片描述
  同质”集成“:只包含同种类型的个体学习器,同质集成中的个体学习器亦称“基学习器”,相应的学习算法称为“基学习算法”

  异质“集成”:由不同学习算法生成,不再有基学习法,称“组件学习器”。

  集成学习常获得比单一学习器显著优越的泛化性能,对“弱学习器”尤为明显。

  要想获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,并且也有差异“多样性”

  以二分类问题 y ∈ { − 1 , + 1 } y\in\{-1,+1\} y{1,+1}和函数 f f f为例,假定基分类器错误率为 ξ \xi ξ,对每个基分类器 h i h_i hi有:
P ( h i ( x ) ≠ f ( x ) ) = ξ \begin{equation} P(h_i(x)\neq{f(x)})=\xi \tag{8.1} \end{equation} P(hi(x)=f(x))=ξ(8.1)
  假设集成通过投票要对 T T T个基分类器判断,则超过半数为正确
H ( x ) = s i g n ( ∑ i = 1 T h i ( x ) ) \begin{equation} H(x)=sign(\sum_{i=1}^Th_i(x)) \tag{8.2} \end{equation} H(x)=sign(i=1Thi(x))(8.2)
  集成错误率为:
P ( H ( x ) ≠ f ( x ) ) = s i g n ( ∑ k = 0 T / 2 [ T K ] ( 1 − ξ ) ξ T − K ≤ e x p ( − 1 2 T ( 1 − 2 ξ ) 2 ) \begin{equation} P(H(x)\ne{f(x)})=sign(\sum_{k=0}^{T/2}\left[ \begin{matrix} T \\ K \\ \end{matrix} \right](1-\xi)\xi^{T-K}\leq{exp(-\frac{1}{2}T(1-2\xi )^2)} \tag{8.3} \end{equation} P(H(x)=f(x))=sign(k=0T/2[TK](1ξ)ξTKexp(21T(12ξ)2)(8.3)

  随集成个体分类器数目 T T T增大,集成的错误率将指数级下降,最终趋于零。

  集成学习分两大类:

  • 个体学习器存在强依赖关系,必须串行生成序列化方法。如:Boosting
  • 不存在强依赖关系,可同时生成的并行化方法,如Bagging和随机深林。

8.2Boosting

  Boosting工作机制: 先从初始训练集中训练出一个基学习器,再根据基学习器表现对训练样本分布调整,使先前错的样本后续得到更大关注,基于调整后的样本训练下一个基学习器,反复直到达到指定值 T T T。最终将 T T T个学习器加权结合。

  Boosting族算法最著名的是AdaBoost,比较容易理解的是基于“加性模型”即基学习器线性组和
H ( x ) = ∑ i = 1 T α t h t ( x ) \begin{equation} H(x)=\sum_{i=1}^T{\alpha_t}h_t(x) \tag{8.4} \end{equation} H(x)=i=1Tαtht(x)(8.4)
  其中, T T T指代的是 T T T个学习器

  最小化指数损失函数
在这里插入图片描述

  若H(x)(8.4)能令指数损失函数最小化考虑(8.5)对(8.4)求偏导
在这里插入图片描述

  在AdaBoost算法中,第一个基分类器 h 1 h_1 h1是通过直接将基学习算法用于初始数据分布而得;此后迭代生成 h t h_t ht α t \alpha_t αt。当基分类器 h t h_t ht基于分布 D t D_t Dt产生后,该分类器的权重 α t \alpha_t αt应使得 α t h t \alpha_th_t αtht最小化指数损失函数
在这里插入图片描述

  AdaBoost算法在获得 H e − 1 H_{e-1} He1之后样本分布将进行调整,使下一轮基学习器 h t h_t ht能纠正一些 H t − 1 H_{t-1} Ht1错误,理想是纠正所有错误,即最小化。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

8.3Bagging与随机森林

  个体学习器不存在强依赖关系,可同时生成的并行化方法。

  欲得到泛化性能强的集成,个体学习器应尽可能有较大差异。一个数据集可产生若干子集,每个子集可训练出一个基学习器。使用相互交叠的采样子集.

8.3.1Bagging

  基于自助采样法,给定包含 m m m个样本数据集,使得下次采样该样本仍能被选中。经过 m m m个随机采样,得到 m m m个样本的采样集。(取出再放回重来,比如100个球,先取1个放采样集中,然后再放回,再从100个取1个放采样集)。

  初始训练集中有的样本在采样集中多次出现,有的从未出现。初始训练集中约有63.2%样本出现在采样集中

  Bagging基本流程:

  可采样出 T T T个含 m m m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些学习器结合。
结合时 { 对分类任务使用简单投票法,票数一样随机取一个 对回归任务使用简单平均法 结合时 \begin{cases} 对分类任务使用简单投票法,票数一样随机取一个 & \\ 对回归任务使用简单平均法 & \\ \end{cases} 结合时{对分类任务使用简单投票法,票数一样随机取一个对回归任务使用简单平均法
在这里插入图片描述

  自助采样过程给Bagging带来的优点: 由于每个基学习器只使用了初始训练集中约63.2%的样本,剩下约36.8%的样本可用作验证集对泛化性能进行“包外估计”
   D t D_t Dt表示 h t h_t ht实际使用训练样本集

   H o o b ( x ) H^{oob}(x) Hoob(x)表示对样本 x x x的包外预测,仅针对未使用的预测
在这里插入图片描述
包外估计 → 用途 { 基学习器是决策树,可辅助剪枝或辅助对零训练样本结点处理 基学习器是神经网络,辅助早期停止以减小过拟合风险 包外估计\xrightarrow{用途} \begin{cases} 基学习器是决策树,可辅助剪枝或辅助对零训练样本结点处理 & \\ 基学习器是神经网络,辅助早期停止以减小过拟合风险 & \\ \end{cases} 包外估计用途 {基学习器是决策树,可辅助剪枝或辅助对零训练样本结点处理基学习器是神经网络,辅助早期停止以减小过拟合风险
  Bagging主要关注降低方差,它在不剪枝决策树、神经网络等易受样本扰动的 学习器上效用明显

8.3.2随机森林(Random Forest,RF)

  随机森林是Bagging一个扩展变体

  RF以决策树为基学习器构建Bagging集成,在决策树训练过程中引入了随机属性选择

  • 传统决策树在选择划分属性时是在当前结点的属性集合选一个最优属性
  • RF中,对基决策树的每个结点,先从该结点属性集合随机选择一个包含 k k k个属性的集合,然后再从子集中选择最优属性划分。
    其中:
  • k = d k=d k=d与传统决策树相同
  • k = 1 k=1 k=1,随机选择一个属性用于划分
  • 一般推荐, k = log ⁡ 2 d k=\log_{2}{d} k=log2d

8.4结合策略

  学习器结合带来的三个好处:

  • 从统计方面,单学习器可能因误选而导致泛化性能不佳,结合多个学习器会减小这一风险
  • 从计算方面,多次运行之后结合,可降低陷入糟糕局部极小点风险
  • 从表示方面,结合多个学习器,相应的假设空间有所扩大,有可能学到更好的近似。
    在这里插入图片描述
8.4.1平均法

  对数值型输出 h i ( x ) ∈ R h_i(x)\in{R} hi(x)R,最常见的结合策略是使用平均法(averaging)

  • 简单平均法
    H ( x ) = 1 T ∑ i = 1 T h i ( x ) \begin{equation} H(x)=\frac{1}{T}\sum_{i=1}^Th_i(x) \tag{8.22} \end{equation} H(x)=T1i=1Thi(x)(8.22)
  • 加权平均法
    H ( x ) = 1 T ∑ i = 1 T w i h i ( x ) \begin{equation} H(x)=\frac{1}{T}\sum_{i=1}^Tw_ih_i(x) \tag{8.23} \end{equation} H(x)=T1i=1Twihi(x)(8.23)
    在这里插入图片描述
8.4.2投票法

  学习器 h i h_i hi将从类别标记集合 { c 1 , c 2 , . . . c N } \{c_1,c_2,...c_N\} {c1,c2,...cN}中预测出一个标记。

  将 h i h_i hi在样本 x x x上的预测输出表示为 N N N维向量 ( h i 1 ( x ) , h i 2 ( x ) , . . . h i N ( x ) ) (h_i^1(x),h_i^2(x),...h_i^{N}(x)) (hi1(x),hi2(x),...hiN(x)), h i j ( x ) h_i^j(x) hij(x) h i h_i hi在类别 c j c_j cj上的输出
在这里插入图片描述

  不同类型个体学习器可能产生不同类型的 h i j ( x ) h_i^j(x) hij(x)的值,常见的有

  • 类标记: h i j ( x ) ∈ { 0 , 1 } h_i^j(x)\in\{0,1\} hij(x){0,1}, h i h_i hi将样本 X X X预测为 c j c_j cj的取值为1,或为0.称为“硬投票”
  • 类概率: h i j ( x ) ∈ [ 0 , 1 ] h_i^j(x)\in[0,1] hij(x)[0,1],相当于后验概率 P ( c j ∣ x ) P(c_j|x) P(cjx)的一个估计,称为“软投票”
8.4.3学习法

  当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器进行结合

  Stacking是典型代表

  将个体学习器称为初级学习器,用于结合的学习器称为次学习器或元学习器。

  • Stacking先从初始数据集训练出初级学习器,“生成”一个新数据集用于训练次级学习器
  • 初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记
  • 次数训练集是利用初级学习器产生的
      一般使用交叉验证或留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本

  将初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归(Multi-response Linear Regression,简称MLR)作为次级学习算法效果最好,在MLR中使用不同的属性集更加

  贝叶斯模型平均(bayes Model Averaging,BMA)基于后验概率来为不同模型赋予权重,可视为加强平均法的一种特殊实现。

  Stacking通常优于BMA,鲁棒性好,对近似误差敏感。

8.5多样性

8.5.1误差-分歧分解

  欲构建泛化能力强的集成,个体学习器应“好而不同”

  假定用个体学习器 h 1 , h 2 , . . . h T h_1,h_2,...h_T h1,h2,...hT通过加强平均法结合产生的集成来完成回归学习任务 f : R d → R f:R^d\xrightarrow{}R f:Rd R

  对示例 x x x,定义学习器 h i h_i hi的“分歧”为
A ( h i ∣ x ) = ( h i ( x ) − H ( x ) ) 2 \begin{equation} A(h_i|x)=(h_i(x)-H(x))^2 \tag{8.27} \end{equation} A(hix)=(hi(x)H(x))2(8.27)
  集成的分歧是:
A ‾ ( h ∣ x ) = ∑ i = 1 T w i A ( h i ∣ x ) = ∑ i = 1 T w i ( h i ( x ) − H ( x ) ) 2 \begin{equation} \overline{A}(h|x)=\sum_{i=1}^Tw_iA(h_i|x)\\ =\sum_{i=1}^Tw_i(h_i(x)-H(x))^2 \tag{8.27} \end{equation} A(hx)=i=1TwiA(hix)=i=1Twi(hi(x)H(x))2(8.27)
  显然,这里的分歧显示了个体学习器的多样性。

  个体学习器 h i h_i hi和集成 H H H的平方误差:
E ( h i ∣ x ) = ( f ( x ) − h i ( x ) ) 2 E(h_i|x)=(f(x)-h_i(x))^2 E(hix)=(f(x)hi(x))2

E ( H ∣ X ) = ( f ( x ) − H ( x ) ) 2 E(H|X)=(f(x)-H(x))^2 E(HX)=(f(x)H(x))2
  令 E ‾ ( h ∣ x ) = ∑ i = 1 T w i ∗ E ( h i ∣ x ) \overline{E}(h|x)=\sum^T_{i=1}w_i*E(h_i|x) E(hx)=i=1TwiE(hix)表示个体学习器误差的加强均值
A ‾ ( h ∣ x ) = ∑ i = 1 T w i A ( h i ∣ x ) − E ( H ∣ X ) = E ‾ ( h ∣ x ) − E ( H ∣ X ) \begin{equation} \overline{A}(h|x)=\sum_{i=1}^Tw_iA(h_i|x)-E(H|X)=\overline{E}(h|x)-E(H|X) \tag{8.31} \end{equation} A(hx)=i=1TwiA(hix)E(HX)=E(hx)E(HX)(8.31)
在这里插入图片描述

8.5.2多样性度量

  度量集成个体分类器的多样性,即估算个体学习器多样化程度。

  比如考虑个体分类器的两两相似/不相似性

  给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\} D={(x1,y1),(x2,y2),...(xm,ym)},对二分类任务, y i ∈ { − 1 , + 1 } y_i\in\{-1,+1\} yi{1,+1}分类器 h i h_i hi h j h_j hj预测结果联表
在这里插入图片描述

   a a a表示 h i , h j h_i,h_j hi,hj均预测为正类的样本数目。 a + b + c + d = m a+b+c+d=m a+b+c+d=m
在这里插入图片描述
在这里插入图片描述

8.5.3多样性增强

  如何有效地增大多样性大的个体学习器,主要是对数据样本、输入属性、输出表示、算法参数进行扰动
在这里插入图片描述

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

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

相关文章

C# winforms 使用菜单和右键菜单

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

累加求和-C语言

1.问题: 计算123……100的和,要求分别用while、do while、for循环实现。 2.解答: 累加问题,先后将100个数相加。要重复进行100次加法运算,可以用循环结构来实现。重复执行循环体100次,每次加一个数。 3.代…

【C++掌中宝】C++ 中的空指针救世主——nullptr

文章目录 1. 什么是 NULL?2. NULL 在 C 和 C 中的区别3. C11 引入 nullptr 的原因4. nullptr 与 NULL 的区别5. nullptr 的应用场景6. 模拟 nullptr 的实现7. 总结结语 1. 什么是 NULL? 在 C 和 C 编程中,NULL 常用于表示空指针,…

如何修改音频的音量增益

一、前言 在开发音频相关的功能(比如说语音通话、播放音乐)时,经常会遇到音量太小的问题,这时候就需要我们对原始数据进行处理。本文将介绍如何通过修改原始音频数据来增加增益,本文包含如下内容: 1.音频数…

【Java】虚拟机(JVM)内存模型全解析

目录 一、运行时数据区域划分 版本的差异: 二、程序计数器 程序计数器主要作用 三、Java虚拟机 1. 虚拟机运行原理 2. 活动栈被弹出的方式 3. 虚拟机栈可能产生的错误 4. 虚拟机栈的大小 四、本地方法栈 五、堆 1. 堆区的组成:新生代老生代 …

速通LLaMA3:《The Llama 3 Herd of Models》全文解读

文章目录 概览论文开篇IntroductionGeneral OverviewPre-TrainingPre-Training DataModel ArchitectureInfrastructure, Scaling, and EfficiencyTraining Recipe Post-TrainingResultsVision ExperimentsSpeech Experiments⭐Related WorkConclusionLlama 3 模型中的数学原理1…

目标检测系列(一)什么是目标检测

目录 一、相关名词解释 二、目标检测算法 三、目标检测模型 四、目标检测应用 五、目标检测数据集 六、目标检测常用标注工具 一、相关名词解释 关于图像识别的计算机视觉四大类任务: 分类(Classification):解决“是什么&…

【LLM开源项目】LLMs-微调框架-LLaMA-Factory入门指南v3.0

【#】SFT 训练 项目地址:https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/sft.html 可以使用以下命令进行微调: llamafactory-cli train examples/train_lora/llama3_lora_sft.yamlexamples/train_lora/llama3_lora_sft.yaml 提供…

车辆识别数据集,图片数量20500,模型已训练200轮

车辆识别数据集(Vehicle Recognition Dataset, VDRD) 摘要 VDRD 是一个专为车辆识别设计的大规模数据集,它包含了20500张不同类型的汽车、货车、公交车以及其他类型车辆的图像。数据集提供了四种车辆类别:汽车、货车、其他车辆和…

单片机原理及应用

单片机原理 一、单片机概述1.1 各种单片机系列1.2嵌入式处理器1.2.1 嵌入式DSP1.2.2 嵌入式微处理器 二、AT89S522.1 硬件组成2.2 引脚功能2.2.1 电源、时钟引脚2.2.2 控制引脚2.2.3 并行I/O口引脚 2.3 AT89S52单片机的CPU2.3.1 运算器2.3.2 控制器 2.4 AT89S52单片机的存储器结…

【代码随想录训练营第42期 Day60打卡 - 图论Part10 - Bellman_ford算法系列运用

目录 一、Bellman_ford算法的应用 二、题目与题解 题目一:卡码网 94. 城市间货物运输 I 题目链接 题解:队列优化Bellman-Ford算法(SPFA) 题目二:卡码网 95. 城市间货物运输 II 题目链接 题解: 队列优…

MySQL_表_进阶(1/2)

我们的进阶篇中,还是借四张表,来学习接下来最后关于表的需求,以此完成对表的基本学习。 照例给出四张表: 学院表:(testdb.dept) 课程表:(testdb.course) 选课表:(testdb.sc) 学生表…

python调用c++动态链接库,环境是VS2022和vscode2023

目录 前言:配置环境:基础夯实(对于ctypes的介绍):1. 加载共享库2. 定义函数原型3. 调用函数4. 处理数据结构5. 处理指针6. 错误处理7. 使用 ctypes.util总结 效果展示:操作步骤(保姆级教学)一在VS中创建dll…

YOLOv8——测量高速公路上汽车的速度

引言 在人工神经网络和计算机视觉领域,目标识别和跟踪是非常重要的技术,它们可以应用于无数的项目中,其中许多可能不是很明显,比如使用这些算法来测量距离或对象的速度。 测量汽车速度基本步骤如下: 视频采集&#x…

(done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)

来源:https://www.youtube.com/watch?vdaB9naGBVv4 模拟信号特点如下 时域连续(x轴) 振幅连续(y轴) 如下是模拟信号的一个例子: 数字信号特点如下: 一个离散值序列 数据点的值域是一系列有限的值 ADC:模拟信号到数字信号的…

python全栈学习记录(十八)re、os和sys、subprocess

re、os和sys、subprocess 文章目录 re、os和sys、subprocess一、re1.正则字符2.正则表达式的使用3.group的使用4.贪婪匹配与惰性匹配5.其他注意事项 二、os和sys1.os2.sys 三、subprocess四、打印进度条 一、re python中的re模块用来使用正则表达式,正则就是用一系…

【Python机器学习】NLP信息提取——提取人物/事物关系

目录 词性标注 实体名称标准化 实体关系标准化和提取 单词模式 文本分割 断句 断句的方式 使用正则表达式进行断句 词性标注 词性(POS)标注可以使用语言模型来完成,这个语言模型包含词及其所有可能词性组成的字典。然后,该…

http增删改查四种请求方式操纵数据库

注意:在manage.py项目入口文件中的路由配置里,返回响应的 return语句后面的代码不会执行,所以路由配置中每个模块代码要想都执行,不能出现return 激活虚拟环境:venv(我的虚拟环境名称)\Scripts\activate …

java项目发布后到Tomcat时,总是带一层路径解决方案

java项目发布后到Tomcat时,总是带一层路径 参考文章:java 线上项目访问项目 会多一层项目根路径 根据参考文章写的这篇文章,部分文章细节有完善和改动 在Java Web应用中,当你把应用发布到Tomcat时,如果应用的web.xml配置文件中的&…

Karmada新版本发布,支持联邦应用跨集群滚动升级

摘要:本次升级支持联邦应用跨集群滚动升级,使用户版本发布流程更加灵活可控;透明同事karmadactl 新增了多项运维能力,提供独特的多集群运维体验。 本文分享自华为云社区 《Karmada v1.11 版本发布!新增应用跨集群滚动升…