图解集成学习中的梯度提升思想

摘要: 本文讲述集成学习中的梯度提升方法的思想,以简单算术及图片的形式展示整个过程,一看就懂!

简介

       机器学习(ML)中的一个关键步骤是选择适合数据的最佳算法,根据数据中的一些统计数据和可视化信息,机器学习工程师将选择最佳算法。假设数据如下图所示,现在将其应用于回归示例:

1


       对数据进行可视化,如下图示所示,似乎线性回归模型对其比较合适:

2


       将根据线性等式制定仅具有一个输入x和一个输出y的回归模型:

 

y=ax+by=ax+b

其中a和b是上述等式的两个参数。
       由于我们不知道适合数据的最佳参数,因此可以从初始化取值开始。可以将a设置为1.0,将b设置为0.0,并可视化等式,如下图所示:

4


       从图中可以看到,似乎该模型不能基于参数初始化取值来拟合数据。
       很明显,不可能第一次试验初始化就能取得很好的结果。但问题是如何在这种情况下提高性能?换句话说,如何最大化分类准确度或最小化回归误差?下面有不同的方法。其中一种简单的方法就是尝试更改先前选择的参数。经过多次试验,模型将知道最佳参数是a = 2和b = 1,该模型适合这种情况下的数据,如下图所示,可以看见拟合得非常好:

5


       但是在某些情况下,更改模型参数并不会使得模型很好地拟合数据,仍然会有一些错误的预测。假设数据有一个新点(x = 2, y = 2)。从下图可以看出,不可能找到使模型完全适合每个数据点的参数,不适用于线性拟合。

6


       有人可能会说,该模型能够拟合四个点而缺少一个点,这是可以接受的。但是,如果有更多的点,如下图所示呢?在这种情况下,该模型将做出更多的错误预测。没有一条直线可以拟合整个数据。该模型只对线上点的预测很强,但对其他点则较弱。

7

集成学习|Ensemble Learning

       由于单个回归模型不适合整个数据,因此另一种解决方案是使用多个回归模型。每个回归模型都能够强有力地适应部分数据,将所有模型组合起来将减少整个数据的总误差,并产生一个通用的强大模型。在问题中使用多个模型的这种方法称为集合学习。使用多个模型的重要性如下图所示。图中显示了在预测样本结果时的误差很大。从图b中可以看到,当存在多个模型(例如,三个模型)时,其结果的平均值将能够比以前做出更准确的预测。

8


       当应用于图7中的先前问题时,拟合数据的4个回归模型的集合在图9中已经表示出:

9


       这就带了了另外的一个问题,如果有多个模型可以拟合数据,那么如何获得单个数据的预测?有两种方法可以组合多个回归模型来返回单个结果。它们是bagging和boosting(本文重点内容)。
       在bagging中,每个模型将返回其结果,并对所有模型的输出结果进行综合,进而返回最终结果。一种综合方法是将所有模型的输出结果进行平均,bagging是平行工作的,因为所有模型都在同时工作。
       相反,boosting被认为是顺序处理的,因为一个模型的输出结果是下一个模型的输入。boosting的想法是使用弱学习器来拟合数据。由于模型很弱,所以无法正确拟合数据,这种学习器的弱点将由另一个弱学习器来解决。如果仍然存在一些弱点,那么将使用另一个弱学习器来修复它们,直到最终从多个弱学习器中产生了强大的学习器。接下来将解释梯度增强的工作原理。

梯度提升|Gradient Boosting

       以下是基于一个简单示例梯度提升的工作原理:
假设要构建一个回归模型,并且数据具有单个输出,其中第一个样本的输出为15,如下图所示。最终目标是建立能够正确预测这种输出的回归模型。

10


       第一个弱模型预测第一个样本的输出为9而不是15,如下图所示:

11


       为了衡量预测的损失量,对其计算残差,剩余量是期望和预测输出之间的差异。计算等式如下:

 

