提升方法
提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。
在每一轮如何改变训练数据的权值或概率分布:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。这样一来,那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。
如何将弱分类器组合成一个强分类器:AdaBoost采取加权多数表决的方法.具体地,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
提升树
参考资料:
提升树模型

GBDT的求解过程就是梯度下降在函数空间中的优化过程。
- 我们能通过一阶泰勒展开证明负梯度方向是下降最快的方向。对于函数f:
f(θk+1)≈f(θk)+∂f(θk)∂θk(θk+1−θk)
则优化函数f时:
θk+1=θk−η∂f(θk)∂θk
- 在GB中,对损失函数展开:
L(y,Fm(x))≈L(y,Fm−1(x))+∂L(y,Fm−1(x))∂Fm−1(x)(Fm(x)−Fm−1(x))
即
L(y,Fm(x))≈L(y,Fm−1(x))+∂L(y,Fm−1(x))∂Fm−1(x)Tm(x)
则在优化 L(y,F(x)) 的时候: ,
Fm(x)=Fm−1(x)−η∂L(y,Fm−1(x))∂Fm−1(x)
即,Tm(x)=−η∂L(y,Fm−1(x))∂Fm−1(x) 。所以需要当前的弱学习器来学习负梯度,这里和GBDT中差了一个η 。
- 在1和2中都是随机梯度下降,但是不同的是:1在参数空间中优化,每次迭代得到参数的增量,这个增量就是负梯度乘上学习率;2在函数空间中优化,每次得到增量函数,这个函数会去拟合负梯度,在GBDT中就是一个个决策树。要得到最终结果,只需要把初始值或者初始的函数加上每次的增量。所以1的优化过程是(假设迭代了M次):
θ1=θ0−η∂f(θ0)∂θ0θ2=θ1−η∂f(θ1)∂θ1...θM=θM−1−η∂f(θM−1)∂θM−1
等号两边相加,得到最终的优化结果:
θM=θ0+ηM−1∑m=0−∂f(θm)∂θm
同样的,2中优化的过程是:
F1(x)=F0(x)−η∂L(y,F0(x))∂F0(x),即T1(x)=−η∂L(y,Fm−1(x))∂Fm−1(x)...FM(x)=FM−1(x)−η∂L(y,FM−1(x))∂FM−1(x),即TM(x)=−η∂L(y,FM−1(x))∂FM−1(x)
等号两边相加,得到:
F(x)=FM(x)=F0(x)+ηM−1∑m=0−∂L(y,Fm(x))∂Fm(x)=M∑m=0Tm(x)
- 无论损失函数是什么形式,每个决策树拟合的都是负梯度。准确的说,不是用负梯度代替残差,而是当损失函数是均方损失时,负梯度刚好是残差,残差只是特例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异