1、xgboost怎么给特征打分?如何解决缺失值问题?

1)在训练的过程中,通过gini指数选择分离点的特征,一个特征被选中的次数越多,评分越高。2)xgboost对缺失值有默认的处理方法,对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向,可以大大的提升算法的效率。

2、什么是OOB?随机森中OOB如何计算的?(为什么不用交叉验证?)

随机森林采用的bagging方法,其中有放回的采样过程,每次都有一定比例的数据没被选中,也就是说没有参加当前决策树的建立,把这部分数据成为袋外数据,可用来取代测试集做误差估计。所以在随机森林算法中,不需要再进行交叉验证或单独的测试集。

3、学习器结合的好处?

1)统计学角度,由于学习任务的假设空间往往很大,很多假设在训练集上表现的差不多,如果仅仅使用单个学习器,可能会导致泛化性能降低,而通过结合多个学习器,可以减小这一问题。2)计算角度看,单个学习器容易陷入局部最优,通过多次运行之后结合,可降低陷入局部最优的风险。

4、训练过程中,每轮训练一直存在分类错误的问题,整个Adaboost却能快速收敛,为何?

每轮训练结束后,AdaBoost框架会对样本的权重进行调整,该调整的结果是越到后面被错误分类的样本权重会越高。这样到后面,单个弱分类器为了达到较低的带权分类误差都会把样本权重高的样本分类正确。虽然单独来看,单个弱分类器仍会造成分类错误,但这些被错误分类的样本的权重都较低,在AdaBoost框架的最后输出时会被前面正确分类的高权重弱分类器“平衡”掉。这样造成的结果就是,虽然每个弱分类器可能都有分错的样本,然而整个AdaBoost框架却能保证对每个样本进行正确分类,从而实现快速收敛。


面试同样经常被问到,记录一下!

相同点:

(1)GBDT与XGB同属于boosting方法;

(2)XGB可以说是GBDT的高配版。

不同点:

(1).从基分类器来说,GBDT只能使用CART树,而XGB同时支持CART树和线性分类器,这个体现在python里就是

gbtree和dart是基于树的(后者引入了神经网络中的dropout),gblinear是线性分类器。

(2).gbdt在优化时只用到一阶导数,xgb则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数,顺便,xgb支持自定义代价函数,只要函数一阶、二阶可导。

(3) .列抽样(column subsampling),xgb借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。

(4).对于特征的值有缺失的样本,xgb可以自动学习出它的分裂方向。

(5).xgb支持并行(在特征粒度上并行(xgboost在训练之前,预先对数据进行排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量,这个block结构也使得在进行节点分裂时可以并行的需要计算每个特征的增益,最终选择增益最大的那个特征去做分裂)),树的生成还是串行的。

(6).可并行的近似直方图算法。树节点在进行分裂时,需要计算每个特征的每个分裂点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率会变得很低,所以xgb还提出了一种可并行的近似直方图算法,用于高效地生成候选的分割点。(这个具体怎么实现搞不清楚,大致的思想是根据百分位法列举几个可能成为分割点的候选者,然后从候选者中根据上面求分割点的公式计算找出最佳的分割点。)

(7).Shrinkage(缩减),相当于学习速率(xgb中的eta),xgb在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱各棵树的影响,让后面有更大的学习空间。(传统GBDT的实现也有学习速率),如下:

(8).显式地将树模型的复杂度(节点的个数+节点输出的平方)作为正则项加在优化目标。正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是XGBoost优于传统GBDT的一个特性。

