梯度提升(Gradient Boosting)在回归和分类任务中都表现出色,彻底改变了机器学习的格局。梯度提升树(GBT)将决策树的简洁性与集成学习的鲁棒性结合,专门处理复杂的非线性数据集。
核心组成部分
- 决策树作为基本学习器:使用简单的决策树按顺序构建,纠正前一棵树的误差。
- 梯度下降算法:通过迭代改进预测来最小化损失函数。
- 损失函数优化:量化预测误差,指导模型更新方向。
工作原理详解
我们以一个包含患者年龄和心率的数据集为例,演示 GBDT 是如何一步步构建的。
| 病人 | 年龄 | 实际心率 |
|---|---|---|
| 病人 1 | 25 | 72 |
| 病人 2 | 35 | 75 |
| 病人 3 | 45 | 78 |
| 病人 4 | 55 | 80 |
| 病人 5 | 65 | 82 |
1. 初始模型预测
回归问题通常从目标变量的平均值开始。平均值能最小化整体平方误差,为后续修正提供基准。
计算心率的平均值:(72 + 75 + 78 + 80 + 82) / 5 = 77.4。这就是初始预测值。
2. 计算残差
残差是实际值与初始预测值的差。例如,病人 1 的实际心率是 72,残差为 72 - 77.4 = -5.4。
| 病人 | 心率 | 初始预测值 | 残差 (Iteration 1) |
|---|---|---|---|
| 病人 1 | 72 | 77.4 | -5.4 |
| 病人 2 | 75 | 77.4 | -2.4 |
| 病人 3 | 45 | 78 | 0.6 |
| 病人 4 | 55 | 80 | 2.6 |
| 病人 5 | 65 | 82 | 4.6 |
3. 构建决策树
接下来构建一棵新树来预测残差。这棵树利用年龄特征学习残差中的模式,目的是解决初始预测的误差。

4. 更新模型
决策树的预测值会乘以学习率(例如 0.1)后加到初始预测中。比如残差为 -5.4 时,更新后的预测为:77.4 + (-5.4) * 0.1 = 76.86。调整让预测更接近真实值。
以下是第一轮迭代后的结果:


