Boosting

将一些表现效果一般(可能仅仅优于随机猜测)的模型通过特定方法进行组合来获得一个表现效果较好的模型。抽象地说,模型的训练过程是对一任意可导目标函数的优化过程。

Adaptive boost

通过组合一系列表现一般的模型获得了一个表现优秀的模型,其中,每个新的模型都会基于前一个模型的表现结果进行调整(adaptive)

  • D1->D2->D3,为D1中错误分类点增加权重,从而得到D2,再对D2中的错误分类点增加权重,从而得到D3.
  • combine(D1,D2,D3)->D4

    基分类器最常见的是决策树,在每一轮提升相应错分类点的权重可以被理解为调整错分类点的observation
    probability。

Gradient boosting

Gradient Descent + Boosting,通过反复地选择一个指向负梯度方向的函数,该算法可被看做在函数空间里
对目标函数进行优化。可以说 AdaBoost 是 Gradient Boosting 的一个特例或者Gradient Boosting是对
AdaBoost进行推广。
和 AdaBoost 相同,Gradient Boosting也是重复选择一个表现一般的模型并且每次基于先前模型的表现进行
调整,不同之处在于,AdaBoost 是通过提升错分数据点的权重来定位模型的不足而 Gradient Boosting 是通
过算梯度(gradient)来定位模型的不足,即通过负梯度改进模型。

gradient boosting的损失函数可以是square loss,absolute loss等,square loss的缺点是异常值
的鲁棒性差。
gradient boosting可以用于回归、分类等问题,对于分类问题,它的基分类器一般是决策树,即
GBDT(gradient boosting decision tree)。

GBDT算法基树采用CART回归树,树节点的划分指标是平方损失函数,叶子节点的值是落在该叶子节点所有样本的目标均值。树与树之间的Boosting逻辑是:新树拟合的目标是上一课树的损失函数的负梯度的值。GBDT最终的输出结果是将样本在所有树上的叶子值相加。

GBDT V.S. LR

从决策边界来说,线性回归的决策边界是一条直线,逻辑回归的决策边界根据是否使用核函数可
以是一条直线或者曲线,而GBDT的决策边界可能是很多条线。
GBDT的基分类器是CART 树,并不一定总是好于线性回归或逻辑回归。

XGBoost

eXtreme Gradient Boosting,专注于快速计算和模型表现。
XGboost的工具支持并行化、分布式计算、去中心化计算、cache优化等。

XGBoost V.S. GBDT

  • 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到
    了一阶和二阶导数。损失函数函数都是可自定义的,但 XGBoost 需要自定义损失函数二阶可导。
  • 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2
    正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。
  • 基模型拟合差异, XGBoost 是拟合 -g/(h+r),GBDT是拟合-g。
  • xgboost在代价函数里加入了正则项,用于控制模型的复杂度,防止过拟合。
  • xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。
  • 缺失值的处理。对于特征的缺失值,xgboost可以自动学习出它的分裂方向。
  • 特征粒度上的并行。决策树之间串行,决策树内计算最佳分裂点时(对特征值排序)并行。xgboost
    在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个 结构,
    它在减小了重复计算的同时,可以多线程计算特征增益。

未完待续

Reference

参考1,medium
参考2,知乎

从boosting谈起的更多相关文章

  1. 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看

    从决策树学习谈到贝叶斯分类算法.EM.HMM     引言 最近在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...

  2. 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  3. 从决策树学习谈到贝叶斯分类算法、EM、HMM

    从决策树学习谈到贝叶斯分类算法.EM.HMM                (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...

  4. 模型组合(Model Combining)之Boosting与Gradient Boosting

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  5. 集成学习算法汇总----Boosting和Bagging(推荐AAA)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  6. 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)

    http://www.cnblogs.com/maybe2030/p/4585705.html 阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 ...

  7. GBDT(Gradient Boosting Decision Tree) 没有实现仅仅有原理

                阿弥陀佛.好久没写文章,实在是受不了了.特来填坑,近期实习了(ting)解(shuo)到(le)非常多工业界经常使用的算法.诸如GBDT,CRF,topic model的一些算 ...

  8. [转]Boosting

    1 Boosting算法的起源 Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.Boosting是一种提高任意给定 ...

  9. boosting、adaboost

    1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...

随机推荐

  1. Oracle Awr报告_awr报告解读_基础简要信息

    导出 关于awr报告的导出,上一篇博客已经进行过讲述了.博客链接地址:https://www.cnblogs.com/liyasong/p/oracle_report1.html  这里就不再赘述. ...

  2. Python之Pandas库学习(三):数据处理

    1. 合并 可以将其理解为SQL中的JOIN操作,使用一个或多个键把多行数据结合在一起. 1.1. 简单合并 参数on表示合并依据的列,参数how表示用什么方式操作(默认是内连接). >> ...

  3. Codeforces 755E:PolandBall and White-Red graph(构造+思维)

    http://codeforces.com/contest/755/problem/E 题意:给出n个点和一个距离d,让你在这个n个点的图里面构造一个子图,使得这个子图的直径和补图的直径的较小值为d, ...

  4. 简书全站爬取 mysql异步保存

    # 简书网 # 数据保存在mysql中; 将selenium+chromedriver集成到scrapy; 整个网站数据爬取 # 抓取ajax数据 #爬虫文件 # -*- coding: utf-8 ...

  5. Linux 操作系统及其组成,shell命令

    Linux 操作系统及其组成 操作系统的作用 操作系统(OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制 ...

  6. C#中的委托和事件(下篇)

    上次以鸿门宴的例子写了一篇博文,旨在帮助C#初学者迈过委托和事件这道坎,能够用最快的速度掌握如何使用它们.如果觉得意犹未尽,或者仍然不知如何在实际应用中使用它们,那么,这篇窗体篇,将在Winform场 ...

  7. shell脚本常见错误一二三

    1.$'\r': 未找到命令的解决 2.: 不是有效的标识符h: 3.cd "$path"/webapps/ROOT 不能正常进入ROOT文件夹,$path并未与后面的字符结合起来 ...

  8. 三个标签完成springboot定时任务配置

    1. 问题描述 Java项目定时任务是必备模块,月高风黑夜跑个批处理,记录或者统计一些系统信息. 2. 解决方案: 结合springboot,只需三个标签就能完成定时任务配置. 2.1 标签1 用在s ...

  9. UVA101 The Blocks Problem 题解

    题目链接:https://www.luogu.org/problemnew/show/UVA101 这题码量稍有点大... 分析: 这道题模拟即可.因为考虑到所有的操作vector可最快捷的实现,所以 ...

  10. MTSC2019第五届移动互联网测试开发大会PPT下载

    关注公众号「软件测试大本营」后台回复「MTSC」或「测试开发大会」即可获取云盘下载地址及提取码. 注:PPT文件版权归相关撰写人所有,仅供学习交流,请勿用于任何商业用途,谢谢 前不久在北京举办了第五届 ...