理论U4 集成学习

news2024/11/21 2:28:02

文章目录

  • 一、集成学习
    • 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)算法特点

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用 Vesta 软件绘制团簇构型 ICO多面体(二)

微信公众号:原子与分子模拟更新的快,欢迎大家关注。 -------------------------------------------------------------------- 进入网站下载 ICO 文件: http://www.pas.rochester.edu/~wangyt/algorithms/bop/ 利用 Vesta 软件进行绘制。 …

SpringIOC之support模块EmbeddedValueResolutionSupport

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

基于SELinux三权分立配置方法

1.系统安装 系统安装完成后,系统当前的SELinux配置为: # cat /etc/selinux/config SELINUX=enforcing SELINUXTYPE=targeted 2.SELinux环境准备 # yum install setools policycoreutils.x86_64 selinux-policy-mls.noarch setroubleshoot.x86_64 setools-console -y 3.SELin…

排序链表[中等]

一、题目 给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3&…

Spring MVC MVC介绍和入门案例

1.SpringMVC概述 1.1.MVC介绍 MVC是一种设计模式,将软件按照模型、视图、控制器来划分: M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为数据承载Bean&#xf…

python_数据可视化_pandas_导入excel数据

目录 1.1导入库 1.2读取excel文件 1.3读取excel,指定sheet2工作表 1.4指定行索引 1.5指定列索引 1.6指定导入列 案例速览: 1.1导入库 import pandas as pd 1.2读取excel文件 pd.read_excel(文件路径) data pd.read_excel(D:/desktop/TestExcel…

基于图像合成和注意力的深度神经网络从计算机断层扫描灌注图像中自动分割缺血性脑卒中病变

Automatic ischemic stroke lesion segmentation from computed tomography perfusion images by image synthesis and attention-based deep neural networks 基于图像合成和注意力的深度神经网络从计算机断层扫描灌注图像中自动分割缺血性脑卒中病变背景贡献实验Comparison o…

SCT2A23STER:4.5V-100V Vin, 1.2A, DCDC降压转换器

• 4.5V-100V 输入电压范围 • 1.2A 连续输出电流 • 1.8A峰值电流限制 • 室温下1.2V 1% 反馈电压 • 集成 530mΩ 上管和 220mΩ 下管功率 MOSFETs • 带VCC二极管的静态电流为15uA 无VCC二极管的静态电流为160uA • 可选PFM、USM和FPWM轻载工作模式 • 4.3ms 内置软启动时…

第一次面试总结 - 迈瑞医疗 - 软件测试

🧸欢迎来到dream_ready的博客,📜相信您对专栏 “本人真实面经” 很感兴趣o (ˉ▽ˉ;) 专栏 —— 本人真实面经,更多真实面试经验,中大厂面试总结等您挖掘 注:此次面经全靠小嘴八八,没…

论文阅读:Making Large Language Models A Better Foundation For Dense Retrieval

论文链接 Abstract 密集检索需要学习区分性文本嵌入来表示查询和文档之间的语义关系。考虑到大型语言模型在语义理解方面的强大能力,它可能受益于大型语言模型的使用。然而,LLM是由文本生成任务预先训练的,其工作模式与将文本表示为嵌入完全…

【JVM 基础】 Java 类加载机制

JVM 基础 - Java 类加载机制 类的生命周期类的加载: 查找并加载类的二进制数据连接验证: 确保被加载的类的正确性准备: 为类的静态变量分配内存,并将其初始化为默认值解析: 把类中的符号引用转换为直接引用 初始化使用卸载 类加载器, JVM类加载机制类加载…

5分钟搭建开源运维监控工具Uptime Kuma并实现无公网IP远程访问

文章目录 **主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

6款实用的Git可视化管理工具

前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用门槛。我们在团队开发中统一某个开发工具能够降低沟通成本,提高协作效率。今天给大家分享6款实用的Git可视化管理工具。 Git是什么&…

中国IT产经新闻:新能源汽车发展前景与燃油车的利弊之争

随着科技的进步和环保意识的提高,新能源汽车在全球范围内逐渐受到重视。然而,在新能源汽车迅速发展的同时,燃油车仍然占据着主导地位。本文将从新能源与燃油车的利弊、新能源汽车的发展前景两个方面进行分析,以期为读者提供全面的…

【原生部署】SpringBoot+Vue前后端分离项目

本次主要讲解SpringBootVue前后端完全分离项目在CentOS云服务器上的环境搭建与部署过程,我们主要讲解原生部署。 一.原生部署概念 原生部署是指将应用程序(一般是指软件、应用或服务)在底层的操作系统环境中直接运行和部署,而不…

SAP CO11N报工批次分割(拆分)

CO11N做报工的时候,下阶料启用了批次,比如需要过账4166个,但是每一批次的库存都不满足4166个,所以需要拆分(分割)处理 这个时候我们就需要对这一行做分割处理 选中这一行,点击‘分割’按钮 弹…

认识Linux指令之 “ head tail ” 命令

01.head指令 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 语法: head [参数]... [文件]... 功能&#…

thinkphp学习06-连接数据库与模型初探

新建数据库 CREATE DATABASE tp6stu01 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;创建表和数据 DROP TABLE IF EXISTS tp_user; CREATE TABLE tp_user (id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 自动编号,username varchar(20) CHARACTER SET utf8 COLL…

删除的文件如何恢复? 9 个简单的数据恢复软件方法分享

无论是由于软件或硬件故障、网络犯罪还是意外删除,数据丢失都会让人感到压力和不快。 数据丢失的主要原因是意外删除,任何人都可能随时发生这种情况,尽管他们知道应该备份数据。毕竟,犯错是人之常情! 如果是&#xf…

7 集中式日志和分布式跟踪

文章目录 日志聚合模式日志集中化的简单解决方案使用日志并输出分布式跟踪Spring Cloud Sleuth实现分布式跟踪 小结 前面的文章: 1、 1 一个测试驱动的Spring Boot应用程序开发 2、 2 使用React构造前端应用 3、 3 试驱动的Spring Boot应用程序开发数据层示例 4、…