XGBoost系列文章(二):数学原理与推导


XGBoost系列文章(二):数学原理与推导

本文是XGBoost系列的第二篇,将深入解析其数学原理,用通俗语言+公式推导解释核心设计。内容涵盖目标函数、泰勒展开、正则化、节点分裂等关键环节,适合希望理解算法本质的读者。


1. XGBoost的目标函数由哪两部分组成?各自作用是什么?

XGBoost的目标函数是模型优化的核心,其形式为:
Obj = ∑ i = 1 n L ( y i , y ^ i ) + ∑ k = 1 K Ω ( f k ) \text{Obj} = \sum_{i=1}^n L(y_i, \hat{y}_i) + \sum_{k=1}^K \Omega(f_k) Obj=i=1nL(yi,y^i)+k=1KΩ(fk)

  • 第一部分:损失函数(Loss Function)
    ∑ i = 1 n L ( y i , y ^ i ) \sum_{i=1}^n L(y_i, \hat{y}_i) i=1nL(yi,y^i)
    衡量预测值 y ^ i \hat{y}_i y^i 与真实值 y i y_i yi 的误差。例如:

    • 回归任务:均方误差(MSE) L = ( y i − y ^ i ) 2 L = (y_i - \hat{y}_i)^2 L=(yiy^i)2
    • 分类任务:对数损失(Logloss) L = − y i log ⁡ p i − ( 1 − y i ) log ⁡ ( 1 − p i ) L = -y_i \log p_i - (1-y_i)\log(1-p_i) L=yilogpi(1yi)log(1pi)
  • 第二部分:正则化项(Regularization Term)
    ∑ k = 1 K Ω ( f k ) \sum_{k=1}^K \Omega(f_k) k=1KΩ(fk)
    控制模型复杂度,防止过拟合。XGBoost的正则化项定义为:
    Ω ( f k ) = γ T + 1 2 λ ∑ j = 1 T w j 2 + α ∑ j = 1 T ∣ w j ∣ \Omega(f_k) = \gamma T + \frac{1}{2}\lambda \sum_{j=1}^T w_j^2 + \alpha \sum_{j=1}^T |w_j| Ω(fk)=γT+21λj=1Twj2+αj=1Twj

    • T T T: 树的叶子节点数
    • w j w_j wj: 第 j j j个叶子节点的权重
    • γ \gamma γ, λ \lambda λ, α \alpha α: 超参数,惩罚复杂树结构

一句话总结:目标函数 = 让预测尽量准(损失函数) + 让模型尽量简单(正则化)。


2. 如何推导XGBoost的损失函数在泰勒二阶展开后的形式?

XGBoost采用泰勒二阶展开近似损失函数,具体推导如下:
假设在第 t t t次迭代时,模型预测值为 y ^ i ( t ) = y ^ i ( t − 1 ) + f t ( x i ) \hat{y}_i^{(t)} = \hat{y}_i^{(t-1)} + f_t(x_i) y^i(t)=y^i(t1)+ft(xi),则损失函数展开为:
L ( y i , y ^ i ( t ) ) ≈ L ( y i , y ^ i ( t − 1 ) ) + g i f t ( x i ) + 1 2 h i f t 2 ( x i ) 其中: g i = ∂ L ( y i , y ^ i ( t − 1 ) ) ∂ y ^ i ( t − 1 ) ( 一阶导数 ) h i = ∂ 2 L ( y i , y ^ i ( t − 1 ) ) ∂ ( y ^ i ( t − 1 ) ) 2 ( 二阶导数 ) \begin{aligned} L(y_i, \hat{y}_i^{(t)}) &\approx L(y_i, \hat{y}_i^{(t-1)}) + g_i f_t(x_i) + \frac{1}{2} h_i f_t^2(x_i) \\ \text{其中:} \quad g_i &= \frac{\partial L(y_i, \hat{y}_i^{(t-1)})}{\partial \hat{y}_i^{(t-1)}} \quad (\text{一阶导数}) \\ h_i &= \frac{\partial^2 L(y_i, \hat{y}_i^{(t-1)})}{\partial (\hat{y}_i^{(t-1)})^2} \quad (\text{二阶导数}) \end{aligned} L(yi,y^i(t))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫比乌斯@卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值