加法模型形式化了作为增强(boosting)算法基础的顺序学习过程。这个框架涉及集成方法,通常使用决策树作为基础学习器。与Bagging等方法不同,Bagging中基础学习器通常独立并行训练,而加法模型是迭代构建的。模型中添加的每个新组件都针对现有集成的不足之处。顺序特性设想您正在一步步构建一个预测模型。您从一个初始的、通常非常简单的预测开始。然后,您评估这个初始预测的不足之处。基于此评估,您添加一个新的组件,一个简单的模型,它专门用于弥补迄今为止所犯的错误。您重复此过程,通过添加处理剩余错误的组件,逐步改进整体模型。这种迭代改进是加法模型的要旨。最终预测是按顺序构建的所有组件预测的总和(或相加)。框架的形式化从数学角度看,一个加法模型 $F_M(x)$ 在 $M$ 个阶段(或迭代)后对输入 $x$ 进行预测,可以表示为:$$ F_M(x) = F_0(x) + \sum_{m=1}^{M} \beta_m h_m(x) $$让我们分解这个方程:$F_M(x)$: 在 $M$ 步之后,集成模型的最终预测。$F_0(x)$: 一个初始的基础模型或起始预测。对于许多问题,这只是训练集中目标变量的平均值(对于回归)或对数几率(对于分类)。它代表了我们在添加任何复杂学习器之前的最佳猜测。$h_m(x)$: 在第 $m$ 步添加的第 $m$ 个基础学习器(通常是决策树)。这个学习器经过专门训练,以处理构建到第 $m-1$ 步的模型(表示为 $F_{m-1}(x)$)的错误或不足。$\beta_m$: 应用于第 $m$ 个基础学习器预测的系数或权重。该项控制每个新学习器对整体集成的贡献。在梯度增强中,这与学习率或收缩参数密切相关,后者通过减弱每个单独步骤的影响来帮助防止过拟合。$M$: 基础学习器(或增强阶段)的总数。迭代过程模型构建过程如下:初始化: 从初始模型 $F_0(x)$ 开始。这通常是一个常数值,它在训练数据上最小化损失函数(例如,平方误差损失的平均值)。迭代 $m=1$ 到 $M$:计算当前集成模型 $F_{m-1}(x)$ 所产生的误差(残差或梯度,我们稍后会看到)。这些误差代表目标变量中“未被解释”的部分。训练一个新的基础学习器 $h_m(x)$ 来预测前一步的这些误差。 $h_m(x)$ 的目标是捕捉剩余误差中的模式。确定这个新学习器的最优系数 $\beta_m$(通常涉及最小化整体损失函数)。更新集成模型:$F_m(x) = F_{m-1}(x) + \beta_m h_m(x)$。这个迭代过程可视化如下:digraph AdditiveModel { rankdir=LR; node [shape=box, style=filled, fontname="sans-serif", color="#adb5bd", fillcolor="#e9ecef"]; edge [fontname="sans-serif", color="#495057"]; F0 [label="F₀(x)\n初始模型", fillcolor="#a5d8ff"]; Error0 [label="误差₀\ny - F₀(x)", fillcolor="#ffc9c9"]; h1 [label="h₁(x)\n拟合误差₀", fillcolor="#b2f2bb"]; F1 [label="F₁(x)\nF₀ + β₁h₁", fillcolor="#a5d8ff"]; Error1 [label="误差₁\ny - F₁(x)", fillcolor="#ffc9c9"]; h2 [label="h₂(x)\n拟合误差₁", fillcolor="#b2f2bb"]; F2 [label="F₂(x)\nF₁ + β₂h₂", fillcolor="#a5d8ff"]; Dots [label="...", shape=plaintext]; FM [label="Fᴍ(x)\n最终模型", fillcolor="#74c0fc"]; F0 -> Error0 [label=" 计算"]; Error0 -> h1 [label=" 目标"]; h1 -> F1 [label=" 更新"]; F0 -> F1 [style=invis]; // Helps layout F1 -> Error1 [label=" 计算"]; Error1 -> h2 [label=" 目标"]; h2 -> F2 [label=" 更新"]; F1 -> F2 [style=invis]; F2 -> Dots [label=" 更新"]; Dots -> FM [label=" 更新"]; }加法模型过程:从初始模型($F_0$)开始,计算误差,将新的基础学习器($h_m$)拟合到这些误差上,并将其添加到集成模型中($F_m = F_{m-1} + \beta_m h_m$)。重复 $M$ 步。为何使用加法模型?这个框架的效能在于其灵活性和专注度。通过专注于前一个模型的误差,每个新学习器都能解决当前集成模型认为最困难的问题方面。这使得模型能够逐步提升性能,有可能捕捉到单个模型可能遗漏的复杂模式。梯度增强是一个非常成功的算法系列,它在此加法模型框架内运作。它提供了一种具体的、有数学依据的方法来确定如何训练每个新的基础学习器 $h_m(x)$,以最佳地纠正 $F_{m-1}(x)$ 的误差,这其中运用了函数空间中的梯度下降思想。随着我们继续学习,我们将详细分析这种联系。理解这种加法结构是掌握GBM、XGBoost、LightGBM和CatBoost机制的基本。