期望−预测1=残差1期望−预测1=残差1

       其中预测和残差1分别是第一个弱模型的预测输出和残差。
因此,上述例子的残差将为为:

 

15−9=615−9=6

       由于预测输出和期望输出之间存在残差值为6的差距,因此可以创建第二个弱模型,其目标是预测输出等于第一模型的残差。所以,第二个模型将解决第一个模型的弱点。根据下面这个等式,两个模型的输出总和将等于期望输出:

 

期望输出=预测1+预测2(残差1)期望输出=预测1+预测2(残差1)

       如果第二个弱模型能够正确地预测残差1,则期望输出将等于所有弱模型的预测,如下所示:

 

期望输出=预测1+预测2(残差1)=9+6=15期望输出=预测1+预测2(残差1)=9+6=15

       但是,如果第二个弱模型未能正确预测残差1的值,而仅返回的值为3,那么第二个弱学习器也将具有如下的残差:

 

残差2=预测1−预测2=6−3=3残差2=预测1−预测2=6−3=3

如下图所示:

12


       为了解决第二个弱模型的弱点,将创建第三个弱模型。其目标是预测第二弱模型的残差。因此,它的目标输出值为3。所以,样本的期望输出将等于所有弱模型的预测,如下所示:

 

期望输出=预测1+预测2(残差1)+预测3(残差2)期望输出=预测1+预测2(残差1)+预测3(残差2)

       如果第三弱模型预测是2,不等于3,即它不能预测出第二个弱模型的残差,那么对于这样的第三个弱模型将存在残差:

 

残留3=预测2−预测3=3−2=1残留3=预测2−预测3=3−2=1

如下图所示

13


       因此,将创建第四个弱模型来预测第三个弱模型的残差,其值等于1。期望输出将等于所有弱模型的预测,如下所示:

 

期望输出=预测1+预测2(残差1)+预测3(残差2)+预测4(残差3)期望输出=预测1+预测2(残差1)+预测3(残差2)+预测4(残差3)

       如果第四个弱模型正确地预测其目标(即,残差值3),则总共使用四个弱模型即可达到15的期望输出,如下图所示。

14


       这就是梯度增强算法的核心思想,使用先前模型的残差作为下一个模型的目标,有点类似于递归算法,满足终止条件即退出递归。
梯度提升总结
       总而言之,梯度提升始于弱模型预测,这种弱模型的目标是使其预测值与问题的理想输出一致。在模型训练之后,计算其残差。如果残差不等于零,则创建另一个弱模型以修复前一个的弱点。但是这种新模型的目标并不是获得期望输出,而是先前模型的残差。也就是说,如果给定样本的期望输出是T,则第一模型的目标是T。在训练之后,对于这样的样本可能存在R的残差,所以要创建一个的新模型,并将其目标设置为R,而不是T,新模型填补以前模型的空白。
       梯度增强类似于多个力量弱的人抬一个重物上楼梯。没有一个力量弱的人能够抬着重物走完真个楼梯,每个人只能抬着走一步。第一个人将重物提升一步并在此之后变得疲惫,无法继续;另一个人继续抬起重物并向前走另一步,依此类推,直到走完所有楼梯,重物到达指定位置。 

原文链接 

 本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

AI助手智商测评Siri进步最大,无人驾驶打车服务已在美国试行

摘要: 万年老幺Google Assistant稳坐AI助手第一的位置,siri屈居老二可进步倒是不小!无人驾驶打车已经成为现实,就问你敢坐不敢坐!最接地气儿的CEO马斯克,变身快递员送货到家只为卖车......支付宝小程序也来…

Kafka 监控 Kafka Eagle 精简版本

文章目录一、Kafka Eagle 下载、编译流程1. Kafka Eagle下载2. 解压Kafka Eagle3. 进入解压的目录4. 编译项目5. 添加编译环境6. 运行脚本编译项目二、Kafka Eagle 正式配置流程2.1. 进入编译获得web目录2.2. 将编译后的tar解压到/app目录2.3. 在/app目录下面查看2.4. 配置文件…

