1. 集成学习
集成学习(ensemble learning)是现在非常火爆的机器学习方法。它本身不是一个单独的机器学
习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集
成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有
的机器学习领域都可以看到集成学习的身影。
集成学习通过建立几个模型来解决单⼀预测问题。它的⼯作原理是⽣成多个分类器/模型,各自独
立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何⼀个单分类的做出预测。
只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的。
对于训练集数据,通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强
学习器,以达到博采众长的目的。集成学习有两个主要的问题需要解决,第一是如何得到若干个个
体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。
2. 集成学习例子
对下面实例D1进行分类,得到两个分类结果h1和h2:
对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能:
定义:集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得
比单个学习器更好的学习效果的一种机器学习方法。如果把单个分类器比作一个决策者的话,集成
学习的方法就相当于多个决策者共同进行一项决策。
在概率近似正确(PAC)学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能
够学习它,如果正确率很高,那么就称这个概念是强可学习(strongly learnable)的。如果正确率
不高,仅仅比随机猜测略好,那么就称这个概念是弱可学习(weakly learnable)的。后来证明强
可学习与弱可学习是等价的。
3. 解决的问题
3.1 弱分类器之间的关系
第一种就是所有的个体学习器都是一个种类的,或者说是同质的。
第二种是所有的个体学习器不全是一个种类的,或者说是异质的。
个体学习器有两种选择:
第一种就是所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或
者都是神经网络个体学习器。
第二种是所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训
练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某
种结合策略来确定最终的分类强学习器。
目前而言,同质个体学习器应用最广泛,一般常说的集成学习的方法都是指的同质个体学习器。而
同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间
是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基
本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,
一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。
3.2 如何选择个体学习器
考虑准确性和多样性:
准确性指的是个体学习器不能太差,要有一定的准确度;
多样性则是个体学习器之间的输出要具有差异性。
3.3 弱分类器的组合策略
①平均法:对于数值类的回归预测问题
思想:对于若干个弱学习器的输出进行平均得到最终的预测输出。
其中wi是个体学习器hi的权重,通常有wi≥0,
②投票法:对于分类问题的预测
思想:多个基本分类器都进行分类预测,然后根据分类结果用某种投票的原则进行投票表决,按照
投票原则使用不同投票法:一票否决 、阈值表决 、 少数服从多数。
阈值表决:首先统计出把实例x划分为Ci和不划分为Ci的分类器数目分别是多少,然后当这两者比
例超过某个阈值的时候把x划分到Ci。
③学习法:之前的方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差
较大。代表方法是Stacking。
思想:不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,分为2层。第一层是用
不同的算法形成T个弱分类器,同时产生一个与原数据集大小相同的新数据集,利用这个新数据集
和一个新算法构成第二层的分类器。
4. 集成学习方法
根据个体学习器的生成方式,目前的集成学习方法大致可分为两类:
Boosting:个体学习器间存在强依赖关系,必须串行生成的序列化方法;串行:下一个分类器只
在前一个分类器预测不够准的实例上进行训练或检验。
Bagging:个体学习器间不存在强依赖关系,可同时生成的并行化方法。并行:所有的弱分类器都
给出各自的预测结果,通过组合把这些预测结果转化为最终结果。
4.1 Boosting
重赋权法:即在训练过程的每一轮中,根据样本分布为每一个训练样本重新赋予一个权重。对无法
接受带权样本的基学习算法,则可以通过重采样法来处理,即在每一轮的学习中,根据样本分布对
训练集重新进行采样,在用重采样而来的样本集对基学习器进行训练。
代表算法:
Adboost,决策树+adboost=提升树
GBDT(Gradient BoostDecision Tree)梯度提升决策树,决策树+Gradient Boosting=GBDT
其他叫法: Gradient Tree Boosting,GBRT (Gradient BoostRegression Tree) 梯度提升回归树
MART (MultipleAdditive Regression Tree) 多决策回归树,Tree Net决策树网络
4.2 Bagging (bootstrap aggregation )
从样本集中用Bootstrap采样选出n个样本,在所有属性上,对这n个样本建立分类器(CART or
SVM or ...),重复以上两步m次,i.e.build m个分类器(CART or SVM or ...)。将数据放在这m
个分类器上跑,最后vote看到底分到哪一类。
Bootstrap方法是非常有用的一种统计学上的估计方法。 Bootstrap是对观测信息进行再抽样,进而
对总体的分布特性进行统计推断。Bootstrap是一种有放回的重复抽样方法,抽样策略就是简单的
随机抽样。
随机森林:决策树+bagging=随机森林
4.3 两者的区别
从偏差-方差分解的角度:
偏差(bias) :描述的是预测值的期望与真实值之间的差距。偏差越大,越偏离真实数据。
方差(variance) :描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。
方差越大,数据的分布越分散。
Boosting主要关注降低偏差:偏差刻画了学习算法本身的拟合能力,Boosting思想,对判断错误的
样本不停的加大权重,为了更好地拟合当前数据,所以降低了偏差,因此Boosting能基于泛化性能
相当弱的学习器构建出很强的集成。Boosting是把许多弱的分类器组合成一个强的分类器。
Bagging主要是降低方差:度量了同样大小的数据集的变动所导致的学习性能的变化。刻画了数据
扰动所造成的影响。 Bagging思想,随机选择部分样本来训练处理不同的模型,再综合来减小方
差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更明显。Bagging是对许多
强(甚至过强)的分类器求平均。