机器学习 | 集成算法 | Bagging | Boosting | 概念向

news2024/11/26 4:36:50

📚Bagging和Boosting的概念

集成学习(Ensemble Learning)就是通过某种策略将多个模型集成起来,通过群体决策来提高决策准确率。为什么集成学习会好于单个学习器呢?原因可能有三:

  • 训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用;
  • 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足;
  • 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。

在这里插入图片描述

🐇Bagging

  • Bagging(Bootstrap Aggregating)是集成学习的一种方法,其思想是通过从训练集中随机抽取一定数量的样本重复多次构建多个基本分类器,然后通过投票或平均来获得最终的预测结果。
  • Bagging可以有效减小模型的方差,提高模型的泛化能力。

🐇Boosting

  • 集成学习Boosting可以将多个弱学习器(即准确率略高于随机猜测的学习器)组合成一个强学习器。
  • Boosting通过迭代地引入新的弱学习器,并给予它们更多的关注度,达到逐步提高集成模型准确率的目的。
  • 在Boosting算法中,每个弱学习器的预测结果都会参与到下一次迭代中,如果预测错误,则会给这个样本一个更高的权重,并重新拟合一个新的学习器。这样,每个弱学习器都会关注于预测错误的样本,因此在多个弱学习器的组合下,集成模型的准确率得到了提高。

📚Bagging和Boosting区别

Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。

  • Bagging:利用多个过拟合的弱学习器来获得更好的效果。
  • Boosting:利用多个欠拟合的弱学习器来获得更好的效果。
baggingboosting
bagging算法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。boosting算法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
bagging 的重点在于获得一个方差比其组成部分更小的集成模型boosting 则将主要生成偏差比其组成部分更低的强模型(即使方差也可以被减小)
Bagging采取的是随机有放回均匀取样每个样本的权重相同,Boosting的每一轮训练的样本是固定的,改变的是每个样本的权重,错误率越大的样本权重越大
Bagging所有预测函数权值相同Boosting中误差越小的预测函数权值越大
Bagging 的各个预测函数可以并行生成Boosting的各个预测函数必须按照顺序迭代生成

📚Bagging和Boosting具体实现

⭐️将Bagging和Boosting分别和树模型结合分别生成:

  • Bagging+决策树=随机森林
  • Boosting+决策树=GBDT

🐇随机森林

【五分钟机器学习】随机森林(RandomForest):看我以弱搏强

在这里插入图片描述

  • 如下图:分别从数据集中随机取一部分数据交给每一棵小树进行训练,再让每一棵小树都得出一个训练结果,最后将它们所得到的的训练结果来一个综合,即为随机森林的预测结果。在这里插入图片描述
  • 基本逻辑
    在这里插入图片描述
  • 优缺点
    在这里插入图片描述在这里插入图片描述

🐇GBDT

什么是 GBDT(梯度提升树)?【知多少】

  • 和随机森林相比,GBDT里的树都是回归树。
    在这里插入图片描述

  • GBDT里的每棵树都建立在前一棵树的基础上。
    在这里插入图片描述

    • 以苹果打分为例,我们会先训练一棵树,大体预测一下苹果们的分数
    • 再去训练一棵树,去预测它们与真实分数间的差距
    • 如果两者相加仍与真实分数存在差距,我们在训练第三棵树预测这部分差距
    • 重复这个过程不断减少误差,将这些数的预测值加起来就是苹果的分数

  • 在GBDT中,每一次迭代都会训练一个新的模型,该模型将前面模型的预测结果与真实标签之间的残差作为新的标签。
  • GBDT的残差指的是前面模型的预测结果与真实标签之间的差异
  • 在每一次迭代中,新的模型都会尝试通过学习这些残差来进一步提高模型的预测性能,从而有效提高模型的准确性。

🐇Adaboost(Boosting类型代表)