arcgis python实例_ArcGIS Python编程案例(14)-五个常用Python处理任务

我们将在本章介绍以下案例: 从分隔符文本文件中读取数据 发送电子邮件 访问FTP服务器中的文件 创建ZIP文件 读取XML文件 引言 在本章中,你将学习如何编写Python脚本来执行常用的处理任务。这些任务包括读写分隔符文本文件,发送电子邮件&#…

c 最大子序列和_最大连续子序列

最大连续子序列&#xff1a;是指序列中所有子序列中元素和最大的一个例如{-2,11&#xff0c;-4,13&#xff0c;-5.-2}中最大连续子序列为{11&#xff0c;-4,13}其和为20若所有k个元素都为负数&#xff0c;则定义其最大和为0&#xff0c;输出整个序列的首尾元素#include<iost…

【只有光头才能变强,文末有xx】分享一波Lambda表达式

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Java3y责编 | 阿秃前言只有光头才能变强。学了一下Java的函数式编程&#xff0c;给大家整理了一下&#xff0c;一起学习&#xff01;一、Lambda用法之前写Optional这个类的时候&#xff0c;简单说了一下Lambda是怎么用的&am…

因为阿里,他们成了“杭漂”

摘要&#xff1a; 这是你吗——有人在回北京的飞机上赶时间写周报&#xff1b;有人全家在美国&#xff0c;孤身从硅谷回杭州工作&#xff1b;有人每周回北京为了赶末班飞机快速过安检&#xff0c;周末从不系皮带。 阿里正在从杭州走向全世界&#xff0c;也有越来越多的人才&am…

如何提高一个研发团队的“代码速度”?

摘要&#xff1a; 蚂蚁金服国际事业群技术风险部研究员南门&#xff0c;将和大家聊聊Code Velocity&#xff0c;希望能在团队效率问题方面&#xff0c;为你带来一些启发。 什么是代码速度&#xff08;Code Velocity&#xff09;&#xff1f; Code Velocity的定义是&#xff1…

多机器人路径规划的代码_知荐 | 地平线机器人算法工程师总结六大路径规划算法...

来源 | 知乎知圈 | 进“高精度地图社群”&#xff0c;请加微信15221054164&#xff0c;备注地图目录1 自主机器人近距离操作运动规划体系1.1 单个自主机器人的规划体系1.2 多自主机器人协同规划体系2 路径规划研究2.1 图搜索法2.1.1 可视图法2.1.2 Dijkstra算法2.1.3 A*算法2.2…

Kafka 监控 Kafka Eagle 图形化版本

文章目录一、Kafka Eagle 下载、编译流程1. Kafka Eagle下载2. 解压Kafka Eagle3. 进入解压的目录4. 编译项目5. 添加编译环境6. 运行脚本编译项目二、Kafka Eagle 正式配置流程2.1. 进入编译获得web目录2.2. 将编译后的tar解压到/app目录2.3. 在/app目录下面查看2.4. 配置文件…

一份关于如何为回归任务选择机器学习算法指南

摘要&#xff1a; 本文总结了一些针对于回归问题的机器学习方法&#xff0c;辩证地分析了其各自的优缺点&#xff0c;读者可以根据具体问题选择合适的机器学习算法以完成相应的任务。 当遇到任何类型的机器学习&#xff08;ML&#xff09;问题时&#xff0c;可能会有许多不同的…

博文强识|支付宝 App 是如何建设移动 DevOps 的?

作者 | 阿里云云栖社区转自 &#xff5c; CSDN企业博客责编 | 阿秃微软 MSDN 上的一篇文章有这样一段话&#xff1a;“移动应用的理想环境需要满足两个条件&#xff0c;一是可以确切知道客户脑海中立即浮现的需求&#xff0c;二是为了满足这些需求而编写的代码可以立即传递给这…

