理论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

相关文章

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.

Spring Boot 集成 Solr 的详细示例

《SpringBoot集成Solr的详细示例》:本文主要介绍SpringBoot集成Solr的详细示例,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录环境准备添加依赖配置 Solr 连接定义实体类编写 Repository 接口创建 Service 与 Controller示例运行

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4