AdaBoost
提升方法
提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。
在每一轮如何改变训练数据的权值或概率分布:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。这样一来,那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。
如何将弱分类器组合成一个强分类器:AdaBoost采取加权多数表决的方法.具体地,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
提升树
参考资料:
提升树模型
GBDT的求解过程就是梯度下降在函数空间中的优化过程。
- 我们能通过一阶泰勒展开证明负梯度方向是下降最快的方向。对于函数f:
\[f(\theta_{k+1}) \approx f(\theta_{k})+\frac{\partial f(\theta_{k})}{\partial \theta_k}(\theta_{k+1}-\theta_{k})
\]
则优化函数f时:
\[\theta_{k+1} = \theta_{k}-\eta \frac{\partial f(\theta_{k})}{\partial \theta_k}
\]
- 在GB中,对损失函数展开:
\[L(y,F_m(x)) \approx L(y,F_{m-1}(x)) + \frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}(x)} (F_m(x)-F_{m-1}(x))
\]
即
\[L(y,F_m(x)) \approx L(y,F_{m-1}(x)) + \frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}(x)} T_m(x)
\]
则在优化 \(L(y,F(x))\) 的时候: ,
\[F_m(x) = F_{m-1}(x)-\eta \frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}(x)}
\]
即,\(T_m(x)=-\eta \frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}(x)}\) 。所以需要当前的弱学习器来学习负梯度,这里和GBDT中差了一个\(\eta\) 。
- 在1和2中都是随机梯度下降,但是不同的是:1在参数空间中优化,每次迭代得到参数的增量,这个增量就是负梯度乘上学习率;2在函数空间中优化,每次得到增量函数,这个函数会去拟合负梯度,在GBDT中就是一个个决策树。要得到最终结果,只需要把初始值或者初始的函数加上每次的增量。所以1的优化过程是(假设迭代了M次):
\[\theta_1 = \theta_0 - \eta \frac{\partial f(\theta_{0})}{\partial \theta_0} \\ \theta_2 = \theta_1 - \eta \frac{\partial f(\theta_{1})}{\partial \theta_1} \\...\\ \theta_M = \theta_{M-1} - \eta \frac{\partial f(\theta_{M-1})}{\partial \theta_{M-1}}
\]
等号两边相加,得到最终的优化结果:
\[\theta_M = \theta_0 + \eta \sum_{m=0}^{M-1} -\frac{\partial f(\theta_{m})}{\partial \theta_m}
\]
同样的,2中优化的过程是:
\[F_1(x) = F_0(x) - \eta \frac{\partial L(y, F_{0}(x))}{\partial F_{0}(x)},即 T_1(x) = -\eta \frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}(x)} \\ ...\\ F_M(x) = F_{M-1}(x) - \eta \frac{\partial L(y, F_{M-1}(x))}{\partial F_{M-1}(x)},即 T_M(x) = -\eta \frac{\partial L(y, F_{M-1}(x))}{\partial F_{M-1}(x)}
\]
等号两边相加,得到:
\[F(x)=F_M(x)=F_0(x)+\eta \sum_{m=0}^{M-1} -\frac{\partial L(y, F_{m}(x))}{\partial F_{m}(x)}=\sum_{m=0}^{M}T_m(x)
\]
- 无论损失函数是什么形式,每个决策树拟合的都是负梯度。准确的说,不是用负梯度代替残差,而是当损失函数是均方损失时,负梯度刚好是残差,残差只是特例。
本文来自博客园,作者:Un-Defined,转载请保留本文署名Un-Defined,并在文章顶部注明原文链接:https://www.cnblogs.com/EIPsilly/p/18381867