统计学习方法-李航-第八章-提升方法
知乎有一个问题:有哪些简短、强大、另人印象深刻的算法?我想 AdaBoost
应该占一席之地。它是如此的简短(十来行代码),高效,而且具有一些罕见的优点(大量训练不会导致过拟合),自诞生之初,关于它研究从未间断。AdaBoost
是 Boosting 的代表算法。
提升方法(Boosting)是集成学习(Ensemble
learning)的一个分支,另一主要分支是引导聚合(Bagging)。所谓集成学习,是将多个“弱学习器”(处理分类问题仅比随机猜测好一点)组合起来,形成一个高精度的“强学习器”。
Bagging 又称并行方法,它的学习器可以同时训练(代表算法:随机森林);Boosting
又称串行方法,它的学习器必须依次训练,后者会根据前者的不足进行性能提升,因此称为提升方法。
提升方法(boosting)方法是一种常用的统计学习方法,应用广泛且有效。
在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行下线性组合,提高分类性能。
基本思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。
(“三个臭皮匠顶个诸葛亮”)
一、提升方法概念
强可学习:在概率近似正确学习的框架中,一个概念,如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就是强可学习。
弱可学习:在概率近似正确学习的框架中,一个概念,如果存在一个多项式的学习算法能够学习它,并且正确率仅比随机猜测略好,那么就是弱可学习。
小结:弱可学习算法->提升(boost)->强学习算法
提升方法就是从若学习算法出发,反复学习,得到一系列分类器,然后组合这些弱分类器,构成一个强分类器。
提升方法需要解决两个问题:一是使后学习器改进前者的不足,二是把多个学习器联合起来共同决策。问题的关键在于“权值”:为了使得后学习器改进前者的不足,引入了训练集权值;为了解决多学习器共同决策问题,引入学习器权值。
问题1:在每一轮如何改变训练数据的权值或概率分布?
提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值,因此,那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。(分而治之)
问题2:如何将弱分类器组合成强分类器?
加权多数表决法。即加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小误差率较大的弱分类器的权值,使其在表决中起较小的作用。
二、AdaBoost算法的训练误差分析
三、AdaBoost算法的解释
第二种解释:
AdaBoost算法是模型为加法模型
损失函数为指数函数
学习算法为前向分布算法
的二分类学习方法
AdaBoost是前向分布加法算法的特例。
四、提升树
提升树是以分类树或回归树为基本分类器的提升方法。提升树被认为是统计学习中性能最好的方法之一。
提升方法实际采用加法模型与前向分步算法,以决策树为基数的提升方法称为提升树。