| 序号 | 特征 1 | 特征 2 | 特征 3 | 标签 |
|---|---|---|---|---|
| 1 | -0.587231 | -1.971718 | -1.057711 | 0 |
| 2 | 1.068339 | -0.970073 | 0.208864 | 1 |
| 3 | -1.140215 | -0.838792 | 0.822545 | 0 |
| 4 | -0.077445 | -1.599711 | -1.220844 | 0 |
| 5 | 1.727259 | -1.185827 | -1.959670 | 1 |
| 6 | -2.895397 | 1.976862 | 0.196861 | 0 |
| 7 | -1.962874 | -0.992251 | -1.328186 | 0 |
| 8 | 1.899693 | 0.834445 | 0.171368 | 1 |
| 9 | -0.720634 | -0.960593 | -0.013497 | 0 |
| 10 | -1.715464 | 2.173706 | 0.738467 | 0 |
1. 初始预测
GBDT 的初始模型 \( \hat{y}_{0}(x) \) 为每个样本提供一个基础的预测值,后续每棵子树都在此基础上,通过拟合当前残差(或负梯度)来进一步优化预测结果。
注意:初始模型 \( \hat{y}_{0}(x) \) 的输出通常是一个常数(即对所有样本预测同一个值)

那么,这个初始模型的输出值 c 怎么确定?对于经典的二分类问题,我们一般使用的 log loss 损失函数,其公式如下:

对于初始模型来讲,看看 c 输出什么时,损失函数最小。我们对 c 求导,设导数为 0:

得到初始输出计算公式(省略中间化简过程):


由此可得,初始模型的输出结果为:

2. 拟合残差
GBDT 分类模型默认使用二分类损失函数 log loss,其负梯度计算公式为:


- \( p \) :预测概率
- \( y \) :真实标签(0 或 1)
| 序号 | 真实标签 | 初始分数 | 预测概率 | 负梯度 |
|---|---|---|---|---|
| 1 | 0 | -0.8472 | 0.3 | -0.3 |
| 2 | 1 | -0.8472 | 0.3 | 0.7 |
| 3 | 0 | -0.8472 | 0.3 | -0.3 |
| 4 | 0 | -0.8472 | 0.3 | -0.3 |
| 5 | 1 | -0.8472 | 0.3 | 0.7 |
| 6 | 0 | -0.8472 | 0.3 | -0.3 |
| 7 | 0 | -0.8472 | 0.3 | -0.3 |
| 8 | 1 | -0.8472 | 0.3 | 0.7 |
| 9 | 0 | -0.8472 | 0.3 | -0.3 |
| 10 | 0 | -0.8472 | 0.3 | -0.3 |
上图中,预测概率是 sigmoid(输出分数) 得到,在构建第一个决策树时,模型的输出就是初始分数。接下来,将负梯度作为拟合目标,训练第一个弱决策树:

决策树叶子节点输出值默认为该节点上样本目标值的均值。但实际上,叶子节点最终输出值需要根据损失函数进行修正。对于 log loss,叶子节点输出值的修正公式如下:

- 左叶子节点(7 个 0 样本):-0.3 / (0.3 * 0.7) = -1.43
- 右叶子节点(3 个 1 样本):0.7 / (0.3 * 0.7) = 3.33
修正之后的决策树为:

按照前面的思路继续构建第二棵子决策树(学习率为 0.1):
| 序号 | 标签 | 预测分数 | 预测概率 | 负梯度 |
|---|---|---|---|---|
| 1 | 0 | -0.99016 | 0.27 | -0.27 |
| 2 | 1 | -0.51396 | 0.37 | 0.63 |
| 3 | 0 | -0.99016 | 0.27 | -0.27 |
| 4 | 0 | -0.99016 | 0.27 | -0.27 |
| 5 | 1 | -0.51396 | 0.37 | 0.63 |
| 6 | 0 | -0.99016 | 0.27 | -0.27 |
| 7 | 0 | -0.99016 | 0.27 | -0.27 |
| 8 | 1 | -0.51396 | 0.37 | 0.63 |
| 9 | 0 | -0.99016 | 0.27 | -0.27 |
| 10 | 0 | -0.99016 | 0.27 | -0.27 |
预测分数 = 初始分数 + 学习率 * 第一棵树输出分数。以第一个样本为例,计算负梯度:


接下来,训练新树去拟合本轮负梯度,然后再修正叶子节点输出,重复此过程。



冀公网安备13050302001966号