集成学习(2)

AdaBoost

基本概念

AdaBoost(Adaptive Boosting,自适应增强),其自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。后一个模型的训练永远是在前一个模型的基础上完成!

算法思想

• 初始化训练样本的权值分布,每个样本具有相同权重;

• 训练弱分类器,如果样本分类正确,则在构造下一个训练集中,它的权值就会被降低;反之提高。用更新过的样本集去训练下一个分类器;

• 将所有弱分类组合成强分类器,各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,降低分类误差率大的弱分类器的权重。

算法步骤 

 

从Adaboost的例子中我们可以明显的看到Boosting的思想,对分类正确的样本降低了权重,对分类错误的样本升高或者保持权重不变。再最后进行模型融合的过程中,也根据错误率对基分类器进行加权融合,错误率低的分类器拥有更大的“话语权” 。

优缺点

优点:

分类精度高;

可以用各种回归分类模型来构建弱学习器,非常灵活;

不容易发生过拟合。

缺点:

对异常点敏感,异常样本在迭代中可能会获得较高权重, 影响最终的强学习器的预测准确性。

GBDT

基本概念

GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,是一种迭代的决策树算法,又叫 MART(Multiple Additive Regression Tree),它通过构造一组弱的学习器(树),并把多棵决策树的结果累加起来作为最终的预测输出。该算法将决策树与集成思想进行了有效的结合。

GBDT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,该算法由多棵决策树组成,GBDT 的核心在于累加所有树的结果作为最终结果,所以 GBDT 中的树都是回归树,不是分类树,它是属于 Boosting 策略。GBDT 是被公认的泛化能力较强的算法。

GBDT 由三个概念组成:

Regression Decision Tree(即 DT)、Gradient Boosting(即 GB),和 Shrinkage(缩减)

回归树(Regression Decision Tree)-GBDT中的DT

如果认为 GBDT由很多分类树那就大错特错了(虽然调整后也可以分类)。对于分类树而言,其值加减无意义(如性别),而对于回归树而言,其值加减才是有意义的(如说年龄)。GBDT的核心在于累加所有树的结果作为最终结果(多个弱分类器的预测结果线性相加),所以 GBDT中的树都是回归树,不是分类树,这一点相当重要。回归树在分枝时会穷举每一个特征的每个阈值以找到最好的分割点,衡量标准是最小化均方误差。

梯度提升(Gradient Boosting)-GB,也是GBDT的核心

GBDT的核心在于累加所有树的结果作为最终结果,GBDT的每一棵树都是以之前树得到的残差来更新目标值,这样每一棵树的值加起来即为 GBDT的预测值。

基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。在每一轮迭代中,首先计算出当前模型在所有样本上的负梯度,然后以该值 为目标训练一个新的弱分类器进行拟合并计算出弱分类器的权重,最终实现对模型的更新。

与 Adaboost的对比

相同:

1. 都是 Boosting家族成员,使用弱分类器;

2. 都使用前向分布算法;

不同:

1. 迭代思路不同:Adaboost是通过提升错分数据点的权重来弥补模型的不足(利用错分样本),而 GBDT是通过算梯度来弥补模型的不足(利用残差);

2. 损失函数不同:AdaBoost采用的是指数损失,GBDT使用的是绝对损失或者Huber 损失函数;

XGBoost

基本概念

XGBoost是基于梯度提升框架的一个优化版本。梯度提升是一种迭代的集成算法,通过不断构建新的树来补充之前模型的错误。它依赖多个决策树的集成效果,来提高最终模型的预测能力。

作为Boosting算法,XGBoost中自然包含Boosting三要素:

损失函数:用以衡量模型预测结果与真实结果的差异。
弱评估器 :(一般为)决策树,不同的boosting算法使用不同的建树过程。
综合集成结果:即集成算法具体如何输出集成结果
并且XGBoost同样遵循Boosting算法建模的基本流程

XGBoost的优缺点

缺点

• 精度更高:GBDT 只用到一阶泰勒展开,而 XGBoost 对损失函数进行了二阶泰勒展开。XGBoost引入二阶导一方面是为了增加精度,另一方面也是为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数;

• 灵活性更强:GBDT 以 CART 作为基分类器,XGBoost 不仅支持 CART 还支持线性分类器,使用线性分类器的 XGBoost 相当于带 L1 和 L2 正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。此外,XGBoost 工具支持自定义损失函数,只需函数支持一阶和二阶求导;

• 正则化:XGBoost 在目标函数中加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶

子节点个数、叶子节点权重的 L2 范式。正则项降低了模型的方差,使学习出来的模型更加简单,

有助于防止过拟合,这也是XGBoost优于传统GBDT的一个特性。

缺点

• 虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历

数据集;

• 预排序过程的空间复杂度过高,不仅需要存储特征值,还需要存储特征对应样本的梯度统计值的

索引,相当于消耗了两倍的内存。

XGBoost与GBDT的联系和区别

(1)GBDT是机器学习算法,XGBoost是该算法的工程实现

(2)正则项:在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。

(3)导数信息:GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。

(4)基分类器:传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。

(5)子采样:传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样。

(6)缺失值处理:传统GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。

(7)并行化:传统GBDT没有进行并行化设计

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

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

相关文章

多线程案例---单例模式

单例模式 什么是设计模式呢? 设计模式就好比棋手中的棋谱。在日常开发中,会会遇到很多常见的“问题场景”,针对这些问题场景,大佬们就设计了一些固定套路,按照这些固定套路来实现代码或应对这些问题场景,也…

第十九章 Vue组件之data函数

目录 一、引言 二、示例代码 2.1. 工程结构图 2.2. main.js 2.3. App.vue 2.4. BaseCount.vue 三、运行效果 一、引言 在Vue CLI脚手架中一个组件的data选项必须是一个函数,以此保证每个组件实例,维护独立的一份数据对象。每次创建新的组件实…

