没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
Li Junli 李军利 / 12th May 2019
集成学习
集成学习(Ensemble Learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得
比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习
器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,
进行集成后获得一个精度较好的"强学习器"。
随着集成学习研究的深入,其广义的定义逐渐被学者们所接受,它是指对多个学习器集合采用学习的方式,而不对
学习器性质加以区分。根据这一定义,多学习器系统 (multi-classifier system) 、多专家混合 (mixture of experts)
以及基于委员会的学习 (committee-based learning)等多个领域都可以纳入到集成学习中。但当前仍然以同质分类
器的集成学习研究居多。
集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些
个体学习器集合成一个强学习器。
具有代表性的集成学习方法有Boosting(减少偏差),Bagging(减少方差),Stacking(提升预测结果)。
1. 理论支持
集成学习的理论基础是 PAC 理论、强可学习与弱可学习理论(强可学习与弱可学习是等价的,即:一个概念是强
可学习的充要条件是这个概念是弱可学习的)。Kearns和Valiant提出了“强可学习”(strongly learnable)和“弱可
学习”(weakly learnable):在概率近似正确(probably approximately correct,PAC)学习框架下,一个概念
如果存在多项式的学习算法学习它,并且正确率很高,那么这个概念就被称为强可学习的;一个概念,如果存在多
项式的学习算法学习它,并且正确率只比随机猜测好一点,那么这个概念称为弱可学习的。后来Scphaire证明,强
可学习和若可学习是等价的。
对于分类问题而言,给定一个训练样本,求比较粗糙的分类规则比求精确的分类规则要容易得多。既然强可学习和
若可学习是等价的,那么可以通过先找到一些弱分类器,然后寻求将这些弱分类器提升为强分类器的方法,这便是
boosting的由来。
具体地,Thomas G. Dietterich[3-5]指出了集成算法在统计,计算和表示上的有效原因:
统计上的原因
一个学习算法可以理解为在一个假设空间 H 中选找到一个最好的假设。但是,当训练样本的数据量小到不够用来精
确的学习到目标假设时,学习算法可以找到很多满足训练样本的分类器。所以,学习算法选择任何一个分类器都会
面临一定错误分类的风险,因此将多个假设集成起来可以降低选择错误分类器的风险。
计算上的原因
很多学习算法在进行最优化搜索时很有可能陷入局部最优的错误中,因此对于学习算法而言很难得到一个全局最优
的假设。事实上人工神经网络和决策树已经被证实为是一 个 NP 问题[6, 7]。集成算法可以从多个起始点进行局部
搜索,从而分散陷入局部最优的风险。
表示上的原因
在多数应用场景中,假设空间 H 中的任意一个假设都无法表示 (或近似表示) 真正的分类函数 f。因此,对于不同的
假设条件,通过加权的形式可以扩大假设空间,从而学习算法可以在一个无法表示或近似表示真正分类函数 f 的假
设空间中找到一个逼近函数 f 的近似值。
2. 个体学习器
集成学习的第一个问题就是如何得到若干个个体学习器。具体有两种选择。第一种就是所有的个体学习器都是一个
种类的,或者说是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。第二种是所有的个体学习
器不全是一个种类的,或者说是异质的。比如有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个
体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。
目前来说,同质个体学习器的应用是最广泛的,一般常说的集成学习的方法都是指的同质个体学习器。而同质个体
学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系可以分
为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting
系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging系
列算法。
3. 组合策略
假定第一步找到了 m个弱学习器 {f
1
, f
2
, ... f
m
},集成学习有3种组合策略。
3.1 平均法
对于数值类的回归预测问题,通常使用的结合策略是平均法,也就是说,对于若干个弱学习器的输出进行平均得到
最终的预测输出。最简单的平均是算术平均,最终预测是:
如果每个个体学习器有一个权重w,则最终预测是:
其中wi是个体学习器hi的权重,通常有:
,
3.2 投票法
对于分类问题的预测,我们通常使用的是投票法。假设我们的预测类别是{c
1
, c
2
, ..., c
k
},对于任意一个预测样本
x,m个弱学习器的预测结果分别是{f
1
(x), f
2
(x), ... f
m
(x)}。
最简单的投票法是相对多数投票法(少数服从多数),也就是T个弱学习器的对样本x的预测结果中,数量最多的类别
x
i
为最终的分类类别。如果不止一个类别获得最高票,则随机选择一个做最终类别。
稍微复杂的投票法是绝对多数投票法,也就是我们常说的要票过半数。在相对多数投票法的基础上,不光要求获得
最高票,还要求票过半数。否则会拒绝预测。
更加复杂的是加权投票法,和加权平均法一样,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权
票数求和,最大的值对应的类别为最终类别。
3.3 学习法
平均法和投票法 都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大,于是就有了学习
法这种方法,对于学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简
单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出
作为输出,重新训练一个学习器来得到最终结果。在这种情况下,弱学习器称为初级学习器,将用于结合的学习器
称为次级学习器。对于测试集,首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一
次,得到最终的预测结果。
4. Bagging
Bagging 和 Boosting 是集成学习的两大流派,Bagging的特点是各个弱学习器间没有依赖关系,可以并行拟合。
随机森林(RF:Random Forest)继承了Bagging思想,并采取了一些优化措施。
随机森林可以很方便的并行训练,在如今大数据,大样本的的时代很有诱惑力。
4.1 Bagging原理
Bagging (Boostrap Aggregating) 是由 Breiman于 1996 年提出的[9]。
基本步骤:
流程示意图:
1. 每次采用有放回的抽样从训练集中取出 m个训练样本组成新的训练集。
2. 利用新的训练集,训练得到 n个子模型 {h1,h2,...,hn}。
3. 对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;对于回归问题,采用简单的平均方法
得到预测值。
从上图可以看出,Bagging的弱学习器之间的确没有boosting那样的联系。它的特点在“随机采样”。
随机采样(bootsrap)就是从训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,
之前采集到的样本在放回后有可能继续被采集到。假设训练集样本数为m,Bagging算法,一般会随机采集和训练
集样本数m同样个数的样本,这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果对有m个样本
的训练集做n次的随机采样,则由于随机性,n个采样集各不相同。
注意 这与GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。
对于任意一个样本x,在包含m个样本的训练集的随机采样中:
采 到 ; 没 采 到 ;
在Bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中,即每个学习器仅用到了训练集
中 63.2% 的数据集,剩余的 36.8% 的训练集样本可以用作验证集对于学习器的泛化能力进行包外估计 (out-of-bag
estimate)。
伪代码[3]:
剩余18页未读,继续阅读
我就是月下
- 粉丝: 25
- 资源: 336
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0