本文是要配合《统计学习方法》才能看懂的,因为中间有些符号和定义是直接使用书本中的


先弄明白以下三个公式:

1)Boost(提升法)=加法模型(即基函数的线性组合)+前向分步算法+损失函数

2)Adaboost=Boost+损失函数是指数函数(基函数可以任意)

3)提升树=Boost+基函数是决策树(损失函数可以任意)

由此可以看出:

1)Boost是一种算法框架,而这种框架是由加法模型和前向分步算法构成的。

2)Adaboost和提升树都是Boost的子集,都是由限定了Boost中某一部分元素而得到的。


前向分步算法(解决加法模型):每次学习一个基函数的参数Gm(x)(即下一个基函数)

下一个基函数的选择标准:在已经学习到加法模型fm-1(x)的基础上,选择一个使得损失最小的基函数Gm(x)


损失函数:

1)指数损失函数:决定了Adaboost必须进行加权取样(权重由错误率决定),以进行下一个模型的参数学习,并且决定了最终模型也是加权累计

2)平方误差损失函数:决定了BRT的下一个模型应该学习前一个模型的残差

3)一般损失函数:决定了GBRT/GBDT的下一个模型应该学习前一个模型的梯度(残差近似)


各种提升决策树

1)BDT(提升决策树,二分类):Adaboost中将模型选定为二类分类树,即二类分类树+指数损失—>加权【可以称为:提升分类树的Adaboost方法】

2)BRT(提升回归树):二叉回归树+平方误差损失—>残差

3)GBRT:二叉回归树+普通损失函数—>损失函数的负梯度(残差的替代)

4)GBDT:二叉分类树+普通损失函数—>损失函数的负梯度

当损失函数是平方误差损失时,其负梯度就是残差,即此时GBRT=BRT

从boost到Adaboost再到GBRT-GBDT-MART的更多相关文章

  1. GBRT(GBDT)(MART)(Tree Net)(Tree link)

    源于博客 GBRT(梯度提升回归树)有好多名字,标题全是它的别名. 它是一种迭代的回归树算法,由多棵回归树组成,所有树的结论累加起来得到最终结果.在被提出之初与SVM一起被认为是泛化能力较强的算法. ...

  2. GBDT(Gradient Boost Decision Tree)

    原文:http://blog.csdn.net/aspirinvagrant/article/details/48415435 GBDT,全称Gradient Boosting Decision Tr ...

  3. 集成方法:渐进梯度回归树GBRT(迭代决策树)

    http://blog.csdn.net/pipisorry/article/details/60776803 单决策树C4.5由于功能太简单.而且非常easy出现过拟合的现象.于是引申出了很多变种决 ...

  4. 机器学习(四)--- 从gbdt到xgboost

    gbdt(又称Gradient Boosted Decision Tree/Grdient Boosted Regression Tree),是一种迭代的决策树算法,该算法由多个决策树组成.它最早见于 ...

  5. 常见算法(logistic回归,随机森林,GBDT和xgboost)

    常见算法(logistic回归,随机森林,GBDT和xgboost) 9.25r早上面网易数据挖掘工程师岗位,第一次面数据挖掘的岗位,只想着能够去多准备一些,体验面这个岗位的感觉,虽然最好心有不甘告终 ...

  6. AdaBoost入门

    写一点自己理解的AdaBoost,然后再贴上面试过程中被问到的相关问题.按照以下目录展开. 当然,也可以去我的博客上看 Boosting提升算法 AdaBoost 原理理解 实例 算法流程 公式推导 ...

  7. 机器学习技法-GBDT算法

    课程地址:https://class.coursera.org/ntumltwo-002/lecture 之前看过别人的竞赛视频,知道GBDT这个算法应用十分广泛.林在第八讲,简单的介绍了AdaBoo ...

  8. 阿里游戏大数据sesson2_RF&GBRT(上)

    ----------一个小的游戏体验,对于不太熟悉Xlab RF和GBRT同学们都叫参考,不喜勿喷,大神绕道,米姆达. . .. .---------- 6月初的时候LR 做到4.9后一直上不去,看群 ...

  9. 在IDE中集成boost

    1. 获得Boost 进入Boost的网站(http://www.boost.org/) 下载boost_1_62_0.zip 2. 解压Boost 解压 boost_1_62_0.zip ,比如解压 ...

随机推荐

  1. Qt Widgets——抽象按钮及其继承类

    QAbstractButton是有关“按钮”的基类 描述了一个按钮应该具有的组成.它的公有函数如下: QAbstractButton(QWidget * parent = ) ~QAbstractBu ...

  2. Java技巧之双括弧初始化

    由于Java语言的集合框架中(collections, 如list, map, set等)没有提供任何简便的语法结构,这使得在建立常量集合时的工作非常繁索.每次建立时我们都要做: 定义一个临时的集合类 ...

  3. 文件操作_26th,Nov 2018

    文件:操作系统问应用程序或用户提供一种操作硬盘的虚拟单位 --文件时操作系统提供的虚拟单位 --应用程序或用户对文件的读写操作都是向操作系统发送指令 --文件包括文本文件和二进制文件 为何要用文件:文 ...

  4. js如何通过末次月经日期计算预产日期

    计算方式有两种 1)直接添加280天 2)添加10月8天(参数传递,可用改成9月7天等) js中引入文件 <script src="js/jquery.min.js"> ...

  5. sql server中截取字符串的常用函数

    我们如果要在sql server中,使用截取字符串的方法要怎样使用呢? sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING() /****** Sql ...

  6. Regex Password Validation

    You need to write regex that will validate a password to make sure it meets the follwing criteria: A ...

  7. [Leetcode 122]买股票II Best Time to Buy and Sell Stock II

    [题目] Say you have an array for which the ith element is the price of a given stock on day i. Design ...

  8. Asp.Net WebApi核心对象解析(一)

    生活需要自己慢慢去体验和思考,对于知识也是如此.匆匆忙忙的生活,让人不知道自己一天到晚都在干些什么,似乎每天都在忙,但又好似不知道自己到底在忙些什么.不过也无所谓,只要我们知道最后想要什么就行.不管怎 ...

  9. nw.js的localStorage的物理储存位置

    前言 因为在做美团外卖商家端的nw.js壳子项目,需要保证在壳子里面使用localStorage的数据可以持久化保存. 发现nw可以保存,即使删除应用重写打包也可以保存,所以解决了这个需求,但是还是需 ...

  10. it网站

    1:http://www.importnew.com/    importnew  专注于java的论坛 2:Github是最活跃的开源代码库和版本控制平台,可以说是程序员当中知名度最高的技术社区.各 ...