机器学习——集成学习

📕参考:ysu老师课件+西瓜书 +期末复习笔记


1.集成学习的基本概念

集成学习(ensemble learing)通过构建并结合多个学习器来完成学习任务。

有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。

理解:集成学习是一种机器学习方法,其核心思想是将多个学习器(弱学习器)集成在一起,以达到比单个学习器更好的性能。通过组合多个学习器的预测结果,集成学习可以提高整体的泛化能力和稳定性,从而在复杂的任务中取得更好的性能。        

 集成学习的主要目标是通过组合多个模型,弥补单个模型的局限性,减少过拟合,并提高模型的鲁棒性。

优缺点

集成学习的主要优缺点:

优点:

  1. 提高泛化能力: 集成学习能够减少模型的方差,提高模型的泛化能力。通过组合多个学习器,可以弥补单个学习器的局限性,提高整体性能。

  2. 降低过拟合风险: 通过在不同的子集上训练不同的学习器,集成学习降低了过拟合的风险。这对于处理复杂的数据和噪声较大的情况非常有用。

  3. 提高鲁棒性: 集成学习对数据的变化和噪声具有一定的鲁棒性。由于多个学习器的集成,模型更能应对不同情况下的变化。

  4. 适用于多样的学习器: 集成学习可以利用各种不同类型的学习器,包括决策树、神经网络、支持向量机等。这使得它在不同类型的问题上都有很好的适应性。

  5. 易于并行化: 集成学习的训练过程通常可以并行化,因为每个学习器可以独立地训练。这有助于提高训练效率。

缺点:

  1. 增加计算开销: 集成学习通常需要训练和集成多个学习器,这可能导致较大的计算开销,特别是在大规模数据集和复杂模型的情况下。

  2. 复杂性: 集成学习的模型通常相对复杂,这使得它们不太容易解释。在一些应用场景中,解释性可能是一个重要的考虑因素。

  3. 对参数调整敏感: 集成学习的性能通常对参数的选择和调整比较敏感。需要进行仔细的参数调整以达到最佳性能。

  4. 不适用于所有问题: 集成学习并不总是对所有类型的问题都有效。在一些简单的问题上,单个学习器可能已经足够好,而不需要引入集成学习的复杂性。

  5. 可能受到噪声的影响: 如果训练数据中存在大量噪声,集成学习可能会受到噪声的影响,从而导致模型性能下降。

2.集成学习方法

根据个体学习器的生成方式,目前的集成学习方法大致分为两大类

1.个体学习器间存在强依赖关系、必须串行生成的序列化方法:Boosting(提升法)。

2.个体学习器间不存在强依赖关系、可同时生成的并行化方法:Bagging(装袋法)和“随机森林”(Random Forest)。

1.Boosting(提升法)

Boosting是一族可以将弱学习器提升为强学习器的算法。

算法思路:通过迭代训练一系列弱学习器(通常是决策树或其他简单模型),每一轮都对前一轮的模型进行修正,以提高整体模型的性能。

  1. 训练基学习器:先从初始训练集训练出一个基学习器
  2. 更新样本权重:根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多的关注
  3. 重复迭代:基于调整后的样本训练下一个基学习器,一直重复以上操作,直到基学习器数目达到事先指定的值T
  4. 集成学习:最终将这T个基学习器进行加权结合

 特点:

1.个体学习器之间存在强依赖关系

2.串行生成

3.每次调整训练数据的样本分布

 2.Bagging(装袋法)

这一类方法的核心思想是通过对训练集进行有放回的抽样(Bootstrap抽样),构建多个独立的学习器,然后将它们的预测结果进行平均或投票。著名的算法包括随机森林(Random Forest)。

Bagging(Bootstrap Aggregating)算法的过程包括以下步骤:

  1. Bootstrap抽样: 从原始训练集中有放回地抽取若干个样本,构成一个新的训练子集。这个过程可以重复多次,生成多个不同的子集。

  2. 训练独立的学习器: 对每个生成的子集使用相同的学习算法(可以是决策树、神经网络等),独立地训练一个学习器。由于每个子集都是通过Bootstrap抽样得到的,这些学习器之间具有一定的差异性。

  3. 集成学习: 将所有独立学习器的预测结果进行集成。对于分类问题,可以采用投票的方式,选择获得最多票数的类别作为最终预测结果;对于回归问题,通常采用平均值或加权平均值。

问题:Bagging(Bootstrap Aggregating)算法中的弱学习器必须一样吗?

在Bagging中,弱学习器通常可以是不同的,即它们可以是同一种类型的学习器,也可以是不同种类的学习器。核心思想是通过对训练集进行Bootstrap抽样,得到多个略有不同的训练子集,然后在这些子集上独立地训练弱学习器,最终进行集成。

