专栏首页用户画像XGBoost算法原理小结

XGBoost算法原理小结

在两年半之前作过梯度提升树(G

本文主要参考了XGBoost的论文和陈天奇的PPT

1. 从GBDT到XGBoost

作为GBDT的高效实现,XGBoost是一个上限特别高的算法,因此在算法竞赛中比较受欢迎。简单来说,对比原算法GBDT,XGBoost主要从下面三个方面做了优化:

一是算法本身的优化:在算法的弱学习器模型选择上,对比GBDT只支持决策树,还可以直接很多其他的弱学习器。在算法的损失函数上,除了本身的损失,还加上了正则化部分。在算法的优化方式上,GBDT的损失函数只对误差部分做负梯度(一阶泰勒)展开,而XGBoost损失函数对误差部分做二阶泰勒展开,更加准确。算法本身的优化是我们后面讨论的重点。

二是算法运行效率的优化:对每个弱学习器,比如决策树建立的过程做并行选择,找到合适的子树分裂特征和特征值。在并行选择之前,先对所有的特征的值进行排序分组,方便前面说的并行选择。对分组的特征,选择合适的分组大小,使用CPU缓存进行读取加速。将各个分组保存到多个硬盘以提高IO速度。

三是算法健壮性的优化:对于缺失值的特征,通过枚举所有缺失值在当前节点是进入左子树还是右子树来决定缺失值的处理方式。算法本身加入了L1和L2正则化项,可以防止过拟合,泛化能力更强。

在上面三方面的优化中,第一部分算法本身的优化是重点也是难点。现在我们就来看

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2.2 处理机调度

    若没有处理机调度,就意味着要等到当前运行的进程执行完毕后,下一个进程才能执行,而实际情况中,进程时常需要等待一些外部设备的输入,而外部设备的输入与处理机相比是非...

    week
  • 3.2.3页面置换算法

    进程运行时,若其访问的页面不在内存而徐将其调入,但内存已无空闲时间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区。 而选择调入页面的算法就称为页面置...

    week
  • 7.5.2 基数排序

    基数排序是一种很特别的排序方法,它不是基于比较进行排序的,而是采用多关键字排序思想,借助“分配”和“收集”两种操作对单逻辑关键字进行排序。基数排序又分为最高位优...

    week
  • GBDT算法(详细版)

    一、前言 通过之前的文章GBDT算法(简明版)对GBDT的过程做了大概的讲解,我们可以了解到GBDT是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起...

    智能算法
  • 职位情报局 | 1.65亿天使轮融资背后,林元庆需要怎样的AI人才?

    大数据文摘
  • 业界 | 从集成方法到神经网络:自动驾驶技术中的机器学习算法有哪些?

    选自kdnuggets 作者:Savaram Ravindra等 参与:Lj Linjing、蒋思源 机器学习算法可以融合来自车体内外不同传感器的数据,从而评估...

    机器之心
  • 自动驾驶技术中的机器学习算法有哪些?

    如今,机器学习算法正大规模地用于解决自动驾驶汽车产业日益增多的问题。结合 ECU (电子控制单元)传感器数据,我们须加强对机器学习方法的利用以迎接新的挑战。潜在...

    机器人网
  • 无人驾驶机器学习算法大全(决策矩阵、聚类、回归……)

    来源:机器人圈 作者:多啦A亮 本文长度为4600字,建议阅读6分钟 本文全面概述了无人驾驶现阶段使用的机器学习技术。 [导读]无人驾驶被认为是未来人工智能技术...

    数据派THU
  • KDnuggets调查|数据科学家最常用的10种算法

    大数据文摘
  • 聊聊算法在面试中的地位

    前段时间,有一位好友找到我,向我打听阿里社招笔试是否看重算法题的考察,我给予了肯定的答复。他表现的有些沮丧,表示自己工程底子很扎实,框架源码也研究地很透彻,唯独...

    kirito-moe

扫码关注云+社区

领取腾讯云代金券