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

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

SpringBoot集成P6Spy的实现示例

《SpringBoot集成P6Spy的实现示例》本文主要介绍了SpringBoot集成P6Spy的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录本节目标P6Spy简介抛出问题集成P6Spy1. SpringBoot三板斧之加入依赖2. 修改

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

SpringBoot集成Shiro+JWT(Hutool)完整代码示例

《SpringBoot集成Shiro+JWT(Hutool)完整代码示例》ApacheShiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,在现代应用开发中,Shiro因... 目录一、背景介绍1.1 为什么使用Shiro?1.2 为什么需要双Token?二、技术栈组成三、环境