弱学习器的不同性质可以增加集成模型的多样性,从而提高整体模型的泛化能力。这样的多样性可以通过使用不同的学习算法、不同的参数设置或者在特征选择上的差异来实现。在实际应用中,常常选择同一种学习算法,但在不同的子集上进行训练,以获得差异化的弱学习器。

3.随机森林(Random Forest)

随机森林(Random Forest)是一种基于Bagging思想的集成学习算法,它通过构建多个决策树,并对它们的输出进行平均或投票来提高整体模型的性能。

随机森林算法流程:

  1. Bagging过程: 从原始训练集中使用Bootstrap抽样,生成多个不同的训练子集。(随机抽样)

  2. 构建决策树: 在每个训练子集上独立地训练一个决策树。与传统的决策树不同,随机森林是在每个节点上随机选择一部分特征进行划分的。

  3. 集成决策树: 将所有独立训练的决策树的输出进行平均(回归问题)或投票(分类问题),得到最终的随机森林模型。

优缺点:

随机森林的优点包括:

  • 降低过拟合风险: 通过随机选择特征子集,每个决策树都在不同的特征子空间上进行训练,降低了模型的方差,有助于防止过拟合。

  • 提高泛化性能: 由于集成了多个模型的意见,随机森林通常能够在不同类型的数据集上取得很好的泛化性能。

  • 对于高维数据有效: 随机森林对于高维数据的处理相对较好,因为每个决策树只使用部分特征。

  • 易于并行化: 由于每棵树可以独立构建,随机森林的训练过程容易并行化,适合在大规模数据集上使用。

随机森林的缺点:

  1. 不易解释: 随机森林由多个决策树组成,每个树的决策过程相对独立,导致整个模型的解释性较差。对于一些应用场景,特别是需要理解模型内部逻辑的情况下,随机森林可能不是最佳选择。

  2. 计算开销: 随机森林包含多个决策树,因此在训练和预测时可能需要较大的计算资源。尤其在树的数量很大的情况下,可能会对性能产生一定的影响。

  3. 对于高维稀疏数据效果较差: 随机森林在处理高维稀疏数据(例如文本数据)时,可能不如其他算法表现出色。这是因为在随机选择特征时,可能会错过一些关键的特征。

  4. 样本不平衡: 当数据集存在严重的类别不平衡时,随机森林可能对多数类别的预测性能较好,而对少数类别的预测性能较差。

 3.结合策略

1.平均法

(1)算数平均法

(2)加权平均法

一般个体学习器性能相差较大时用加权平均法,性能相近时用简单平均法。

2.投票法

(1)绝对多数投票法:即若某lable得票过半数,就预测为该lable,否则拒绝预测。

(2)相对多数投票法(少数服从多数):即预测为得票最多的标记。

        若同时有多个标记获最高票,则从中随机选取一个。

(3)加权投票法:和加权平均法一样,每个基学习器的分类票数与权重相乘,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

3.学习法

代表:Stacking

Stacking算法的主要思想是利用弱学习器的学习结果作为输入,将初始样本的标记当做样例标记,重新训练新的学习器。

在这种情况下,将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。

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

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

相关文章

Spring Cloud Stream解密:流式数据在微服务中的魔力

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Spring Cloud Stream解密:流式数据在微服务中的魔力 前言Spring Cloud Stream基础:微服务中的数据流动Binder概念与使用:连接流的音符消息序列化与反序列化&#xf…

【消息队列】kafka整理

kafka整理 整理kafka基本知识供回顾。

Leetcode刷题笔记题解(C++):99. 恢复二叉搜索树