mabtisx突然不起作用:mapper跳转不到xml

解决:进入官方下载:JetBrains Marketplace 选择和你idea对应的版本号 切内网下载

ComfyUI正式版来袭!一键安装无需手动部署!支持所有电脑系统

ComfyUI V1重磅发布:迈向AI图像处理新时代 近日,ComfyUI团队正式推出了备受期待的ComfyUI V1版本,为图像生成和处理的AI用户带来了全新的生态体验。这一版本不仅彻底解决了以往版本中繁琐的安装和兼容问题,还大幅提升了易用性&…

pycharm设定代码模板

1、在文件点击设置 ​​​​​​​ ​​​​​​​ 2、点击编辑器--实时模板--找到需要插入模板的位置如我要插入HTML的模板---选择--点击实时模板 3、如图: 4、添加模板内容,如果模板有变量可以在编辑变量处点击编辑 5、编辑变量 6、点…

蘑菇书(EasyRL)学习笔记(2)

1、序列决策 1.1、智能体和环境 如下图所示,序列决策过程是智能体与环境之间的交互,智能体通过动作影响环境,环境则返回观测和奖励。智能体的目标是从这些反馈中学习出能最大化长期奖励的策略,这一过程通过不断试错和调整实现强化…

SQL进阶技巧:如何利用三次指数平滑模型预测商品零售额?

目录 0 问题背景 1 数据准备 2 问题解决 2.1 模型构建 (1)符号规定 (2)基本假设 (3)模型的分析与建立 2.2 模型求解 3 小结 0 问题背景 1960年—1985年全国社会商品零售额如图1 所示 表1全国社…

Rsync远程同步详细介绍

一、rsync介绍 rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。 rsync软件支持跨平台,适用于unix/ linux/windows等多种操作系统平台。rsyn…

无人机之自动控制原理篇

一、飞控系统 无人机飞控是指无人机的飞行控制系统,是无人机的大脑。飞控系统通过传感器、控制器和执行机构三部分实现对无人机的自动控制。 传感器:传感器负责收集无人机的姿态、速度、高度等信息。常见的传感器包括陀螺仪、加速度计、磁力计、气压计、…

得物App获评新奖项,正品保障夯实供应链创新水平

近日,得物App再度获评新奖项——“2024上海市供应链创新与应用优秀案例”。 本次奖项为上海市供应链领域最高奖项,旨在评选出在供应链创新成效上处于领先地位、拥有成功模式和经验的企业。今年以来,得物App已接连获得“上海市质量金奖”、“科…

STM32F103C8T6学习笔记3--按键控制LED灯

1、实验内容 S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。 由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有…

10.27复习day —— 药销系统分页前(上)

登陆界面 1.auto 水平方向 —— 占据尽量多的空间 margin:auto —— 水平居中 2.块状:block main、div、p 特点: 独占一行 水平方向占满父元素可用空间(所以得设置宽度) 垂直方向占据空间由其内容大小决定 行内:inlin…

clickhouse运维篇(三):生产环境一键生成配置并快速部署ck集群

前提条件:先了解集群搭建流程是什么样,需要改哪些配置,有哪些环境,这个文章目的是简化部署。 clickhouse运维篇(一):docker-compose 快速部署clickhouse集群 clickhouse运维篇(二&am…

快速入门kotlin编程(精简但全面版)

注:本文章为个人学习记录,如有错误,欢迎留言指正。 目录 1. 变量 1.1 变量声明 1.2 数据类型 2. 函数 3. 判断语句 3.1 if 3.2 when语句 4. 循环语句 4.1 while 4.2 for-in 5. 类和对象 5.1 类的创建和对象的初始化 5.2 继承 5…

云原生Istio基础

一.Service Mesh 架构 Service Mesh(服务网格)是一种用于处理服务到服务通信的专用基础设施层。它的主要目的是将微服务之间复杂的通信和治理逻辑从微服务代码中分离出来,放到一个独立的层中进行管理。传统的微服务架构中&#x…

【网页布局技术】项目五 使用CSS设置导航栏

《CSSDIV网页样式与布局案例教程》 徐琴 目录 任务一 制作简单纵向导航栏支撑知识点1.合理利用display:block属性2.利用margin-bottom设置间隔效果3.利用border设置特殊边框 任务二 制作简单横向导航栏任务三 制作带图片效果的横向导航栏任务…

银河麒麟v10 xrdp安装

为了解决科技被卡脖子的问题,国家正在大力推进软硬件系统的信创替代,对于一些平时对Linux操作系统不太熟练的用户来讲提出了更高的挑战和要求。本文以银河麒麟v10 24.03为例带领大家配置kylin v10的远程桌面。 最近公司为了配置信创开发新购了几台银河麒…

什么是x86架构,什么是arm架构

什么是 x86 架构? x86 架构是一种经典的指令集架构(ISA),最早由英特尔在 1978 年推出,主要用于 PC、服务器等领域。 它是一种复杂指令集计算(CISC)架构,支持大量的复杂指令和操作&…

客户的奇葩要求—在CAN网络的基础上加入了CAN_FD的节点

1:客户的奇葩要求 最近的工作中,遇到了一个有点奇葩的事,客户需要开发一个系统,我们负责其中的一个ECU,这个系统采取的是经典11bit ID的CAN网络。 今天突然提了一个要求,说要在网络中,加入支持…

4G 模组的 FTP 应用:技术科普

众所周知FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端,今天我将为大家带来一场4G 模组的 FTP 应用技术科普: 以低功耗模组Air780E核心板为例。 1、FTP 概述 FTP(File Transfer Protocol,文件…