目录
1 提升方法Adaboost算法
1.1提升方法的基本思路
对分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易得多。提升发方法就是从弱学习算法出发,反复学习,得到一系列的弱分类器,然后组合这些弱分类器,构成一个强分类器。
对于提升方法来说,有两个问题需要解决:
1.在每一轮如何改变训练数据的权值或概率分布?
AdaBoost的做法是,提高那些被前一轮弱分类器错误分类的样本的权值,而降低那些被正确分类样本的权值。这样一来,那些没有正确分类的数据,由于权值的加大而收到后一轮的弱分类器的更大关注。
2.如何讲弱分类器组合成一个强分类器?
AdaBoost采用加权多数表决的方法,具体是,加大分类误差率小的弱分类器的权值,使其在表决中起较大作用;减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
1.2 AdaBoost算法
标准的AdaBoost算法只适用于二分类任务。
由此可知,被基本分类器误分类样本的权值得以扩大,而被正确分类的样本的权值却得以缩小。
2 AdaBoost算法解释
2.1 前向分步算法
通常这是一个复杂的优化问题。前向分步算法求解这一优化问题的思路是:如果能从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数,那么就可以简化优化的复杂度。具体的,每一步只需优化如下损失函数:
3 提升树
提升树是以分类树或回归树为基本分类器的提升方法。
3.1 提升树模型
提升方法实际采用加法模型(基函数的线性组合)与前向分布算法。以决策树为基函数的提升方法称为提升树。
某些分类器可以看作是由一个根节点直接连接两个叶结点的简单决策树,即所谓的决策树桩。
提升树模型可以表示为决策树的加法模型:
3.2 提升树算法
对于二类分类问题,提升树算法只需要将AdaBoost算法中的基本分类器限制为二类分类树即可。
下面叙述回归问题的提升树。
回归问题提升树使用以下前向分步算法:
是当前模型拟合数据的残差。所以,对回归问题的提升树算法来说,只需要简单地拟和当前模型的残差。
拟合残差,学习一个回归树,得到。
接下来更新,如此往复。
最后得到回归问题的提升树:
3.3 梯度提升
提升树利用加法模型和前向分步算法实现学习的优化过程。对一般损失函数而言,往往每一步优化并不那么容易。针对这一问题,提出梯度提升算法。
这是利用最速下降法的近似方法,其关键是利用损失函数的负梯度在当前模型的值
作为回归问题提升树算法中的残差的近似值,拟合一个回归树。