集成学习(Ensamble Learning)通过训练多个若学习器,然后将其按某种策略组合起来,从而达到最好的学习性能,提高算法的泛华能力。
目前集成学习有3个框架:bagging ,boosting,stacking;
Boosting作用于相同的测试集,在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类性能。
提升方法是基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。通俗点说,就是”三个臭皮匠顶个诸葛亮”。
工作机制类似先从初始训练集训练出一个弱学习器,再根据学习器的表现对训练样本分布进行调整(通过改变样本概率从而实现改变样本分布),使得先前弱学习器做错的的训练样本在后续学习中得到更多关注,如此重复进行,知道学习器数目达到指定值T,最终将这T个基学习器进行加权组合。
Leslie Valiant首先提出了“强可学习(strongly learnable)”和”弱可学习(weakly learnable)”的概念,并且指出:在概率近似正确(probably approximately correct, PAC)学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的,如果正确率不高,仅仅比随即猜测略好,那么就称这个概念是弱可学习的。2010年的图灵奖给了L. Valiant,以表彰他的PAC理论。非常有趣的是Schapire后来证明强可学习与弱可学习是等价的,也就是说,在PAC学习的框架下,一个概念是强可学习的充要条件是这个概念是可学习的。
这样一来,问题便成为,在学习中,如果已经发现了“弱学习算法”,那么能否将它提升(boost)为”强学习算法”。大家知道,发现弱学习算法通常比发现强学习算法容易得多。那么如何具体实施提升,便成为开发提升方法时所要解决的问题。关于提升方法的研究很多,有很多算法被提出。最具代表性的是AdaBoost算法(Adaptive Boosting Algorithm),可以说,AdaBoost实现了PAC的理想。
大多数的提升方法都是改变训练数据的概率分布(训练数据中的各个数据点的权值分布),调用弱学习算法得到一个弱分类器,再改变训练数据的概率分布,再调用弱学习算法得到一个弱分类器,如此反复,得到一系列弱分类器。
代表性的提升算法有Adaboost(adaptive boosting)
Adaboost是1995年由Freund和Schapire提出的,Boosting Tree(提升树)是2000年由Fridman等人提出的。选取的是指数损失函数,
AdaBoost的运行过程如下:训练数据中的每个样本,并赋予其一个权重,这些权重构成向量D。一开始,这些权重都初始化成想等值。首先在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本的权重将会提高。(迭代样本的权重)
为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器都分配了一个权重值alpha, 这些alpha是基于每个弱分类器的错误率ε进行计算的。(弱分类器权重的确定)
alpha的计算公司:α = 0.5 * ln[(1-ε) / ε],很明显,当错误率ε越大时,分类器的权重α就越小;
计算出alpha后,可以对权重向量进行更新,以使得那些正确分类的样本权重降低,错误样本权重升高。计算方法如下:
Wt,i代表第t个学习器,对测试集中的第i个样本的权重值;
AdaBoost的例子
接下来,给定下边的数据集D,我们用AdaBoost算法来学习得到一个强分类器
数据集D共有10条数据,根据x的输入得到的y可以分类两类,即y=1与y=-1。我们每一轮使用最简单的决策树桩来构建基分类器,即每轮设定一个阈值θ,只要x<θ,就判定为正类(y=1),x>θ就判定为负类(y=-1)。
因为是第一轮,故所有样本的权重相同:
第一轮训练完成后对进行更新得到,更新公式的推导过程也是等到后边的推到部分再说,此处还是只要知道通过下边的公式来计算更新即可:
上一轮中x=6、7、8的点分错了,可以看到这三个点在中的权重变大了,而其余分类正确的点权重变小了。
第二轮训练完成后对进行更新得到,更新公式的推导过程也是等到后边的推到部分再说,此处还是只要知道通过下边的公式来计算更新即可:
其中
上一轮中x=3、4、5的点被分错,所以在中的权重变大,其余分类正确的点权重变小。
弱分类器错误率和样本权重迭代公式的证明:
(1)分类器权重alpha公式的推导
2)样本权重矩阵D迭代公式的推导 :
按照以上思路自己全部动手推到了一遍,一些细节部分做了上下承接;
参考:
https://www.cnblogs.com/willnote/p/6801496.html
https://blog.csdn.net/zhuzuwei/article/details/80538060