理论U4 集成学习

2024-01-11 10:12
文章标签 学习 理论 集成 u4

本文主要是介绍理论U4 集成学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、集成学习
    • 1、传统学习的问题
    • 2、集成学习
      • 1)背景
      • 2)概念
      • 3)注意
    • 3、多样性度量
    • 4、多样性增强
      • 1)多样性增强:在学习过程引入随机性
      • 2) 输入属性扰动
      • 3) 输出表示扰动
      • 4) 算法参数扰动
    • 5、集合策略
      • 1)平均法
      • 2)投票法
      • 3)学习法
  • 二、集成学习方法
    • 1、串行化方法
      • 1)典型算法:提升Boosting算法(Adaboost)
      • 2)特点总结
    • 2、并行化方法
      • 1)典型算法:Bagging算法
      • 2)算法特点
      • 3)特点总结
      • 4)典型算法:随机森林算法
      • 5)算法流程
      • 6)算法特点

一、集成学习

1、传统学习的问题

传统学习面临的问题:没有任何情况下都最好的机器学习算法

2、集成学习

1)背景

通过将多个学习器进行集成,常可获得比单一学习器显著优越的泛化性能,这对弱学习器尤为明显。

弱学习器:准确率仅比随机猜测略高的学习器。
强学习器:准确率高并能在多项式时间内完成的学习器。
在这里插入图片描述

2)概念

通过构建并结合多个学习器完成学习任务
也称为多分类器系统(Multi-Classifier System)、基于委员会的学习(Committee based Learning)
在这里插入图片描述

3)注意

多个学习器不一定比单一学习器性能好
在这里插入图片描述
由定理可知,在一定条件下,随着集成分类器数目的增加,集成的错误率将指数级下降,最终趋向于0

3、多样性度量

– 用于度量集成中个体学习器的多样性
– 考虑个体学习器的两两相似/不相似性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、多样性增强

1)多样性增强:在学习过程引入随机性

– 数据样本扰动
    • Bagging中的自助采样
    • Adaboost中的序列采样
    – 对数据样本扰动敏感的基学习器(不稳定基学习器) 效果明显
    (决策树,神经网络等)
    – 对数据样本扰动不敏感的基学习器(稳定基学习器)效果不明显
     (线性学习器,支持向量机,朴素贝叶斯,K近邻等)

2) 输入属性扰动

不同子空间提供观察数据的不同视角

对包含大量冗余属性数据,可产生多样性大的个体学习器,还因属性数减少会大幅节省时间开销;若数据只含少量属性或冗余属性较少,则不宜使用

3) 输出表示扰动

在学习过程引入随机性
在这里插入图片描述

4) 算法参数扰动

随机设置不同的参数或环节。
单一学习器利用交叉验证对参数寻优,事实上相当于使用了不同参数训练学习器,最后仅选择了一个;而集成学习相当于把所有学习器都利用起来

– Adaboost:加入了数据样本扰动
– 随机森林:同时加入了数据样本扰动和输入属性扰动

5、集合策略

1)平均法

数值型输出最常见的结合策略
在这里插入图片描述
加权平均法是集成学习的基本出发点,各种结合方法都可视为其特例或变体,不同的集成学习方法是通过不同的方式确定加权平均法中基学习器的权重

2)投票法

标签型输出最常见的结合策略
在这里插入图片描述

3)学习法

当训练数据很多时采用另一个学习器进行结合
在这里插入图片描述

二、集成学习方法

根据个体学习器生成方式不同,形成两大类方法

1、串行化方法

条件:个体学习器间存在强依赖关系

1)典型算法:提升Boosting算法(Adaboost)

– 重赋权法(Re-weighting):在每轮根据样本分布为每个训练样本重新赋予权重
– 重采样法(Re-sampling):在每轮根据样本分布对训练集重新采样形成新的训练集

  1. 先从初始数据集训练一个基学习器
  2. 再根据其对训练样本分布(权重)进行调整,使先前错分样本在后续受到更多关注
  3. 基于调整后的样本分布训练下一个基学习器;
  4. 重复进行直至基学习器数目达到预先指定值;最终将这些基学习器加权结合

2)特点总结

  1. 基本思想是用贪心法最小化损失函数,
  2. 主要关注降低偏差:顺序串行地最小化损失函数,基于弱学习器逐步构造出很强的集成学习器,bias自然逐步下降
  3. 但是由于模型的相关性很强,因此不能显著降低方差
  4. 所以boosting主要靠降低bias来提升预测精度
  5. Boosting中每个模型是弱模型,偏差高,方差低

2、并行化方法

条件:个体学习器间不存在强依赖关系

1)典型算法:Bagging算法

  1. 利用自助法采样(Bootstrap Sampling)可构造T个含m个训练样本的采样集,基于每个采样集训练出一个基学习器,再将它们进行结合
  2. 在对预测输出结合时,通常对分类任务使用简单投票法,对回归任务使用简单平均法
    在这里插入图片描述

2)算法特点

  1. 时间复杂度低:集成与直接训练一个学习器复杂度同阶
    假定基学习器的计算复杂度为 O ( m ) O(m) O(m),采样与投票/平均过程的复杂度为 O ( s ) O(s) O(s),则 B a g g i n g Bagging Bagging的复杂度大致为 T ( O ( m ) + O ( s ) ) T(O(m)+O(s)) T(O(m)+O(s))
  2. 可以直接用于多分类、回归等任务;
  3. 可包外估计(Out-of-Bag Estimate)泛化性能

3)特点总结

  1. 主要关注降低方差,即通过多次重复训练提高稳定性,在易受样本扰动的学习器上效用更为明显(如不剪枝的决策树、神经网络等)
  2. 在Bagging中,每个模型的偏差方差近似相同,但是互相相关性不太高,因此一般不能降低偏差
  3. Bagging中的模型是强模型,偏差低,方差高

4)典型算法:随机森林算法

Bagging方法的一种扩展变体。以决策树为基学习器。
– 数据集的随机选择:自助采样法
– 待选属性的随机选择:对基决策树的每个结点,先从该结点的( d d d个)属性集合中随机选择一个包含 k k k 个属性的子集,再从这个子集选择一个最优属性用于划分, 一般情况下推荐 k = l o g 2 d k=log_2d k=log2d

5)算法流程

– 从原始数据集中每次随机有放回抽样选取与原始数据集相同数量的样本数据,构造数据子集;

– 每个数据子集从所有待选择的特征中随机选取一定数量的最优特征作为决策树的输入特征;

– 根据每个子集分别得到每棵决策树,由多棵决策树共同组成随机森林;

– 最后如果是分类问题,则按照投票的方式选取票数最多的类作为结果返回;如果是回归问题,则按照平均法选取所有决策树预测的平均值作为结果返回

在这里插入图片描述

6)算法特点

– 基学习器多样性通过样本扰动和属性扰动实现
– 算法简单、容易实现、计算开销小
– 性能强大,被誉为“代表集成学习技术水平的方法”

这篇关于理论U4 集成学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06