机器学习进阶(11.5):梯度提升树补充

张开发
2026/4/20 0:28:38 15 分钟阅读

分享文章

机器学习进阶(11.5):梯度提升树补充
第 11.5 篇梯度提升树原理补充篇——每棵树为什么能一步步修正错误第十一篇讲了梯度提升树GBDT直觉每棵树都是在“纠正前面树的残差”。这里我们把公式和原理拆开讲帮助读者理解为什么模型能一步步逼近真实值。1. 梯度提升树的基本想法假设训练集是((xi,yi)i1N) ( {(x_i, y_i)}_{i1}^N )((xi​,yi​)i1N​)模型预测函数是 (F(x))我们用平方误差作为损失L∑i1N(yi−F(xi))2 L \sum_{i1}^{N} (y_i - F(x_i))^2Li1∑N​(yi​−F(xi​))2GBDT 的核心思路是逐步优化损失函数初始预测(F0(x)常数) (F_0(x) \text{常数})(F0​(x)常数)比如平均值第 (m) 棵树预测残差rim−[∂L(yi,F(xi))∂F(xi)]∗F(x)F∗m−1(x) r_{im} - \left[ \frac{\partial L(y_i, F(x_i))}{\partial F(x_i)} \right]*{F(x)F*{m-1}(x)}rim​−[∂F(xi​)∂L(yi​,F(xi​))​]∗F(x)F∗m−1(x)用树(hm(x))(h_m(x))(hm​(x))拟合残差(rim)(r_{im})(rim​)更新模型Fm(x)Fm−1(x)ηhm(x) F_m(x) F_{m-1}(x) \eta h_m(x)Fm​(x)Fm−1​(x)ηhm​(x)(η)(\eta)(η)是学习率每棵树都是在“沿梯度方向”修正前面的预测2. 残差的直觉理解以平方误差为例rimyi−Fm−1(xi) r_{im} y_i - F_{m-1}(x_i)rim​yi​−Fm−1​(xi​)这就是我们前一篇讲的残差正残差 → 模型预测偏小需要向上修正负残差 → 模型预测偏大需要向下修正梯度提升树每棵树训练的目标就是把这个残差学回来。3. 为什么学习率重要更新公式Fm(x)Fm−1(x)ηhm(x) F_m(x) F_{m-1}(x) \eta h_m(x)Fm​(x)Fm−1​(x)ηhm​(x)(η\etaη) 太大 → 每棵树修正太猛容易过拟合(η\etaη) 太小 → 每棵树修正太温和需要更多树才能收敛这也是为什么在实践中GBDT 经常用小学习率 多棵树的组合。4. 树深和弱学习器GBDT 通常用浅树比如 max_depth3每棵树是弱学习器只负责修正局部残差通过累加多棵树实现模型强拟合能力这也是为什么你看到树浅 → 每一步修正小 → 训练稳树深 → 每一步修正大 → 训练快但容易过拟合5. 损失函数不仅限于平方误差GBDT 可以用任意可微分损失函数二分类交叉熵log loss回归平方误差、绝对误差多分类多项式对数损失核心思想都是一样计算梯度残差拟合梯度沿梯度方向更新模型6. 小结GBDT 是梯度下降 树模型的结合每棵树都是弱学习器沿负梯度修正前面预测学习率和树深控制模型稳定性与表达能力损失函数灵活适应不同问题掌握这些公式读者就能理解为什么梯度提升树比随机森林更精细能逼近复杂规律

更多文章