Boosting Ensemble and GBDT Algorithm
Boosting Ensemble: 机器学习中,Ensemble model除了Bagging以外,更常用的是Boosting。与Bagging不同,Boosting中各个模型是串行的。其思想是,后面的model,要从前面models的预测中结果中,试图将错误纠正。下面两张图可以看出二者的异同:


在第一个模型训练之前,各个Training Examples出现在本次训练中的概率相同;训练后的模型,如果在某些数据的预测上出现错误,则这些数据点出现在下个模型中的概率将会被提升,反之预测正确的数据点的概率将会被下调。最终,再将各个模型的输出做合并,给出最终Ensemble模型的预测。该算法的关键点是去设定‘何时停止迭代’,因为无休止的纠错最终将导致Overfitting.
Gradient Boosting Decision Tree(GBDT): 该算法改版自Boosting Ensemble,每个model采用的都是Decision Tree,同时融入了Gradient Descent的思想。首先,我们想象在最基础的Boosting Ensemble中,当第一个模型训练后,得到一个预测值h1(X),而期望的输出output为Y,则二者的差值(残差:Residual)为:
R1(X)=Y-h1(X)
那如果,我们能够构建一个模型model2,去输出R1(X),那么Model1与Model2的输出之和为Y:
Y=h1(X)+R1(X)
当然,拟合出R1(X)是最理想的情况,但实际中却只能输出近似值r1(X),将其累加到第一个model的输出上,我们就得到了model2的输出:
h2(X)=h1(X)+r1(X)
这是我们又得到了R2(X)为Y与h2(X)的差值。循环往复,最终的输出将会不断逼近Y。但,这和Gradient有什么关系呢?

该模型在第n个模型上输出的hypothesis是:
hn(X)=hn-1(X)+rn-1(X)
如果把残差Residual展开:
hn(X)=hn-1(X)+(y-hn-1(X))
在Gradient Descent里面,我们知道,Cost Function被定义为:

当m为1时,我们很容易看出,hn(X)的值是在hn-1(X)的基础上,减去了一倍的梯度(learning rate α=1),所以该算法被冠上了Gradient的名字,不无道理哦。
Boosting Ensemble and GBDT Algorithm的更多相关文章
- Boosting决策树:GBDT
GBDT (Gradient Boosting Decision Tree)属于集成学习中的Boosting流派,迭代地训练基学习器 (base learner),当前基学习器依赖于上一轮基学习器的学 ...
- 机器学习--boosting家族之GBDT
本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)做一个总结.GBDT有很多简称,有GBT(Gradient ...
- A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning
A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning by Jason Brownlee on S ...
- GBDT(Gradient Boosting Decision Tree) 没有实现仅仅有原理
阿弥陀佛.好久没写文章,实在是受不了了.特来填坑,近期实习了(ting)解(shuo)到(le)非常多工业界经常使用的算法.诸如GBDT,CRF,topic model的一些算 ...
- 集成学习算法汇总----Boosting和Bagging(推荐AAA)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- Parallel Gradient Boosting Decision Trees
本文转载自:链接 Highlights Three different methods for parallel gradient boosting decision trees. My algori ...
- CatBoost使用GPU实现决策树的快速梯度提升CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- 壁虎书7 Ensemble Learning and Random Forests
if you aggregate the predictions of a group of predictors,you will often get better predictions than ...
- (转) Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance
Ensemble Methods for Deep Learning Neural Networks to Reduce Variance and Improve Performance 2018-1 ...
随机推荐
- webpack2.0 基本使用
webpack是一款前端模块打包工具, 它的出现是由于现代web开发越来越复杂,如果还是像原来那样把所有的js代码都写到一个文件中,维护非常困难.而解决复杂化的方法通常是分而治之,就是把复杂化的东西进 ...
- MyEclipse创建maven项目时报: org.apache.maven.archiver.MavenArchiver.getManifest 错误
创建项目报错,如图: 原因就是maven的配置文件不是最新的,MyEclipse2014解决方法: 1.help ->Install New sitie... 2.点击add 3.填写name和 ...
- Elasticsearch单机安装_集群搭建_索引基本操作_Head插件安装与基本操作_ik分词器配置_logstash实现数据同步_教程
一.Elasticsearch单机安装 1.将es安装包传到服务器上 这是安装包 这里我是用的是WinSCP上传工具,上传到/home/plugins文件下. 进入Xshell,验证一下是否上传成功. ...
- 自己关于SSM框架的搭建
第一步 导入相应的包 spring springmvc 需要的包 spring-webmvc spring-aop spring-beans apring-context spring-core sp ...
- mysql的锁
前言 mysql锁的概念参考如下连接: 1.http://blog.csdn.net/u013063153/article/details/53432468 2.http://www.yesky.co ...
- 02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录
<MySQL实战45讲>02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录http://naotu.baidu.com/file/ad320c7a0e031c2d6db7b5a ...
- Java调用MySql数据库函数
Java调用MySql数据库函数 /** * 调用mysql的自定义函数 * */ private void test() { logger.info("show task start &q ...
- 【串线篇】SQL映射文件-resultMap自定义封装
mybatis默认封装规则: 1).按照列明和属性名一一对应的规则(不区分大小写) 2).如果不一一对应: 1).开启驼峰命名(数据库aaa_bbb, 程序中aaaBbb) 2).起别名 3).自定义 ...
- 10.Servlet简单介绍
1.什么是Servlet * Servlet是javaweb的三大组件之一,它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet种通常需要: ...
- 验证码生成(servlet)
一 效果如下: 二 java 代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import j ...