第八章 集成学习

集成学习的概念

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统。也即将多个“个体学习器”通过某策略结合成“学习委员会”,故也称为基于委员会的学习。

如何产生和结合“好而不同”的个体学习器,是集成学习的核心。好代表个体学习器要有一定的准确率,而不同代表个体学习器之间要对同一组数据有不同的结果。


随着集成中个体分类器数目T增加,集成的错误率将下降,最后趋向于零。
上述问题的关键假设:

  • 基学习器的误差是互相独立的,但在现实人物中,个体学习器都是针对同一问题的,显然不会互相独立;

个体学习器的差异性和准确性是矛盾的,一般来讲,当准确性很高时,就要牺牲准确性才能增加差异性(多样性).

分类

一般来说集成学习可以分为三大类:
1、用于减少方差的Bagging、Random Forest;(个体分类器不存在强依赖关系、可同时生成的并行化方法)
2、用于减少偏差的Boosting;(个体分类器存在强依赖关系、串行生成的序列化方法)
3、用于提高预测结果的stacking。

Boosting(AdaBoost算法)

Boosting是一族可将弱学习器提升为强学习器的算法。其工作机制:首先从初始训练集用初始权重训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整权重,使得先前基学习器学习误差率高的训练样本点的权重提高,使得这些训练样本在后续受到更大的关注。然后基于调整权重后的训练集来训练下一个基学习器,反复进行,直到基学习器数目达到T值,最后将T个基学习器进行加权结合。
其中最具有代表性的便是AdaBoost算法。
其过程如下:

Bagging

Bagging是并行式集成学习方法最著名的代表,Bagging是引导聚合的意思。其给每个个体分类器提供不同的训练集,用训练集的不同子集训T个不同的树然后计算最后的结果,其直接基于第二章所介绍的自助采样法。
1、每轮从初始训练集中用自助采样法抽取m个训练样本,进行T次抽取,得到T个训练集;
2、每次用一个训练集训练一个模型,得到T个模型;
3、对于分类:T个模型采用投票方式(将各个分类器得到的结果进行汇总,选择得票最多的那个结果为预测结果)得到分类结果;对于回归:计算T个模型的均值作为最后结果。


随机森林(Random Forest)

随机森林是Bagging的一个扩展变体,RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说就是传统决策树每次在选择划分属性时,都是在当前结点的所有可能中挑选最优划分属性,而随机森林则是从中挑选出k个属性,再从这些属性中选择出最优划分属性,若挑选属性个数为所有可能的属性数目d,即k=d,则就是传统决策树的Bagging;若k=1,则是完全随机选择一个属性划分。一般推荐选择数目为.

学习器的结合策略

学习器结合三个方面带来好处:
1、结合多个学习器能够减小使用单学习器可能因误选而导致泛化性能不佳的风险(假设空间大);
2、学习算法往往会陷入局部最小,而无法跳出,通过多次运算之后再结合,可降低进入局部极小点的风险;

3、如果单个学习器,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间,于是该学习器是无效的,而结合多个学习器,则增大假设空间,使得学习有更好的效果。

对于学习器的结合策略,有三种方法:
1、平均法:即对不同的学习器输出进行求和平均,有简单平均法和加权平均法两种方式,当个体学习器性能相差较大时适用加权平均法,反之则适合使用简单平均法;
2、投票法:用于分类任务。有绝对多数投票法(投票过半则取值,反之拒绝预测)、相对多数投票法(获票最多的分类作为输出)、加权投票法(选择加权投票后值最多的分类作为输出);

3、学习法:Stacking是学习法的典型代表,先从初始数据集中训练出初始学习器,然后生成一个新的数据集用于训练次级学习器,在新数据集中,初始学习器的输出作为样例输入特征,而初始样本的标记仍被当作样例标记。(使用多响应线性回归作为次级学习算法)

多样性

误差-分歧分解

其过程的推导不进行赘述了。
以下是最终分解的结果:


从这个式子我们看到个体学习器的准确率越高,多样性越大,则集成越好。
该公式的推导只适用于回归学习,对于分类学习任务比较难以推广。
对于分类任务,我们采用多样性度量来进行计数。

多样性度量

以二分类为例子,假设有两个分类器:


于是基于上表,有以下的多样性度量:
1、不合度度量:

2、相关系数:

3、Q-统计量:

4、K(kappa)-统计量:

其中p1是两个分类器取得一致的概率,p2是两个分类器偶然达成一致的概率。

多样性增强

增强多样性的集中常用策略:
1、输入属性扰动:简单做法可以仅仅从特征中取出一个子集,根本来讲是从高维属性空间投影到低维属性空间,将此投影作为输入;(适用于数据包含大量冗余属性)
2、输出表示扰动:对输出的表示进行操纵以增强多样性;
3、数据样本扰动:给定初始数据集,可从中产生出不同的数据子集,再利用不同的数据子集训练出不同的个体学习器;
4、算法参数扰动:随即设置不同的参数来得到不同的基学习器。(参数如神经网络的隐层结点数、连接权等)

不同的多样性增强策略可以同时使用以增强效果,比如随机森林算法同时使用了数据扰动和输入属性扰动两种策略。

你可能感兴趣的:(第八章 集成学习)