本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。
我们重新定义一颗树,包括两个部分:
- 叶子结点的权重向量 w w w;
- 实例 -> 叶子结点的映射关系 q q q(本质是树的分支结构);
一棵树的表达形式定义如下:
(12-13)的公式 f t ( x ) = w q ( x ) f_t(x) = w_{q(x)} ft(x)=wq(x) 是 XGBoost 中决策树模型的一种表示方法,描述了如何使用决策树对样本进行预测。具体来说,这个公式说明了每个样本 x x x 通过决策树的结构到达某个叶子节点后,所对应的输出值(权重值)是如何确定的。
公式的符号解释
-
f t ( x ) f_t(x) ft(x):
- 表示在第 t t t 轮迭代中,模型(决策树)对样本 x x x 的预测值。
- 这个预测值由树的叶子节点的权重决定。
-
q ( x ) q(x) q(x):
- 是一个映射函数,表示决策树的结构如何将样本 x x x 分配到某个叶子节点。
- 对于给定的样本 x x x,决策树根据特征的划分路径,将 x x x 归到某个叶子节点。这个叶子节点的索引就是 q ( x ) q(x) q(x)。
- 换句话说, q ( x ) q(x) q(x) 表示样本 x x x 所到达的叶子节点的编号。
-
w q ( x ) w_{q(x)} wq(x):
- 表示叶子节点 q ( x ) q(x) q(x) 的权重值。
- 这个权重 w q ( x ) w_{q(x)} wq(x) 是当前决策树在该叶子节点上为所有落入该节点的样本预测的输出值(也称为权重)。
- 在 XGBoost 中,这个权重是通过章节后续的权重公式计算得到的最佳值,以使得目标函数在该节点上的损失最小化。
公式的含义
公式 f t ( x ) = w q ( x ) f_t(x) = w_{q(x)} ft(x)=wq(x) 的含义是:在第 t t t 轮迭代中,对于样本 x x x,决策树 f t f_t ft 通过节点划分规则(由函数 q ( x ) q(x) q(x) 表示)将样本分配到某个叶子节点。然后,这个叶子节点的权重 w q ( x ) w_{q(x)} wq(x) 就是样本 x x x 的预测值。
简单来说,这个公式表示样本 x x x 通过决策树的划分后,最终会落到某个叶子节点 q ( x ) q(x) q(x) 上,而该节点的权重 w q ( x ) w_{q(x)} wq(x) 就是模型对样本 x x x 的预测值。
直观理解
- 决策树的路径:对于一个决策树模型,每个样本会沿着树的分支,经过一系列特征条件判断,最终到达一个叶子节点。这个路径由样本的特征决定。
- 叶子节点的预测:每个叶子节点都携带一个权重值 w q ( x ) w_{q(x)} wq(x),用于预测所有到达该节点的样本的值。
- 预测过程:当我们要对样本 x x x 进行预测时,只需要找到它在树中的叶子节点,然后取该节点的权重作为预测值。
举例说明
假设我们有一个样本 x x x,它的特征值通过决策树的结构划分最终被分配到叶子节点 3,那么 q ( x ) = 3 q(x) = 3 q(x)=3。如果叶子节点 3 的权重值是 w 3 = − 0.2 w_3 = -0.2 w3=−0.2,那么对于该样本 x x x 的预测值就是:
f t ( x ) = w q ( x ) = w 3 = − 0.2 f_t(x) = w_{q(x)} = w_3 = -0.2 ft(x)=wq(x)=w3=−0.2
总结
公式 f t ( x ) = w q ( x ) f_t(x) = w_{q(x)} ft(x)=wq(x) 表达了 XGBoost 中每棵决策树对样本的预测过程:样本 x x x 根据决策树的划分规则到达某个叶子节点,该叶子节点的权重就是该样本的预测值。这个公式清晰地描述了决策树模型在 XGBoost 中的预测机制。