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

相关文章

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操