TalentMe
How To
🗺️
AI Industry Map
NEW
Knowledge ▾
Intro & Usage
Machine Learning Repo
Data Science Repo
Resources ▾
Intro & Usage
AI Tech Vault (Tech Wiki)
Industry News
Tech Blogs
Research Papers
Open Source Projects
Tools Hub ▾
🛠️ Tools & Skills Overview
🌐 Interactive Web Tools
🗺️ AI Industry & Career Map
🧭 AI Career Transition Navigator & Roadmap
📚 AI Multi-Module Practice Hub
🎯 AI Skill Assessment
🧠 AI Skills Library
AI Skills & Prompts Overview
Local Agent Guide
Cloud Skills Templates
⚡ MCP Tools Suite
TalentMe MCP Guide
CLI Tools & Commands
Services ▾
🚀 Services & Plans Suite
🧭 1v1 Coaching & Services
💎 Plans & Pricing
💬 Contact & Consultation
Contact Us
💬 Discord
🌐
中
☀️
🔑
Login / Register
☰
技术知识库
›
复习路线图
›
经典机器学习 思维导图
›
XGBoost 二阶手推
← 返回 经典机器学习 思维导图
中文
·
English
📊 经典机器学习
ID:
xgboost-derivation
XGBoost 二阶手推
XGBoost 2nd-Order
🎯
核心定义
XGBoost 是带正则化的二阶梯度提升。目标函数
L
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
)
+
∑
k
=
1
K
Ω
(
f
k
)
\mathcal{L} = \sum_{i=1}^{n} l\left(y_i, \hat{y}_i\right) + \sum_{k=1}^{K} \Omega(f_k)
L
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
)
+
∑
k
=
1
K
Ω
(
f
k
)
, 树正则
Ω
(
f
)
=
γ
T
+
1
2
λ
∥
w
∥
2
\Omega(f) = \gamma T + \frac{1}{2} \lambda \Vert w \Vert^2
Ω
(
f
)
=
γ
T
+
2
1
λ
∥
w
∥
2
(
T
T
T
为叶子数,
w
w
w
为叶子权重向量,
γ
\gamma
γ
是每片叶子的复杂度惩罚,
λ
\lambda
λ
是叶子权重的 L2 收缩)。第
t
t
t
轮增量
f
t
f_t
f
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
(
t
−
1
)
+
f
t
(
x
i
)
, 对损失在
y
^
i
(
t
−
1
)
\hat{y}_i^{(t-1)}
y
^
i
(
t
−
1
)
处做二阶泰勒展开:
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
≈
l
(
y
i
,
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
(
x
i
)
2
l\left(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)\right) \approx l\left(y_i, \hat{y}_i^{(t-1)}\right) + g_i f_t(x_i) + \frac{1}{2} h_i f_t(x_i)^2
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
≈
l
(
y
i
,
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
2
1
h
i
f
t
(
x
i
)
2
, 其中一阶导
g
i
=
∂
l
(
y
i
,
y
^
i
(
t
−
1
)
)
∂
y
^
i
(
t
−
1
)
g_i = \frac{\partial l\left(y_i, \hat{y}_i^{(t-1)}\right)}{\partial \hat{y}_i^{(t-1)}}
g
i
=
∂
y
^
i
(
t
−
1
)
∂
l
(
y
i
,
y
^
i
(
t
−
1
)
)
, 二阶导
h
i
=
∂
2
l
(
y
i
,
y
^
i
(
t
−
1
)
)
∂
(
y
^
i
(
t
−
1
)
)
2
h_i = \frac{\partial^2 l\left(y_i, \hat{y}_i^{(t-1)}\right)}{\partial \left(\hat{y}_i^{(t-1)}\right)^2}
h
i
=
∂
(
y
^
i
(
t
−
1
)
)
2
∂
2
l
(
y
i
,
y
^
i
(
t
−
1
)
)
。丢掉常数项, 第
t
t
t
步目标化为
∑
i
=
1
n
[
g
i
w
q
(
x
i
)
+
1
2
h
i
w
q
(
x
i
)
2
]
+
γ
T
+
1
2
λ
∑
j
=
1
T
w
j
2
\sum_{i=1}^{n} \left[ g_i w_{q(x_i)} + \frac{1}{2} h_i w_{q(x_i)}^2 \right] + \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2
∑
i
=
1
n
[
g
i
w
q
(
x
i
)
+
2
1
h
i
w
q
(
x
i
)
2
]
+
γ
T
+
2
1
λ
∑
j
=
1
T
w
j
2
, 其中
q
(
x
)
q(x)
q
(
x
)
把样本映射到叶子。按叶子聚组: 令
I
j
=
{
i
∣
q
(
x
i
)
=
j
}
I_j = \{ i \mid q(x_i) = j \}
I
j
=
{
i
∣
q
(
x
i
)
=
j
}
,
G
j
=
∑
i
∈
I
j
g
i
G_j = \sum_{i \in I_j} g_i
G
j
=
∑
i
∈
I
j
g
i
,
H
j
=
∑
i
∈
I
j
h
i
H_j = \sum_{i \in I_j} h_i
H
j
=
∑
i
∈
I
j
h
i
, 目标成为
∑
j
=
1
T
[
G
j
w
j
+
1
2
(
H
j
+
λ
)
w
j
2
]
+
γ
T
\sum_{j=1}^{T} \left[ G_j w_j + \frac{1}{2}\left(H_j + \lambda\right) w_j^2 \right] + \gamma T
∑
j
=
1
T
[
G
j
w
j
+
2
1
(
H
j
+
λ
)
w
j
2
]
+
γ
T
— 对每个
w
j
w_j
w
j
是独立的二次函数, 求导置零得最优叶子权重
w
j
∗
=
−
G
j
H
j
+
λ
w_j^* = -\frac{G_j}{H_j + \lambda}
w
j
∗
=
−
H
j
+
λ
G
j
, 代入得最优目标
L
∗
=
−
1
2
∑
j
=
1
T
G
j
2
H
j
+
λ
+
γ
T
\mathcal{L}^* = -\frac{1}{2} \sum_{j=1}^{T} \frac{G_j^2}{H_j + \lambda} + \gamma T
L
∗
=
−
2
1
∑
j
=
1
T
H
j
+
λ
G
j
2
+
γ
T
。分裂时把节点
I
=
I
L
∪
I
R
I = I_L \cup I_R
I
=
I
L
∪
I
R
拆成左右子节点, 结构增益
Gain
=
1
2
[
G
L
2
H
L
+
λ
+
G
R
2
H
R
+
λ
−
(
G
L
+
G
R
)
2
H
L
+
H
R
+
λ
]
−
γ
\text{Gain} = \frac{1}{2} \left[ \frac{G_L^2}{H_L + \lambda} + \frac{G_R^2}{H_R + \lambda} - \frac{\left(G_L + G_R\right)^2}{H_L + H_R + \lambda} \right] - \gamma
Gain
=
2
1
[
H
L
+
λ
G
L
2
+
H
R
+
λ
G
R
2
−
H
L
+
H
R
+
λ
(
G
L
+
G
R
)
2
]
−
γ
— 当且仅当
Gain
>
0
\text{Gain} > 0
Gain
>
0
才分裂 (
γ
\gamma
γ
即最小分裂增益门槛, 与后剪枝同效)。常见损失: 平方损失
g
i
=
2
(
y
^
i
−
y
i
)
g_i = 2\left(\hat{y}_i - y_i\right)
g
i
=
2
(
y
^
i
−
y
i
)
,
h
i
=
2
h_i = 2
h
i
=
2
; 逻辑回归 log-loss 时
p
^
i
=
σ
(
y
^
i
)
\hat{p}_i = \sigma\left(\hat{y}_i\right)
p
^
i
=
σ
(
y
^
i
)
,
g
i
=
p
^
i
−
y
i
g_i = \hat{p}_i - y_i
g
i
=
p
^
i
−
y
i
,
h
i
=
p
^
i
(
1
−
p
^
i
)
h_i = \hat{p}_i\left(1 - \hat{p}_i\right)
h
i
=
p
^
i
(
1
−
p
^
i
)
。
💡
使用场景
“白板手推 XGBoost”是 2026 大厂 ML 面试出现频率最高的手推题之一 — 要求写全 目标函数 → 二阶泰勒展开 → 叶子权重 → 结构增益 的完整链路; 工程上 XGBoost 是表格数据竞赛的事实标准之一。
⚡
解决的核心痛点
相比一阶 GBDT, 二阶展开等价于函数空间上的牛顿步 — 用曲率 (Hessian) 信息, 收敛更快, 分裂准则更准 (一阶梯度相同但曲率不同的分裂能被区分); 显式正则
γ
T
+
1
2
λ
∥
w
∥
2
\gamma T + \frac{1}{2} \lambda \Vert w \Vert^2
γ
T
+
2
1
λ
∥
w
∥
2
把叶子权重收缩 (
λ
\lambda
λ
) 与分裂惩罚 (
γ
\gamma
γ
) 直接并入目标, 端到端抗过拟合; 工程上列采样、近似分位数直方图 (候选分裂点从
O
(
n
)
O(n)
O
(
n
)
降到
O
(
bins
)
O(\text{bins})
O
(
bins
)
)、稀疏感知分裂 (缺失值自动学习默认方向) 使其在大规模稀疏数据上实用。
🎯
5 个高频面试考点 (Exam Points)
1
白板手推 XGBoost: 从目标
∑
i
l
(
y
i
,
y
^
i
)
+
∑
k
Ω
(
f
k
)
\sum_i l(y_i, \hat{y}_i) + \sum_k \Omega(f_k)
∑
i
l
(
y
i
,
y
^
i
)
+
∑
k
Ω
(
f
k
)
出发, 二阶泰勒展开得到
∑
i
[
g
i
w
q
(
x
i
)
+
1
2
h
i
w
2
]
+
λ
∥
w
∥
2
\sum_i [g_i w_{q(x_i)} + \frac{1}{2} h_i w^2] + \lambda \Vert w \Vert^2
∑
i
[
g
i
w
q
(
x
i
)
+
2
1
h
i
w
2
]
+
λ
∥
w
∥
2
, 再推导最优叶子权重
w
j
∗
=
−
G
j
H
j
+
λ
w_j^* = -\frac{G_j}{H_j + \lambda}
w
j
∗
=
−
H
j
+
λ
G
j
2
白板推导分裂结构增益
Gain
=
1
2
[
G
L
2
H
L
+
λ
+
G
R
2
H
R
+
λ
−
(
G
L
+
G
R
)
2
H
L
+
H
R
+
λ
]
−
γ
\text{Gain} = \frac{1}{2}\left[\frac{G_L^2}{H_L+\lambda} + \frac{G_R^2}{H_R+\lambda} - \frac{(G_L+G_R)^2}{H_L+H_R+\lambda}\right] - \gamma
Gain
=
2
1
[
H
L
+
λ
G
L
2
+
H
R
+
λ
G
R
2
−
H
L
+
H
R
+
λ
(
G
L
+
G
R
)
2
]
−
γ
: 什么时候不分裂?
3
为什么用二阶导? 与一阶 GBDT 相比的收敛优势;
g
i
g_i
g
i
,
h
i
h_i
h
i
在平方损失与交叉熵下分别是多少?
4
γ
\gamma
γ
与
λ
\lambda
λ
的作用: 复杂度惩罚如何影响叶子数与叶子权重? 与决策树剪枝的关系?
5
工程机制: 精确贪心 vs 近似分位数直方图、稀疏感知分裂 (缺失值默认方向)、列采样; 与 LightGBM 的差异
📖 关联深度指南:
📄 decision-trees-and-ensemble →
更新于 2026-08-12
🎯
检验攻克程度:针对「XGBoost 二阶手推」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题 ➔
← 上一个知识点
GBDT 负梯度拟合
下一个知识点 →
LightGBM GOSS/EFB
🔗 更多 经典机器学习 知识点卡片
AdaBoost 算法手推
Bagging 与随机森林
HMM 参数学习 Baum-Welch
混淆矩阵