前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集成学习经典算法之XGBoost

集成学习经典算法之XGBoost

作者头像
用户7569543
发布2020-07-17 14:12:11
7150
发布2020-07-17 14:12:11
举报

在算法圈,相信大家对XGBoost的大名早有耳闻,在CTR广告点击预估中更是炙手可热的大神器,接下来我就给大家简单介绍下,XGBoost到底是何方神圣?

1. 关于XGBoost 

在正式介绍XGBoost之前,首先说下GBDT,它是一种基于boosting增强策略的加法模型,训练的时候采用前向贪心算法进行学习,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值之间的残差。XGBoost是在GBDT基础上进行了一系列优化,比如损失函数采用了二阶泰勒展式、目标函数加入正则项、支持并行和缺失值自动处理等,但二者在核心思想上没有大的变化。

2. XGBoost与GBDT的区别

相同点:生成树的核心思想及方法相同。

不同点:

基分类器:XGBoost的基分类器不仅支持CART决策树,还支持线性分类器,可以解决分类和回归问题。

损失函数:XGBoost对损失函数采用了二阶泰勒展式,GBDT只用了一阶导数信息,并且XGBoost还支持自定义损失函数,但要求损失函数一阶、二阶可导。

正则化:XGBoost的目标函数加了正则项, 相当于预剪枝,这样学习出来的模型更加不容易过拟合。

随机选特征:与随机森林类似,XGBoost支持特征随机选取,防止过拟合。

缺失值处理:对于每棵树中的每个非叶子结点,XGBoost可以自动学习出它的默认分裂方向。如果某个样本该特征值缺失,则会将其划入默认分支。

并行处理:虽然在生成新树的过程中是串行关系,但在特征维度可以并行处理。即在进行特征分裂时可通过多线程并行处理,极大提升训练速度。

3. XGBoost与随机森林的区别

相同点:都是由多棵树组成,最终的结果都是由多棵树一起决定。

不同点:

集成方法:随机森林属于bagging方法,而XGBoost属于boosting方法;

偏差-方差权衡:随机森林通过不断随机取样本和特征来降低模型的方差,而XGBoost通过不断生成新树来拟合残差降低模型整体的偏差;

训练样本:随机森林每次迭代的样本是从全部训练集中有放回抽样得到的,而XGBoost则每次使用全部样本进行训练;

并行性:随机森林每棵树之间可以并行生成,而XGBoost只能按顺序生成;

最终结果:随机森林最终结果是多棵树进行投票表决(回归问题是取平均),而XGBoost是通过加权融合;

数据敏感性:随机森林对异常值不敏感,而XGBoost对异常值比较敏感;

泛化能力:随机森林不易过拟合,而XGBoost容易过拟合。

好了,以上就是XGBoost的简单介绍,相信大家对XGBoost已经有了一个基本的了解。最后我们还是通过slearn中自带的癌症预测数据集来看看XGBoost的威力到底如何~

可以看到,AUC为0.98!!所以说XGBoost的牛皮不是吹的吧,哈哈?下节课给大家讲解模型训练中常遇到的两个问题——过拟合与欠拟合,敬请期待!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 多赞云数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档