机器学习算法总结7:Boosting、Adaboost及GBDT

提升(boosting)方法:在分类问题中,通过改变训练样本的权重(概率分布)重赋权法,进而通过不同的训练数据学习多个弱分类器(基本分类器),然后将这些弱分类器线性组合,构成一个强分类器,以提高分类性能。
从偏差-方差分解的角度来看,Boosting主要关注降低偏差。
机器学习算法总结7:Boosting、Adaboost及GBDT_第1张图片
1.AdaBoost
AdaBoost算法是代表性的提升方法,是二类分类算法。
前提条件:概率近似正确(PAC),即一个概念是强可学习的充分必要条件是这个概念是弱可学习的。所以,可以通过弱分类器构造强分类器。
一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,称这个概念是强可学习的;一个概念(一个类),如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好。称这个概念是弱可学习的。
现在,对于提升算法需要解决两个问题:一是在每一轮如何改变训练数据的权值或概率分布?;二是如何将弱分类器组合成一个强分类器?
解决方法:
一:提高被前一轮弱分类器错误分类样本的权值,减低被正确分类样本的权值;
二:加权多数表决。具体地,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
机器学习算法总结7:Boosting、Adaboost及GBDT_第2张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第3张图片
在这里插入图片描述
机器学习算法总结7:Boosting、Adaboost及GBDT_第4张图片
AdaBoost可以解释为:模型是加法模型、损失函数是指数函数、学习算法是前向分布算法时的二类分类学习方法,即AdaBoost算法是前向分布算法的特例。
指数损失函数:
在这里插入图片描述
前向分布算法
机器学习算法总结7:Boosting、Adaboost及GBDT_第5张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第6张图片
在这里插入图片描述
2.提升树:以分类树或回归树为基本分类器的提升方法。
对于分类问题决策树是CART分类决策树,对于回归问题决策树是CART回归决策树。
提升树模型表示为决策树的加法模型:
在这里插入图片描述
提升树算法采用前向分布算法,不同的提升树学习算法,主要区别在于使用的损失函数不同,包括用平方误差损失函数的回归问题,用指数损失函数的分类问题以及用一般损失函数的一般决策问题。
机器学习算法总结7:Boosting、Adaboost及GBDT_第7张图片
在这里插入图片描述
在回归问题的提升树中,残差=真实值-预测值,残差的作用是:替换y,生成新数据,以便下一次迭代生成回归树。
3.梯度提升决策树(Gradient Boosting Decision Tree)算法:即GBDT算法
GBDT=DB+DT,也就是说当GB算法中基学习器是决策树时,即为GBDT算法。
GBDT具有训练效果好、不易过拟合等优点,通常用于点击率预测、搜索排序等任务。
机器学习算法总结7:Boosting、Adaboost及GBDT_第8张图片
学习一个基学习器,然后计算残差,用下一个基学习器拟合残差。
机器学习算法总结7:Boosting、Adaboost及GBDT_第9张图片
学习若干个基学习器,随着基学习器的增加,模型也越来越复杂。
GBDT基本思路:
初始化->计算负梯度值->用回归树拟合负梯度值->计算叶子节点值->更新Fm(x)
对于回归任务,选择平方损失函数:
在这里插入图片描述
对于分类任务,选择对数损失函数:
在这里插入图片描述
关键是利用损失函数的负梯度在当前模型的值
在这里插入图片描述
作为回归问题提升树算法中残差的近似值,拟合一个CART回归树。
注意:通过学习率来进行Shrinkage,以减少过拟合的风险。
机器学习算法总结7:Boosting、Adaboost及GBDT_第10张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第11张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第12张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第13张图片
机器学习算法总结7:Boosting、Adaboost及GBDT_第14张图片

参考博文:
GBDT详解:回归篇
GBDT详解:分类篇
GBDT详解:多分类篇

你可能感兴趣的:(机器学习)