GBDT与XGB的异同相关推荐

  1. GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导

    为什么要介绍梯度下降法和牛顿法那? 这里提及两个算法模型GBDT和XGBoost,两个都是boosting模型. GBDT和xgb的目标函数是不同的,同时针对其目标函数中的误差函数 L(θ) 的拟合方 ...

  2. GBDT和XGB算法问题总结

    集成模型知识整理 GBDT相关的问题总结 1GBDT为什么用CART回归树做基学习器? 2GBDT不擅长处理离散特征,你在应用的时候是怎么处理的 3GBDT在回归和多分类当中有什么不同,在预测的时候的 ...

  3. 常见分类模型:决策树、随机森林、GBDT、XGB

    涉及到的指标: 信息熵: 其中是一件事情发生的概率,发生的概率越大信息量越小,对于2个独立事件,发生概率是,二者的信息量是,因为 具有可加性的性质,因此一般用来衡量某件事的信息量,负号是因为信息量与概 ...

  4. RF和GBDT和Xgboost的异同总结,加上lightgbm

    相同点(照顾标题): 都用到了Bootstrap思想,Bootstrap是一种有放回的抽样方法思想 不同点: 基类器: RF用的回归树或者分类树,GBDT和xgboost用的是CART(回归树) 分裂 ...

  5. gbdt、xgb、lgb决策树模型

    目录 1.决策树 1.1 CART分类树 1.2 CART回归树 2.gbdt 3.xgboost 4.lightgbm 5.模型对比 6.参考文献 本文主要对决策树.gbdt.xgboost.lig ...

  6. lgb,xgb,gbdt,adb,RF区别与联系

    AdaBoost原理 原始的AdaBoost算法是在算法开始的时候,为每一个样本赋上一个权重值,初始的时候,大家都是一样重要的.在每一步训练中得到的模型,会使得数据点的估计有对有错,我们就在每一步结束 ...

  7. gbdt,xgb,lgb总结

    最近学习了gradient boost+Decision Tree的原理:xgboost,lightgbm论文原文.有一些收获,gbdt总结的笔记比较多 就没放上来.主要看下xgb,lgb的时间复杂度 ...

  8. 一文搞定 GBDT、Xgboost 和 LightGBM 的面试

    来自 | 知乎   作者 | 丢丢 链接 | https://zhuanlan.zhihu.com/p/148050748 编辑 | AI有道 本文经作者授权发布,禁二次转载 GBDT和XGB基本上是 ...

  9. 机器学习面试——XGBoost,GBDT,RF(上)

    1.常见的集成思想 bagging:基学习器之间并行训练,且学习器之间没有依赖,像是集体决策的过程,每个个体都进行单独学习,再通过投票的方式做最后的集体决策.常见的算法有随机森林 boosting:基 ...

最新文章

  1. C++随时输出到文件-outfile
  2. Codeforces Round #366 (Div. 2)
  3. 解决哈希(HASH)冲突的主要方法
  4. UpdateProgress 控件--用户中断
  5. 黑科技揭秘:眼科大夫如何应用5G+8K完成远程会诊?
  6. 超级猫超级签名分发源码
  7. libmysql.dll是否真的要拷贝到c:\windows目录下呢?
  8. android华为虚拟截屏黑屏,Android截屏表面视图显示黑屏
  9. matplotlib 可视化 —— cmap(colormap)
  10. java 1.6 jre 下载_jre1.6 64位官方下载
  11. Quartz配置RAMJobStore-007
  12. 单应矩阵公式推导及计算
  13. 在MATLAB下安装Matpower模块
  14. 2019,我们被“黑”科技薅过的羊毛?
  15. 概率学A和C公式,Java计算阶乘,不重复三位数
  16. 三点共线,向量计算其中一点坐标
  17. VFP调用命令行图像处理程序,添加水印也在行
  18. 旭日x3派个人配置总结(ubuntu server + xrdp)
  19. 个人博客开源系统XBlog介绍和部署
  20. 这样讲解EMI/EMS/EMC,非专业人士看后都懂了

热门文章

  1. 1: 求长方形的面积和周长
  2. linux下如何挂载usb设备,Linux下挂载USB盘
  3. php查找/过滤一段文字中的违禁词敏感词
  4. CSS盒子模型的border:一设上去是4个,也是上右下左规则
  5. 保姆级硬核教程:图解Transformer
  6. EasyHook Creating a remote file monitor
  7. SAP ME学习笔记(六)搭建生产线
  8. meteor安装过慢 curl install.meteor.com | sh
  9. 再说“产品驱动”和“技术驱动”
  10. mysql 开启远程访问_开启mysql的远程访问权限