从boosting谈起
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
从boosting谈起的更多相关文章
- 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看
从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...
- 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...
- 模型组合(Model Combining)之Boosting与Gradient Boosting
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- 集成学习算法汇总----Boosting和Bagging(推荐AAA)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)
http://www.cnblogs.com/maybe2030/p/4585705.html 阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 ...
- GBDT(Gradient Boosting Decision Tree) 没有实现仅仅有原理
阿弥陀佛.好久没写文章,实在是受不了了.特来填坑,近期实习了(ting)解(shuo)到(le)非常多工业界经常使用的算法.诸如GBDT,CRF,topic model的一些算 ...
- [转]Boosting
1 Boosting算法的起源 Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.Boosting是一种提高任意给定 ...
- boosting、adaboost
1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...
随机推荐
- linux 多主机间快速跳转脚本
#!/usr/bin/env python #coding=utf8 ''' 用于多机器间相互跳转,如有新机器加入,需要更新ip_list文件 ''' from prettytable import ...
- APM系统SkyWalking介绍
公司最近在构建服务化平台,需要上线APM系统,本篇文章简单的介绍SkyWalking APM APM全称Application Performance Management应用性能管理,目的是通过各种 ...
- SpringBoot 2.0.3 源码解析
前言 用SpringBoot也有很长一段时间了,一直是底层使用者,没有研究过其到底是怎么运行的,借此机会今天试着将源码读一下,在此记录...我这里使用的SpringBoot 版本是 2.0.3.RE ...
- RestTemplate真实案例
1. 场景描述 现在越来越的系统之间的交互采用http+json的交互方式,以前用的比较多的HttpClient,后来用的RestTemplate,感觉RestTemplate要比httpClent简 ...
- CDQZ集训DAY1 日记
爆炸的一天…… 上午考试,然而一道题都没想出正解. T1刚看到题就想到数位DP,然后有感觉是反演,然后读完题之后又觉得是数位DP,发现最后只关注最后9位打了一个类似数位DP的爆搜.期望20分,实际10 ...
- CSDN怎么一键转载别人的博客
在参考"如何快速转载CSDN中的博客"后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考 ...
- 洛谷 P1635 跳跃
题目: 题目背景 NOIP即将迎来周年华诞.在这一个春秋的历程里,NOIP领导全国oier,建设高效.稳定.快捷.开放的社会主义现代化OI.在新的一年里,YZOJ将再接再厉,积极探寻成长之路,更好地为 ...
- VUE过滤器的使用 vue 时间格式化
过滤器介绍 官方教程地址:https://cn.vuejs.org/v2/guide/filters.html 过滤器常被用于一些文本格式化 我们可以自定义过滤器,可以实现各种各样的功能. vue时间 ...
- C/C++中指向结构体变量的指针,调用指向的那个结构体中的成员
设p是指向结构体变量的指针,则可以通过以下的方式,调用指向的那个结构体中的成员: (1)结构体变量.成员名.如,stu.num. (2)(*p).成员名.如,(*p).num. (3)p->成员 ...
- DedeCMS自定义表单制作和调用办法
[摘要]在很多建站需求中,需要一些额外的表单供前台用户提交,以便于收集.统计.分析及处理更多的数据,利用DedeCMS自带提供的自定义表单功能即可满足大多数的此类需求,本文就讲一下如何使用DedeCM ...