集成学习

集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习器"。

定义

集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。一般而言,通常所说的集成学习中的多个学习器都是同质的"弱学习器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,进行集成后获得一个精度较好的"强学习器"。

随着集成学习研究的深入,其广义的定义逐渐被学者们所接受,它是指对多个学习器集合采用学习的方式,而不对学习器性质加以区分。根据这一定义,多学习器系统 (multi-classifier system) 、多专家混合 (mixture of experts) 以及基于委员会的学习 (committee-based learning)等多个领域都可以纳入到集成学习中。但当前仍然以同质分类器的集成学习研究居多。

基本理论

集成学习的主要发展过程见图1。

集成学习的理论基础是 PAC 理论、强可学习与弱可学习理论。集成学习的理论基础表明强可学习器与弱可学习器是等价的,因此可以寻找方法将弱可学习器转换为强可学习器,而不必去直接寻找较难发现的强可学习器。具有代表性的集成学习方法有Boosting,Bagging,随机森林。

以三分类问题为例,假如有个分类器相互独立,错误率都为,使用简单的投票法组合分类器,其分类器的错误率为:

从上式可看出, 时,错误率随增大而减少。如果每个分类器的错误率都小于,且相互独立,那么集成学习器个数越多,错误率越小,无穷大时,错误率为0。

另外以表为例,代表分类正确,代表分类错误,集成方法为简单投票。从表1中可看出,只有当个体分类器"好而不同"时,集成才能发挥作用。因此,集成学习的关键在于多个学习器的两个指标,即"精确性"和"多样性"。

集成方法

Boosting

各种不同的Boosting算法有很多,但最具代表性的当属AdaBoost算法,而且各种不同Boosting算法都是在AdaBoost算法的基础上发展起来的。因此下面以AdaBoost算法为例,对Boosting算法进行简单的介绍。

首先给出任意一个弱学习算法和训练集,其中,,表示某个域或实例空间,在分类问题中是一个带类别标志的集合。

初始化时,Adaboost为训练集指定分布为,即每个训练例的权重都相同为。接着,调用弱学习算法进行T次迭代,每次迭代后,按照训练结果更新训练集上的分布,对于训练失败的训练例赋予较大的权重,使得下一次迭代更加关注这些训练例,从而得到一个预测函数序列,对每个预测函数也赋予一个权重,预测效果好的,相应的权重越大。T次迭代之后,在分类问题中最终的预测函数采用带权重的投票法产生。单个弱学习器的学习准确率不高,经过运用Boosting算法之后,最终结果准确率将得到提高。

Bagging

Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术,主要思想是分别训练几个不同的模型,然后让所有模型表决出测试样例的输出。这是机器学习常规策略的一个例子,被称为 模型平均。模型平均奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差。

如上图,Bagging涉及构造T个不同的数据集。每个数据集从原始数据集中重复采样构成,和原始数据集具有相同数量的样例。这意味着,每个数据集以高概率缺少一些来自原始数据集的例子,还包含若干重复的例子(如果所得训练集与原始数据集大小相同,那所得数据集中大概有原始数据集的实例)。模型i在数据集i上训练。每个数据集所含样本的差异导致了训练模型之间的差异。

随机森林

随机森林是2001年由Leo Breiman将Bagging集成学习理论与随机子空间方法相结合,提出的一种机器学习算法。随机森林是以决策树为基分类器的一个集成学习模型,它包含多个由Bagging集成学习技术训练得到的决策树,当输入待分类的样本时,最终的分类结果由单个决策树的输出结果投票决定。随机森林解决了决策树性能瓶颈的问题,对噪声和异常值有较好的容忍性,对高维数据分类问题具有良好的可扩展性和并行性。此外,随机森林是由数据驱动的一种非参数分类方法,只需通过对给定样本的学习训练分类规则,并不需要先验知识。

参考资料

友情链接