gbdtxgboost的区别与联系

飞鸟各投林 飞鸟各投林     2022-08-27     752

关键词:

Xgboost是GB算法的高效实现,xgboost中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear)。 

传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。

传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。

xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和

列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

xgboost工具支持并行

Shrinkage(缩减),相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  首先xgboost是Gradient Boosting的一种高效系统实现,并不是一种单一算法。
  xgboost里面的基学习器除了用tree(gbtree),也可用线性分类器(gblinear)。而GBDT则特指梯度提升决策树算法。
  xgboost相对于普通gbm的实现,可能具有以下的一些优势:
  1. 显式地将树模型的复杂度作为正则项加在优化目标
  2. 公式推导里用到了二阶导数信息,而普通的GBDT只用到一阶
  3. 允许使用column(feature) sampling来防止过拟合,借鉴了Random Forest的思想,sklearn里的gbm好像也有类似实现。

  4.实现了一种分裂节点寻找的近似算法,用于加速和减小内存消耗。
  5.节点分裂算法能自动利用特征的稀疏性。
  6.data事先排好序并以block的形式存储,利于并行计算
  7.cache-aware, out-of-core computation,这个我不太懂。。
  8.支持分布式计算可以运行在MPI,YARN上,得益于底层支持容错的分布式通信框架rabit。

 

工作中用得比较多,区别在于:
1. 在Loss function中做approximate,把泰勒展开限制为1阶和2阶偏导,gbdt是1阶;
2. penalty function Omega主要是对树的叶子数和叶子分数做惩罚,这点确保了树的简单性;
3. 快,非常快,最新版本支持spark,4000多万样本,70个dimension,200棵树的训练也就1小时不到;


 

javascript和htmldom的区别与联系

JavaScript和HTMLDOM的区别与联系区别:javascriptJavaScript是因特网上最流行的浏览器脚本语言。很容易使用!你一定会喜欢它的!JavaScript被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。HTMLDOMHT... 查看详情

bpm与oa的区别及联系

BPM与OA的区别及联系近年来,在企业管理信息系统一些名词反复被提及,然而外行人对于这些名词则是一头雾水,网上的解释又鱼龙混杂,没有绝对权威的文献可供参考,因此也就让我们对这些名词的认识越来越模糊。OA、SaaS、B... 查看详情

clipstobounds与maskstobounds的区别与联系

clipsToBounds是指视图上的子视图,如果超出父视图的部分就截取掉,masksToBounds却是指视图的图层上的子图层,如果超出父图层的部分就截取掉在调用 clipsToBounds方法时,就会调用其layer的 masksToBounds方法:1-(BOOL)[UIView(Rendering)clip... 查看详情

filter与servlet的区别与联系

Filter与Servlet的区别与联系转自http://blog.csdn.net/gaibian0823/article/details/51027495 在我们写代码时,在web.xml中总能发现类似下面的代码:<spanstyle="font-family:KaiTi_GB2312;font-size:18px;"><spanstyle="font-family 查看详情

机器学习之svm与逻辑回归的联系和区别

...逻辑回归之间的关系,硬间隔的SVM应该是与感知机模型的区别和联系。而且工程中也不能要求所有的点都正确分类,训练数据中噪声的存在使得完全正确分类很可能造成过拟合。  软间隔SVM与逻辑回归的联系  要说软间隔SVM... 查看详情

arcobjects与arcengine的联系与区别

ArcObjects与ArcEngine的联系与区别AO一般指的是桌面产品开发组件,需要在桌面环境中才能够使用,最典型的就是嵌入式VBA开发。但是这样带来的弊端和OFFICE等相关软件一样明显,就是软件成本高,需要用户购买整套桌面版的产品才... 查看详情

sparksql与hiveonspark的区别与联系

简要介绍了SparkSQL与HiveonSpark的区别与联系一、关于Spark简介在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题。架构Spark的架构如下图所示,主要包含四大组件:Driver、Master... 查看详情

转载说说进程与线程的区别与联系

要了解二者的区别与联系,首先得对进程与线程有一个宏观上的了解。  进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的... 查看详情

java中nio与io的区别与联系

一区别于联系avaNIO和IO之间的主要差别:IO                     NIO 面向流               面向缓冲 阻塞IO              非阻塞IO 无                   选择器1.面向流与面向缓冲JavaNIO和IO之间第... 查看详情

进程跟线程区别与联系

进程跟线程区别与联系  进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程:线程是一个实体,是cpu进行调度和分派的基本单位,是比进程跟... 查看详情

抽象类和接口的联系与区别

抽象类和接口联系与区别关键字:抽象类与接口的区别abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定... 查看详情

jsessionid和cookie的区别与联系

...造一个名为JSESSIONID的输出Cookie,或称为"SessionCookie",以区别PersistentCookies(通常所说的Cookie).SessionCookie是存储在浏览器 查看详情

中台vs平台区别与联系

...业通用能力的抽取与沉淀这是毋庸置疑的,那两者之间的区别又是什么呐?为何在平台之上又提出中台概念呐?笔者最近在拜读欧创新大神大作《中台架构与实现---基于DDD和微服务》偶有感悟暂且大胆一说如有谬误及误人子弟之... 查看详情

cygwinmsysmingwmsys2的区别与联系(转)

...37175/answer/90908473来源:知乎网上有很多文章讲它们之间的区别与联系,初学者看的一头雾水,在知乎上看到这篇文章讲的很清楚,容易理解。在讲区别联系之前,我们先看一下这几个东东的前世今生。Cygwin,原Cygnus出品(已被红... 查看详情

深入了解dsp与arm的区别与联系

深入了解DSP与ARM的区别与联系  2011-09-3012:49:43|  分类: 嵌入式の半入其室 |  标签:体系结构  |举报|字号 订阅        下载LOFTER我的照片书 &nbs 查看详情

rdddfds的区别与联系

RDD.DataFrame.DataSet的区别和联系共性:1)都是spark中得弹性分布式数据集,轻量级2)都是惰性机制,延迟计算3)根据内存情况,自动缓存,加快计算速度4)都有partition分区概念5)众多相同得算子:mapflatmap等等区别:1)RDD不支持SQ... 查看详情

softmax回归(与logistic回归的联系与区别)

SoftMax回归(与Logistic回归的联系与区别)SoftMax试图解决的问题SoftMax回归模型是Logistic回归模型在多分类问题上的推广,即在多分类问题中,类标签y可以取两个以上的值对于Logistic回归的假设函数(h_ heta(x)=frac11+exp(-x)),它的输出结果将被... 查看详情

listmapset的区别与联系

List、Map、Set的区别与联系一、结构特点List,Set都是继承自Collection接口,Map则不是;List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序... 查看详情