GBDT (Gradient Boosting Decision Tree) 把 Boosting 看作函数空间上的梯度下降: 加法模型
FM(x)=∑m=1Mρmhm(x), 每轮沿损失对函数值
F 的负梯度方向更新
Fm=Fm−1−ρm∇FLF=Fm−1。第
m 轮三步: (1) 对每个样本计算负梯度伪残差
y~i=−[∂F(xi)∂L(yi,F(xi))]F=Fm−1; (2) 用回归树拟合
(xi,y~i), 得到叶子区域划分
Rjm (
j=1,…,Jm); (3) 对每个叶子做线搜索定输出
ρjm=argminρ∑xi∈RjmL(yi,Fm−1(xi)+ρ)。平方损失
L=21(y−F)2 时伪残差恰为普通残差
y~i=yi−Fm−1(xi), 叶子输出为叶内伪残差均值; 绝对值损失时
y~i=sign(yi−Fm−1(xi)), 叶子输出为中位数 (L2 均值 / L1 中位数对应); 二分类 (log-loss) 以对数几率
F 建模:
p^i=σ(Fm−1(xi)), 伪残差
y~i=yi−p^i, 叶子值再做一个牛顿步修正。训练加收缩 (学习率)
ν∈(0.01,0.1):
Fm=Fm−1+ν⋅treem — 每棵树贡献打折, 需要更多棵树, 但泛化显著更好; 随机梯度提升 (subsampling) 进一步降方差。Friedman (2001) 证明 AdaBoost 是指数损失下梯度提升的特例。