第一个将Palette Mode引入VVC(H.266),阿里云在JVET会议上引起关注

从应用需求出发&#xff0c;帮助标准组织制定出更贴近云端业务需求的标准 视频压缩标准是一个重要且深具挑战的研究方向。从过去的存储到当前的网络带宽&#xff0c;视频标准每一代的更新进步对科技应用都有很大的影响。但同时随着几十年来的发展&#xff0c;视频压缩标准的效…

kafka集群下载、启动、部署、测试

文章目录一、kafka基础操作1. kafka下载2. 解压3. 重命名4. 在kafka目录下创建 data 数据文件夹5. 修改配置文件6. 配置kafka环境变量7. 刷新环境变量&#xff0c;使之生效二、kafka集群操作2.1. 分发配置好的基础安装包2.2. 登录ly-02服务器&#xff0c;修改配置文件2.3. 登录…

零基础学python难_0基础学python有多难

相对于其他编程语言来说&#xff0c;Python并不是很难&#xff0c;入门简单&#xff0c;容易上手&#xff0c;对于零基础的人来说&#xff0c;入门Python是不难的&#xff0c;但是想要学精学通&#xff0c;则要花费一定的时间和精力。Python是主流的编程语言&#xff0c;应用性…

修改HBase的rowkey设计把应用的QPS从5W提升到50W

摘要&#xff1a; 正确设计Hbase的rowkey可以让你的应用飞起来&#xff0c;前提是你需要了解一些Hbase的存储机制。 UTT是Aliexpress的营销消息运营平台&#xff0c;运营希望促销活动时APP消息推送的QPS达到34W。 UTT刚接入APP消息推送时&#xff0c;QPS只能达到5W&#xff0…

BDTC 2019 | 15场分论坛,10分钟速览,5折票优惠,烧脑模式开启

2019中国大数据技术大会&#xff08;BDTC&#xff09;5折优惠票限时抢购啦&#xff0c;学生票仅售599元&#xff01;扫描上图二维码或登录官网&#xff08;https://t.csdnimg.cn/KSTh&#xff09;了解更多最新大会详情。近日&#xff0c;在组委会公布大会部分重磅讲师和前沿议题…

我需要一个高并发的架构,我的系统要改造成微服务吗

摘要&#xff1a; 最近大家都在谈微服务&#xff0c;随着越来越多的在线业务需要提供更大并发的scale-up 和 scale out能力&#xff0c;微服务确实提供了比较好分布式服务的解决方案。 阿里云高级解决方案架构师 杨旭 世界最大混合云的总架构师&#xff0c;4年前&#xff0c;开…

python工作目录_Python目录的基本操作

一、任务描述 本实验任务主要对Python目录进行一些基本操作&#xff0c;通过完成本实验任务&#xff0c;要求学生熟练掌握Python目录的基本操作&#xff0c;并对Python目录的基本操作进行整理并填写工作任务报告。 二、任务目标 1、掌握Python目录的操作 三、任务环境 Ubuntu16…

【建议收藏】数据中心服务器基础知识大全

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Hardy责编 | 阿秃服务器对每个从事IT工作的人来说并不陌生&#xff0c;但是服务器所涉及的各种知识细节&#xff0c;并非大家都十分清楚&#xff0c;为了让大家深入了解服务器的关键知识点&#xff0c;笔者特意抽时间总结了…

一文了解阿里云CDN HTTP2.0

摘要&#xff1a; 本文由阿里视频云高级技术专家空见撰写&#xff0c;主要介绍HTTP2.0的历史、特性、如何使用和使用之后的性能对比验证。 背景介绍 要了解HTTP2.0&#xff0c;先了解一下HTTP超文本传输协议的历史&#xff08;HyperText Transfer Protocol&#xff09;&#…