个体与集成
集成学习(ensemble learning )是通过构建结合多个学习器来完成任务,或者被称为多分类器系统。其作用是比起单个学习器从而获得更好的泛化性能。
同质集成:包含同种类型的个体集成器,同质集成中包含的个体学习器被称为“基学习器”,相应的学习算法被称为“基学习算法”。
异质集成:有不同学习算法生成或者学习器生成。
目前学习器分为两大类,分别是个体学习器有着强依赖关系、必须串行生成的蓄力化方法;个体学习器不存在强依赖关系、可以同时生成并行化的方法;前者代表是Boosting, 后者代表是Bagging 和“随机森林”
一、Boosting
Boosting 工作机制:首先从初始训练集训练出一个基学习器,再根据基学习器的表现对样本的分布进行调整,是的先前的基学习器做错的训练样本在后续得到更大的关注。在调整后的样本分布再来训练下一个基学习器;如此反复,知道达到事先指定的值T,最终将T个基学习器进行加权结合。(这里需要关注的是如何进行分布调整?),Boosting族算法最著名的代表是AdaBoost
AdaBoost:
加权模型:
H
(
x
)
=
∑
t
=
1
T
α
t
h
t
(
x
)
H(\boldsymbol{x})=\sum_{t=1}^{T} \alpha_{t} h_{t}(\boldsymbol{x})
H(x)=t=1∑Tαtht(x)
这里进行优化用到了指数损失函数。这里用到的指数损失函数可以很好的替代原来的0/1,可以微分,具有更好的数学性能。
Boosting算法要求基学习器能对特定的数据分布进行学习,可以通过“重赋值法”进行实施,在训练过程的每一轮中,根据样本的分布为每个训练样本重新赋予一个权重。对无法接受权重样本的基学习算法,则可以通过“重采样法”来进行处理。
二、Bagging
Bagging是并行式集成学习方法著名代表,其采用自主采样法(bootstrap sampling),即给定包含 m 个样本数据集,我们先随机选取一个样本放入采样集中,再把该样本放回初始数据集中,这样下次采样时该样本仍有可能被选取。经过 m 次随机采样操作,我们得到包含 m 个样本采样集。我们进行T次采样操作,得到T个包含 m 个样本的采样集。
Bagging 基于每个采样集进行训练一个基学习器,再将这些基学习器进行结合。结合方式可以采取简单的投票方法,也可以采取简单的平均方法。
标准的AdaBoost 只适用于二分类任务,而Bagging适用于多分类以及回归任务。 而且Bagging更主要关注降低方差。
三、随机森林
随机森林(Random Forest ,简称 RF),是Bagging的一个扩展变体。RF在以决策树作为基础的基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入一个随机属性选择。就是在当前 d 个属性中随机选择 k k 个属性,然后再选取一个最优属性。
四、结合策略
- 平均法
- 加权法
- 投票法:绝对多数投票法;相对多数投票法;加权绝对多数投票法。
- 同过学习器进行结合:个体学习器称之为初级学习器,用于结合的学习器称之为次级学习器或者元学习器。次级训练集是利用初级学习器产生的,通常使用训练初级学习器未使用的样本来产生次级学习器读的训练样本。
五、多样性
多个基学习器之间和集成学习器之间的差异性,以及不同基学习器之间的多样性。
多样性度量:
- 不合度量
- 相关系数
- Q-统计量
- k-统计量
多样性增强:
- 数据样本扰动
- 输入属性扰动
- 输出表示扰动
- 算法参数扰动