赞
踩
简单来说,集成学习(Ensemble Learning)就是指采用多个弱分类器组成一个强分类器,然后,对数据进行预测,提高整个分类器的泛化能力。这里的弱分类器可以非常弱,只要其准确率大于50%就可以(即比随意猜的准确率大就可以)
和传统学习方法训练一个学习器不同,集成学习方法训练多个学习器并结合它们来解决一个问题。通常,集成学习也被称为基于委员会的学习或多分类器系统。
一个集成由多个基学习器构成,而基学习器由基学习算法在训练数据上训练获得,它们可以是决策树、神经网络或其他学习算法。下图给出一个通用的集成学习框架:
通常,集成具有比基学习器更强的泛化能力。实际上,集成学习之所以那么受关注,很大程度上是因为它们能够把比随机猜稍好的弱学习器变成可以精确预测的强学习器。因此,在集成学习中基学习器也称为弱学习器。
在集成学习中有两个主要的问题需要解决,第一是如何得到若干个基学习器,第二是如何选择一种结合策略,将若干个基学习器集成为一个强学习器.
对于如何得到基学习器,我们一般有两种选择:
目前来说,同质集成的应用是最广泛的,一般我们常说的集成学习的方法都是指的同质基学习器.而同质个体学习器使用最多的模型是CART决策树和神经网络.
根据基学习器的生成方式,集成学习方法有两种范式:
Bagging采用自助采样法,通过随机改变训练集的分布产生新的训练子集,然后分别用不同的训练子集来训练生成基学习器,最后将其集成为一个整体.
具体来讲,给定一个样本数为m的训练集合,它通过有放回的采用得到有m个训练样本的采样集.原始样本有的被选中多次,有的未被选中.重复过程T次,得到T个样本数目为m的训练子集,对每个训练子集使用基学习算法训练得到一个基分类器.
bagging采用最常用的方法来聚合基学习器,即:在分类任务上投票,在回归任务上取均值.
下面给出Bagging算法流程图:
Boosting算法是一种将弱学习器转换为强学习器的迭代方法,它通过增加迭代次数,产生一个表现接近完美的强学习器.其中,弱学习器是指分类效果只比随机猜测效果稍好的学习器,即分类准确率略高于50%. 在实际训练中,获得一个弱学习器比获得一个强学习器更加容易.
下图给出Boosting算法流程图:
如图所示,Boosting算法反复运行一个弱学习器来处理不同分布的训练数据,然后按照顺序将每次产生的弱学习器组合成一个强学习器.
简单平均法:直接对个体学习器的输出取均值来获取结合输出结果。
H
(
x
)
=
1
T
∑
i
=
1
T
h
i
(
x
)
H(x)=\frac{1}{T}\sum_{i=1}^T h_{i}(x)
H(x)=T1i=1∑Thi(x)
加权平均法:通过对每一个学习器的输出结果赋予不同的重要性权重来获取结合结果。
H
(
x
)
=
∑
i
=
1
T
w
i
h
i
(
x
)
H(x)=\sum_{i=1}^T w_{i}h_{i}(x)
H(x)=i=1∑Twihi(x)
其中,
w
i
w_{i}
wi表示
h
i
h_{i}
hi的权重,通常带有约束
w
i
≥
0
w_{i}\ge0
wi≥0 且
∑
i
=
1
T
w
i
=
1
\sum_{i=1}^{T}w_{i}=1
∑i=1Twi=1
绝对多数投票法是最常用的投票方法。其中,每个分类器都会给一个类别标记进行投票,最终的输出类别标记为获取票数过半的标记;如果所有类别标记获取票数均不过半,则拒绝预测。
相对多数投票法仅需获胜方获取票数最多即可,如果平票则任选一个。
当个体分类器的性能差别较大时,赋予性能强的分类器更高的权重是合理的。
当赋予的权重合适时,加权投票法可以做到既优于最优的个体分类器,又优于绝对多数投票法。
前两种方法,均值法和投票法都相对比较简单,可能会存在误差较大的时候。于是就有了学习法,最具代表性的方法就是stacking。(有待完善)
《机器学习》 – 周志华
《集成学习》 – 周志华、李楠
机器学习之集成学习(ensemble learning)
集成学习(ensemble learning)原理详解
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。