【五分钟机器学习】Adaboost:前人栽树后人乘凉

  • 前人栽树,后人乘凉:前辈为后辈创造条件,而后辈在前辈创造的基础上进行改进。
    在这里插入图片描述

  • 每一次的改进都更专注于之前做错的问题~~(刷题逻辑bushi)~~
    在这里插入图片描述

  • Adaboost的训练步骤:
    在这里插入图片描述

  • 优缺点
    在这里插入图片描述


参考博客

  • 机器学习之Bagging算法和Boosting算法
  • 集成学习(bagging、boosting)
  • 【五分钟机器学习】随机森林(RandomForest):看我以弱搏强
  • 【五分钟机器学习】Adaboost:前人栽树后人乘凉
  • 什么是 GBDT(梯度提升树)?【知多少】

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

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

相关文章

【ARMv8 SIMD和浮点指令编程】NEON 通用算术指令——杂项也不少

算术通用指令杂项包括以下指令: UABA、UABAL/UABAL2、UABD 和 UABDL/UABDL2。无符号向量差值绝对值累加和差值绝对值。 ABS 和 NEG向量绝对值和求反。 UMAX、UMIN、UPMAX、UPMIN、UMAXV 和 UMINV。无符号向量最大值,无符号向量最小值,无符号向量按对最大值,无符号向量按对最…

chatgpt赋能python:Python怎么分行输出?教程来了!

Python怎么分行输出?教程来了! Python是一种解释型、面向对象、动态数据类型的高级编程语言。在Python中,分行输出是非常常见的操作,本文将介绍Python分行输出的不同方式以及使用的情况。 一、使用换行符 使用换行符是Python分…

python文字转语音(pyttsx3+flask)

提示:文章结尾有全部代码 目录 前言一、Flaskpyttsx基本使用Flask导入Flask框架配置基础环境初始Flask代码 pyttsx3库基本使用导入pyttsx3初始化pyttsx3文字转语音运行 二、具体实现1.引入库 总结 前言 本文主要讲解如何用python的pyttsx3库flask框架,手…

chatgpt赋能python:Python切换指南:让你无缝转换到Python

Python切换指南:让你无缝转换到Python Python是一个高级的编程语言,它可以用来进行各种各样的应用开发和数据分析。 Python有很多优点,比如它易于学习和使用,它是一个开源的语言,它具有广泛的库和框架。 如果你是处于…

Mysql数据库(六):基本的SELECT语句

基本的SELECT语句 前言一、SELECT...二、SELECT ... FROM三、列的别名四、去除重复行五、空值参与运算六、着重号七、查询常数八、显示表结构九、过滤数据 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主&#…

如何监控EMC VNX控制器的启动过程

这里我们要讨论的内容基本上适用于所有的EMC VNX中端存储系统,包含老的Clariion CX3,CX4,VNX1和VNX2,其实VNXe和Unity很多内容也是一样的。当然由于VNXe和Unity 操作系统的大的变化,差异也是比较大的。 导致EMC Clarr…

什么是M-LAG?为什么需要M-LAG?

M-LAG(Multichassis Link Aggregation Group)提供一种跨设备链路聚合的技术。M-LAG通过将两台接入交换机以同一个状态和用户侧设备或服务器进行跨设备的链路聚合,把链路的可靠性从单板级提升到设备级。同时,由于M-LAG设备可以单独…

如何设计一个完整的交互流程,提升产品用户体验

交互流程设计是一项关乎用户体验的重要工作。通过设计和规划用户与产品或服务的交互方式和流程,我们可以提高用户的满意度和使用效果。在本文中,我们将深入探讨交互流程设计的关键要素以及其对用户体验的重要性。 交互流程设计本质是通过设计和规划用户与…

【Python】Python进阶系列教程-- Python3 SMTP发送邮件(六)

