前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法岗机器学习相关问题整理(树类模型部分)

算法岗机器学习相关问题整理(树类模型部分)

作者头像
曲奇
发布2021-12-15 08:21:49
3070
发布2021-12-15 08:21:49
举报
文章被收录于专栏:曲奇的博客曲奇的博客

决策树相比其他算法有什么优势?

阿里暑期算法来自 https://www.nowcoder.com/discuss/373146?type=2&order=3&pos=7&page=1

  • 决策树易于理解;
  • 不需要想normalization标准化操作;
  • 能同时处理类别型和连续型

手推GBDT

https://www.nowcoder.com/discuss/245257?type=2&order=3&pos=30&page=1 19wxg推荐算法手推xgboost扩展来

函数I表示当x属于这个子叶的时候取1,否则取0

参考:

https://zhuanlan.zhihu.com/p/32181306 代码

https://blog.csdn.net/weixin_43258017/article/details/96456607 手推GBDT

https://blog.csdn.net/Dark_Scope/article/details/24863289 算法

手推xgboost

https://www.nowcoder.com/discuss/245257?type=2&order=3&pos=30&page=1 19wxg推荐算法

gbdt 的基本原理

From https://blog.csdn.net/gxq1221/article/details/81113346 腾讯18年数据挖掘

GBDT计算损失函数(MSE)的负梯度在当前模型的值,将它作为残差的估计。每次训练的时候都是拟合上一棵树的残差,也就是梯度。把所有树训练的结果加起来就会得到一个整体梯度的下降,使得整个系统的误差最小。

参考:李航《统计学习方法

Xgboost,随机森林,GBDT的区别

From https://blog.csdn.net/gxq1221/article/details/81113346 腾讯18年数据挖掘

1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成

2、组成随机森林的树可以并行生成;而GBDT只能是串行生成

3、对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来

4、随机森林对异常值不敏感(随机采样),GBDT对异常值非常敏感(损失函数MSE会把偏差求放大了)

5、随机森林是通过减少模型方差提高性能(提高泛化性能),GBDT是通过减少模型偏差提高性能

6、随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成

xgboost实际上是gbdt工程化的实现

  1. 改进了遍历所有特征速度慢的缺点,根据百分位列举几个分割点作为候选;
  2. 考虑了缺失值的问题,就是把缺失值分别放到左叶子节点和右叶子节点中,计算增益
  3. 处理每个特征列的时候可以并行,在保存的时候使用了block的形式去存储特征,提高速度 适用场景:分类回归问题都可以
  4. 在gbdt的基础上加入正则项,减少过拟合。
  5. gbdt只是使用了一阶导数信息,而xgboost使用了二阶导数信息。

参考:

https://blog.csdn.net/u012155582/article/details/79866245 比较GBDT RF和xgboost

https://zhuanlan.zhihu.com/p/29765582 为什么GBDT对异常值敏感

xgboost的基本原理

From https://blog.nowcoder.net/n/d64b14ca34434c778acd99afb7459361 腾讯数据分析一面

(1)XGBoost是在GBDT的基础上实现的(boosting能比普通的单个学习器有更强的泛化能力,一个学习器的化越分越深实际上大部分过拟合了)

(2)在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模型的复杂度。考虑了叶子结点的个数还有叶子取值。

(3)GBDT在模型训练时只使用来loss function的一阶导数信息,XGBoost对loss function进行二阶泰勒展开。(二阶信息本身就能让梯度收敛更快更准确。因为一阶看成是梯度的方向的话,二阶是梯度方向如何变化。)

(4)传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器

(5)传统的GBDT在每轮迭代时使用全部数据集,XGBoost采用与随机森林相似的策略,支持对数据进行采样。(提高泛化能力)

(6)传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。(就是把缺失值分别放到左叶子节点和右叶子节点中,计算增益)

参考:

  1. https://www.zhihu.com/question/58230411 xgboost如何处理缺失值。
  2. https://zhuanlan.zhihu.com/p/29765582 https://juejin.im/post/5a13c9a8f265da43333e0648 这两篇文章配合使用,解释了一些xgboost的算法原理,包括正则项。第一篇文章解释了GBDT,为什么拟合梯度,因为梯度就等于残差。拟合梯度也就是拟合残差。
  3. https://juejin.im/post/5a1624d9f265da43310d79d5 介绍为什么要用boosting
  4. https://juejin.im/post/5a16b2276fb9a044fe4608c8 介绍了CART(Classification and Regression Tree) 与C4.5和原始的决策树的差别主要在于使用基尼指数去衡量分类问题,使用MSE均方误差去衡量回归问题。
  5. https://www.zhihu.com/question/277638585 介绍了为什么xgboost使用二阶展开
  6. https://www.cnblogs.com/infaraway/p/7890558.html 介绍了gbdt和xgboost和lightGBM的差别
  7. https://blog.csdn.net/Neekity/article/details/88235307 简要介绍xgboost应对面试的
  8. https://zhuanlan.zhihu.com/p/38484624 随机森林,为什么采样
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 决策树相比其他算法有什么优势?
  • 手推GBDT
  • 手推xgboost
  • gbdt 的基本原理
  • Xgboost,随机森林,GBDT的区别
  • xgboost的基本原理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档