XGBoost的基本原理

本文详细介绍了XGBoost的基本原理,包括学习目标、节点划分的精确和近似算法,以及带权重的分位数草图。此外,文章还探讨了XGBoost相对于GBDT和LightGBM的优缺点,如支持自定义损失函数、正则化项、处理缺失值的能力、并行计算优化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:本文是阅读XGBoost有关的论文和一些博客后的入门笔记。有什么不足之处还望大家多多赐教,欢迎交流,转载。

一. 前言

  • XGBoost是提升方法中的一个可扩展的机器学习系统。XGBoost在许多机器学习和数据挖掘问题中产生了广泛的影响。2015年发表在Kaggle竞赛的博客的29个冠军解决方案中,有17个是使用XGBoost解决的,其中有8个是仅使用了XGBoost方法去训练模型,剩余的是用XGBoost和其他模型相结合使用的。相比较而言,第二个受欢迎的方法是深度神经网络,有11个是使用该方法的。
  • XGBoost成功的最重要因素就是它在任何场景下的可扩展性。XGBoost系统在单台机器上的运行速度比现有流行的解决方案快10倍以上,并可在分布式或内存限制设置中扩展到数十亿个示例。XGBoost的可扩展性是由于在它的系统实现中的一些创新,包括:
    1. 为处理稀疏数据使用了一个新颖的树学习算法;
    2. 理论上合理的加权分位数草图过程,使得能够在近似树学习中处理实例权重;
    3. 平行和分布式计算使得学习更快,从而能够更快的进行模型探索;
    4. 最重要的是XGBoost使用核外计算并且能够让数据科学家在台式机上处理数以亿计的示例;
    5. 更令人兴奋的是结合这些技术使端到端系统以最少的集群资源扩展到更大的数据。
    下面开始介绍XGBoost的模型训练原理
  • 二. XGBoost原理

    1. 学习目标

    在讨论学习目标之前,先说一说XGBoost是如何预测输出值的。XGBoost是一个树集成模型,它使用的是K(树的总数为K)个树的每棵树对样本的预测值的和作为该样本在XGBoost系统中的预测,定义函数如下:
    这里写图片描述
    对于所给的数据集有n个样本,m个特征,定义为:
    这里写图片描述
    其中Xi表示第i个样本,yi表示第i个样本的类别标签。CART树的空间为F,如下:
    这里写图片描述
    其中q表示每棵树的结构映射每个样本到相应的叶节点的分数,即q表示树的模型,输入一个样本,根据模型将样本映射到叶节点输出预测的分数;Wq(x)表示树q的所有叶节点的分数组成集合;T是树q的叶节点数量。
    所以,由(1)式可以看出,XGBoost的预测值为每棵树的预测值之和,即每棵树相应的叶节点的得分之和(Wi的和,Wi表示第i个叶节点的得分)。
    我们的目标就是学习这样的K个树模型f(x).。为了学习模型f(x),我们定义下面的目标函数:
    这里写图片描述
    这里写图片描述
    其中,(2)式右边第一项为损失函数项,即训练误差,是一个可微的凸函数(比如用于回归的均方误差和

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值