GBDT

提升树利用加法模型与前向分布算法实现学习的优化过程。当损失函数是平方损失和指数损失函数时,每一步优化是很简单的。但是对一般损失函数而言,往往每一步优化并不是那么容易。针对这一问题,Freidman提出了梯度提升算法。这是利用最速下降法的近似方法,其关键是利用损失函数在当前模型的值:



算法第1步初始化,估计使损失函数极小化的常数值,它是只有一个根节点的树,第2(a)步计算损失函数的负梯度在当前模型的值,将它作为残差的估计,对于平方损失函数,它就是通常所说的残差;对于一般损失函数,它就是残差的近似值,第2(b)步估计回归树叶节点区域,以拟合残差的近似值。第2©步利用线性搜索估计叶节点区域的值,使损失函数极小化。第2(d)步更新回归树,第3步得到输出的最终模型。

XGBoost


GBDT和XGBoost的不同点

  • GBDT是机器学习算法,XGBoost是该算法的工程实现。
  • 在使用CART作为基分类器的时候,XGBoost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
  • GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
  • 传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。
  • 传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样。
  • 传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。

XGBoost和GBDT的区别与联系相关推荐

  1. adaboost和GBDT的区别以及xgboost和GBDT的区别

    adaboost和GBDT的区别以及xgboost和GBDT的区别 AdaBoost:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值.这样一来,那些没有得到正确分类的数据, ...

  2. xgboost与gbdt的区别

    目标函数的区别:如图所示(来自于xgboost论文): 从这里来看传统的gbdt是xgboost中的一种特例, 正则化参数为0: 正则化中的T代表叶子的数量,w代表叶子中的结果,即预测值(得分值) , ...

  3. 随机森林RF、XGBoost、GBDT和LightGBM的原理和区别

    随机森林RF.XGBoost.GBDT和LightGBM的原理和区别 https://www.cnblogs.com/hugechuanqi/p/10554156.html

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

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

  5. XGBoost与GBDT比较

    XGBoost与GBDT有什么不同 除了算法上与传统的GBDT有一些不同外,XGBoost还在工程实现上做了大量的优化.总的来说,两者之间的区别和联系可以总结成以下几个方面. GBDT是机器学习算法, ...

  6. xgboost 和 gbdt的对比

    xgboost 是gbdt的具体实现方案之一 1.gbdt的损失函数: 1.1 回归损失函数: 均方损失函数.绝对值损失函数.huber损失函数(是均方损失函数 和 绝对值损失函数的折中).分位数损失 ...

  7. XGboost和GBDT区别及解读XGboost参数

    GBDT和XGBoost区别 传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器,这个时候XGBoost相当于L1和L2正则化的逻辑斯蒂回归(分类)或者线性回归(回归): 传统的G ...

  8. XGBoost VS GBDT

    文章目录 算法介绍 算法差异 算法介绍 XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进,被广泛应用在Kaggle竞赛及其他许多机器学习竞赛 ...

  9. XGBoost和GBDT

    建树的时候最关键的一步就是选择一个分裂的准则,也就如何评价分裂的质量.比如在前面文章GBDT的介绍里,我们可以选择MSE,MAE来评价我们的分裂的质量,但是,我们所选择的分裂准则似乎不总是和我们的损失 ...

  10. gbdt 回归 特征重要性 排序_RandomForest、GBDT、XGBoost、lightGBM 原理与区别

    RF,GBDT,XGBoost,lightGBM都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善基本学习器的泛化能力和鲁棒性. 根据基本学习器 ...

最新文章

  1. 简述python的特性_python的一些语言特性(一)
  2. 读写分离的适用场景(转载)
  3. 自从阿里买了Flink母公司以后,你不懂Flink就out了!
  4. Linux卸载/删除多余网卡
  5. 2019年容器突然火了,到底什么是容器?!
  6. Ubuntu 星际译王StarDict
  7. malloc_free_new_delete
  8. 爱了爱了!0.052 秒打开 100GB 数据,这个开源库火爆了!
  9. python批量读取Excel文件
  10. Web性能测试工具:http_load安装使用简介
  11. Snake算法与遥感影像应用,python matlab对比
  12. 4针串口线接法图_RS232串口线接口及接法(串口通信RS232的基本接法)
  13. canvas自定义多边形
  14. 【初赛】初赛提纲¿ 错题集
  15. 判断玩家是否开全图挂
  16. 大数据剖析 | 薪资没那么高,延毕率超60%,现代人读博都图什么?
  17. wxpython多个面板_wxpython笔记:Wxpython pannel切换
  18. 公众号配图在哪里找?快来看看这里
  19. 如何将图片转换、合并为PDF文件?
  20. 大众点评CAT开源监控系统剖析

热门文章

  1. html:form、 html:text、html:password、html:submit 标签
  2. 将集合类转换成DataTable
  3. MEncoder的基础用法—6.7. 媒体流复制
  4. Golang1.6 官方支持embed 替换掉statilk
  5. ssh-key生成密钥及SSH无密码登录的配置(转载)
  6. CentOS安装MySQL及其使用(总结整理)
  7. 倒置链表(递归方式)
  8. JavaWeb知识点
  9. linux中lsattr命令,Linux命令(16)——chattr与lsattr命令
  10. springmvc请求参数绑定