思路: 二叉搜索树的中序遍历是递增序列,可以在中序遍历中记录两个需要交换的节点,直到遍历完毕之后,对两个节点的值进行交换即可得到正确的二叉搜索树 比如中序序列为 1 2 3 7 5 6 4(7比5大记录7为x&#xf…

每日OJ题_算法_模拟③_力扣6. Z 字形变换

目录 力扣6. Z 字形变换 解析代码 力扣6. Z 字形变换 6. Z 字形变换 难度 中等 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下&#xff…

以太网帧格式及ARP协议简介

在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的MAC地址(物理地址),只要知道目的主机的IP地址,就可以通过ARP协议获取目的主机的MAC地址。 1、ARP协议简介 ARP(Address Resolut…

处理安装uni-ui依赖一直安装不上

根据官方的文档去安装,我这边把npm换成了pnpm。 搞了一个小时没搞明白为什么下载不下来依赖,原因是镜像的问题。 处理方式:安装了cnpm,去访问国内镜像 安装cnpm,使用国内镜像 npm install -g cnpm --registryhttps…

react 之 useCallback

简单讲述下useCallback的使用方法,useCallback也是用来缓存的,只不过是用于做函数缓存 // useCallbackimport { memo, useCallback, useState } from "react"const Input memo(function Input ({ onChange }) {console.log(子组件重新渲染了…

【第二十二课】最短路:多源最短路floyd算法(acwing-852 spfa判断是否存在负环 / acwing-854 / c++代码)

目录 acwing-852 代码如下 一些解释 acwing-854 foyld算法思想 代码如下 一些解释 acwing-852 在spfa求最短路的算法基础上进行修改。 代码如下 #include<iostream> #include<cstring> #include<algorithm> #include<queue> using names…

百分点科技:《数据科学技术: 文本分析和知识图谱》

科技进步带来的便利已经渗透到工作生活的方方面面&#xff0c;ChatGPT的出现更是掀起了新一波的智能化浪潮&#xff0c;推动更多智能应用的涌现。这背后离不开一个朴素的逻辑&#xff0c;即对数据的收集、治理、建模、分析和应用&#xff0c;这便是数据科学所重点研究的对象——…

Python itertools模块:生成迭代器(实例分析)

itertools 模块中主要包含了一些用于生成迭代器的函数。在 Python 的交互式解释器中先导入 itertools 模块&#xff0c;然后输入 [e for e in dir(itertools) if not e.startswith(_)] 命令&#xff0c;即可看到该模块所包含的全部属性和函数&#xff1a; >>> [e for …

【单片机毕业设计6-基于stm32c8t6的智能衣柜系统】

【单片机毕业设计6-基于stm32c8t6的智能衣柜系统】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 &#x1f525;这里是小殷学长&#xff0c;单片机毕业设计篇6基于stm32的智能衣柜系统 &#x1f9ff;创作不易&#xff0c;拒绝白嫖可私 一、功能介绍 -------------------…

Vue 上门取件时间组件

本文使用vue2.0elementui 制作一个上门取件时间组件&#xff0c;类似顺丰&#xff0c;样式如下&#xff1a; 大概功能&#xff1a;点击期望上门时间&#xff0c;下面出现一个弹框可以选择时间&#xff1a; 首先我们定义一些需要的数据&#xff1a; data() {return {isDropdown…

Java 集合List相关面试题

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于java面试题系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基…

C++ 动态规划 分组背包问题

有 N 组物品和一个容量是 V 的背包。 每组物品有若干个&#xff0c;同一组内的物品最多只能选一个。 每件物品的体积是 vij &#xff0c;价值是 wij &#xff0c;其中 i 是组号&#xff0c;j 是组内编号。 求解将哪些物品装入背包&#xff0c;可使物品总体积不超过背包容量&a…

2024美赛数学建模ABCDEF题思路代码

--------------------2024美国大学生数学建模竞赛&#xff08;美赛&#xff09;思路&代码---------------------------- 赛题翻译&#xff1a;2024美赛ABCDEF赛题翻译 问题A&#xff08;数据分析题&#xff09;&#xff1a;资源可用性和性别比例&#xff08;MCM&#xff09…

【华为】GRE Over IPsec 实验配置

【思科】GRE Over IPsec 实验配置 前言报文格式 实验需求配置拓扑GRE配置步骤IPsec 配置步骤R1基础配置GRE 配置IPsec 配置 ISP_R2基础配置 R3基础配置GRE 配置IPsec 配置 PCPC1PC2 抓包检查OSPF建立GRE隧道建立IPsec 隧道建立Ping 配置文档 前言 GRE over IPSec可利用GRE和IP…

分享一个Python网络爬虫数据采集——电商API接口数据采集

前言 你是否曾为获取重要数据而感到困扰&#xff1f;是否因为数据封锁而无法获取所需信息&#xff1f;是否因为数据格式混乱而头疼&#xff1f;现在&#xff0c;所有这些问题都可以迎刃而解。【API接口数据采集】 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyStr…

人工智能基础-Numpy的arg运算-Fancy Indexing-比较

索引 获取最小值最大值索引 np.argmin(x) np.argmax(x)排序和使用索引 np.sort(x)Fancy Indexing 索引 二维数组的应用 numpy.array 的比较 比较结果和Fancy Indexing

2023年度总结 | 关于意义,爱与回望——写给清醒又无知的20岁

Hi&#xff0c;大家好&#xff0c;我是半亩花海&#xff0c;一名再普通不过的大学生。2023年&#xff0c;20岁&#xff0c;充实而零乱的一年&#xff0c;清醒又无知的一年。年末&#xff0c;最近的一些事儿也让我逐渐地有感而发&#xff0c;心静&#xff0c;除杂&#xff0c;思…

Linux环境基础开发工具使用篇(一) yum 与 vim

目录 一、软件包管理器 yum 1. yum的概念和对yum整个生态的理解 Linux安装软件的三种方式: 对yum和yum整个生态的理解: 2.yum的使用 ①yum源 ②yum安装软件 ③yum源更新 二、文本编辑器 vim 1.vim常用模式 2.详谈每种模式: (1)插入模式 (2)底行模式 ①退出vim ②…