文章目录 前言实例使用Python发送HTML格式的邮件Python 发送带附件的邮件在 HTML 文本中添加图片使用第三方 SMTP 服务发送 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程(…

chatgpt赋能python:Python怎么倒序输出字符串

Python怎么倒序输出字符串 Python是一种高级编程语言,它可以让开发人员快速编写代码。在Python中,字符串是一种非常常见的数据类型,其支持各种字符串操作。在这篇文章中,我们将讨论如何在Python中倒序输出字符串。 倒序输出字符…

openGauss5.0企业版使用指南之企业版安装

文章目录 0. 前言1. 安装1.1 获取安装包1.1.1 操作步骤1.1.2 准备软硬件安装环境1.1.3 软硬件环境要求1.1.4 修改操作系统配置1.1.5 **关闭操作系统防火墙**1.1.6 **设置字符集参数**1.1.7 **设置时区和时间**1.1.8 **(可选)关闭swap交换内存**1.1.9 **关…

MOVEit Transfer 漏洞似乎被广泛利用

Progress Software 已在其文件传输软件 MOVEit Transfer 中发现一个漏洞,该漏洞可能导致权限提升和潜在的未经授权访问环境,该公司在一份安全公告中表示。 在 MOVEit Transfer Web 应用程序中发现了一个 SQL 注入漏洞,可能允许未经身份验证…

【ARMv8 SIMD和浮点指令编程】NEON 逻辑指令——与或非有多少?

NEON 逻辑指令主要包括与、或、异或、位清除、或非、为 False 时按位插入、为 True 时按位插入和按位选择指令,下面我们来详细学习这些指令。 一、逻辑指令 1.1 AND 按位与(向量),该指令将两个源 SIMD&FP 寄存器按位与,并将结果写入目标 SIMD&FP 寄存器。 AND …

基于JDBC的账务管理系统

一、项目介绍 1.1 项目目标 本项目为JAVAEE基础和数据库的综合项目,包含了若干个知识点,达到将从基础班到现在所学的知识综合使用,提高了我们对项目的理解与知识点的运用。熟练View层、Service层、Dao层之间的方法相互调用操作熟练使用工具类…

chatgpt赋能python:Python怎么入侵别人微信:一种黑客行为的技术探讨

Python怎么入侵别人微信:一种黑客行为的技术探讨 随着社交媒体微信的普及和使用程度的不断提高,对微信的攻击和入侵成为了目前互联网安全领域的热点问题之一。其中,Python编程语言的广泛应用和强大的功能使得其逐渐成为了微信黑客行为的利器…

robots.txt的作用是什么,看完了我默默加在了自己网站上

文章目录 背景robots.txt的主要作用使用示范User-agentDisallowAllowSitemap 总结 背景 最近在研究网站SEO相关的东西,第一次接触到robots.txt,才发现实际上很多网站都用到了它,尤其是对搜索引擎依赖特别高的C端系统或者网站,是一…

论文解读:SuperGlue: Learning Feature Matching with Graph Neural Networks

SuperGlue: Learning Feature Matching with Graph Neural Networks 发表时间:2020 论文地址:https://arxiv.org/abs/1911.11763 项目地址:http://github.com/magicleap/SuperGluePretrainedNetwork。 本文介绍了一种通过联合寻找对应和拒绝…

Git介绍及安装

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Git ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&#x…

通往AGI之路;首个自研全开源自然语言低代码 GPT 应用快速开发框架PromptAppGPT

🦉 AI新闻 🚀 商汤科技将发布元萝卜AI下棋机器人新品(围棋版) 摘要:商汤科技将于6月14日召开元萝卜AI下棋机器人新品发布会,预计会发布下棋机器人(围棋版)。这款AI下棋机器人融合了传统围棋文化和人工智能技术,拥有落…

论文解读:Segment Anything

Segment Anything 发表时间:2023 论文地址:https://arxiv.org/abs/2304.02643 项目地址:https://github.com/facebookresearch/segment-anything 介绍了Segment Anything(SA)项目:一个新的任务、模型集和…