首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说说XGBoost和GBDT的不同
[问答题]
说说XGBoost和GBDT的不同
添加笔记
邀请回答
收藏(19)
分享
纠错
3个回答
添加回答
0
推荐
可乐加冰upuppp
GBDT和XGBoost都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。
GDBT 是Gradient Boosting的缩写,和其它 Boosting 算法一样,通过将表现一般的数个模型(通常是深度固定的决策树)组合在一起来集成一个表现较好的模型。可以说 Gradient Boosting = Gradient Descent + Boosting。
XGBoost的简称是XGB,由陈天奇(交大校友)提出的一种集成学习模型,属于boosting方法,可以通过减少偏差的方法,将若干弱学习器组合成强学习器,在各大竞赛中都展现了强大的威力。
两者的主要不同在于:
基分类器的选择:
传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器,这个时候XGBoost相当于L1和L2正则化的逻辑斯蒂回归(分类)或者线性回归(回归);
梯度信息:
传统的GBDT在优化的时候只用到一阶导数信息,XGBoost则对代价函数进行了二阶泰勒展开,得到一阶和二阶导数;另外,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。
正则项:
XGBoost在代价函数中加入了正则项,用于控制模型的复杂度。从权衡方差偏差来看,它降低了模型的方差,使学习出来的模型更加简单,减轻过拟合,这也是XGBoost优于传统GBDT的一个特性;
学习率:
shrinkage(缩减),相当于学习速率(XGBoost中的eta)。XGBoost在进行完一次迭代时,会将叶子节点的权值乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。(GBDT也有学习速率);
列抽样
(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。
并行化:
传统GBDT由于树之间的强依赖关系是无法实现并行处理的,但XGBoost工具支持并行。
除此之外,Xgboost实现了分裂点寻找近似算法、缺失值处理等包括一些工程上的优化,LightGBM是Xgboost的更高效实现。
延伸考点
集成学习有哪两种典型的思路?
提示:boosting 和 bagging。
编辑于 2021-09-15 18:16:05
回复(0)
1
牛客611643080号
第一,GBDT将目标函数泰勒展开到一阶,而xgboost将目标函数泰勒展开到了二阶。保留了更多有关目标函数的信息,对提升效果有帮助。第二,GBDT是给新的基模型寻找新的拟合标签(前面加法模型的负梯度),而xgboost是给新的基模型寻找新的目标函数(目标函数关于新的基模型的二阶泰勒展开)。第三,xgboost加入了和叶子权重的L2正则化项,因而有利于模型获得更低的方差。第四,xgboost增加了自动处理缺失值特征的策略。通过把带缺失值样本分别划分到左子树或者右子树,比较两种方案下目标函数的优劣,从而自动对有缺失值的样本进行划分,无需对缺失特征进行填充预处理。
发表于 2022-09-06 16:38:06
回复(0)
0
牛客341815174号
1.GBDT使用cart基分类器 xgboost支持多种分类器
2.GBDT是机器学习算法 X
gboost工程实现
3.GBDT只用到了一阶导 通过负梯度来拟合 着重于寻找新的标签 XGBoost 泰勒二阶展开 需按照新的目标函数
4.GBDT每次用所有的训练集 xgboost 采用随机森林的策略 部分采样数据
5.xgboost加入了正则项 泛化性好
6.xgboot缺失值处理 自动学习
发表于 2022-09-13 00:33:16
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
上传者:
小小
难度:
3条回答
19收藏
860浏览
热门推荐
相关试题
编程题 ,按照要求创建Java 应...
Java
评论
(1)
3.1996至2003年间,从事高...
资料分析
言语理解与表达
资料分析
评论
(1)
电路板布线的时候尽量采用( )折线布线
PCB
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
图中U和I分别为
电路基础
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
延伸考点