In statistics and machine learning,ensemble methods use multiple learning algorithms to obtain better predictive performance than could be obtained from any of the constituent learning algorithms alone–wiki
在统计和机器学习中,集成方法使用多种学习算法来拥有比任何单个学习算法更好的预测性能。
集成模型基本的原理是一群弱学习器组合形成一个强学习器,这增加了模型的稳定性。当我们试图使用任何机器学习的技术去预测目标变量,使得实际和预测值不同的主要原因是噪音,方差和偏差。集合减少了除噪音外的其他两个因素。
对于给定的问题,最合适的分类器是什么?这个问题大概可以从下面两个方面来考虑: 1)在众多模型中选择哪种分类器,例如多层感知器(Multilayer Perceptron,MLP),支持向量机(SVM),决策树,贝叶斯等; 2)对于给定的分类算法,应该选择算法的哪种实现方式。例如,即使所有的其他参数保持不变,MLP的不同初始化也会产生不同的决策边界。
在选择分类器的时候,我们通常会选择在训练数据上得到的误差最小的那一个分类器。
对于那些分类器在他们所用的训练数据集上的表现来说,即使使用了交叉验证的方法,在对没有训练过的数据进行分类预测时,其结果也可能不是那么准确(反而是对接近真实结果的一种误导)。那么我们可能会得到一个仅是对于他的训练集这些数据有较好分类性能的分类器,也就是说得到一个有缺陷的分类器。
在所有的可能具有相同训练的分类器中,或者甚至在验证数据集(validation data)上计算出相同的泛化性能,那么应该选择哪一个呢?在其他所有条件相同的情况下,人们可能会随机选择,随机选择的结果就可能会选择那个特别差的模型。
那么我们可以使用模型的集合,而不是选择其中的一个,并且结合他们的输出进行简单的组合,可以减少不幸选择一个性能特别差的分类器的风险。
这样并不能保证多个分类器的组合总是比最好的单个的分类器要表现更好。但确实是减少了选择一个特别差的模型的风险。
为了使集成这个过程变得有效,各个分类器需要在他们之间展示一定程度的多样性。分类器的多样性,通常通过每个分类器使用不同训练参数来实现,可以使单个分类器产生不同的决策边界。
如果实现了合适的多样化,那么通过战略性地组合这些分类器最后,每个分类器产生的错误的总和将会被减少。下图形象地解释了这个概念,图中每个分类器(在可用训练数据集的子集上进行训练)会产生不同的错误(图中黑色边框标记的实例),但是三个分类器结合后,整体提供了最佳的决策边界。
图一、为减少分类和模型选择错误而组合多个分类器
分而治之(Divide and Conquer)
图二、一个不能被圆形边界实现的复杂决策边界
举个例子,假设我们现在有一个可以产生圆形边界的分类器。这样的分类器不能习得如图二所示的边界。现在考虑由一组图三所示的分类器产生的圆形决策边界的集合,其中每个分类器基于样本是落入它的边界内还在边界外把数据标记为O类或X类。
一个基于大多数(足够多数量的)这种分类器的投票所得的决定,可以很容易地学习到这种复杂的非圆形边界的分类器,这取决于: I) 分类器的输出是独立的 II) 至少有一半的分类器正确地对一个样本进行分类。
从某种意义上说,分类系统遵循分而治之的方法:通过将数据空间划分为更小的和更容易学习的部分,其中每个分类器只学习一个简单分区。然后,可以通过将不同分类器适当地组合来近视得到复杂决策的边界。
图三、通过组合一些圆形边界来实现这个复杂的边界
数据融合(Data Fusion)
在许多自动做决策的应用中,经常会从不同的来源获得数据,这些数据可能会提供一些补充信息,适当地结合这些信息被称为数据融合(data fusion)或者信息融合(information fusion),与单独基于任何单个信息来源来的决策相比,数据融合有助于提高分类决策的准确性。
例如,为了诊断神经系统疾病,神经科医生可能会使用脑电图(一维时间序列数据),核磁共振成像MRI,或正电子发射扫描图像(PET扫描图像)(二维空间数据),脑脊液中某些化学物质的含量,以及受试者的人口统计信息,例如年龄、性别、受试者的受试者的教育程度等(标量或分类值)。这些异类特征不能一起用于训练单个分类器。在这种情况下,可以使用一组分类器,其中每个特征集上分别训练一个单独的分类器。然后通一些结合规则来组合每个分类器并做出决策。
置信度估计(Confidence Estimation)
根据集成算法的组合方式可以分为三种:
1. 平行组合学习(Parallel Ensemble Learning (Bagging)):
l Bagging 是一种机器学习集合元算法,主要用于提高以分类和拟合为目的的机器学习算法的强度和精确度。它减少了数据的波动(方差),有助于避免过拟合。 l 并行集合方法中,基础学习器是并行产生的。
2. 顺序集成学习(Sequential Ensemble learning(Boosting)):
l 算法:AdaBoost,Stochastic Gradient Boosting
3. 堆叠 & 混合(Stacking & Blending):
l 使用混合predictor把预测的结果加起来。Stacking 是组合多种模型的一种方式,它引入了元学习器(meta-learner)的概念,但它没有像bagging和boosting那样用得比较广泛。和Bagging及boosting不一样,stacking是用来结合不同类型的模型。
l 步骤如下: 1. 将训练集分成两个不相交的集 2. 在第一部分上训练一些基础学习器 3. 在第二部分上测试这些基础学习器 4. 使用3步的预测作为输入,并使用正确的响应作为输出,可以训练更高水平的学习器。
l 算法:Voting Classifier 投票分类器。
l 混合是一种我们可以对最终结果进行加权平均的技术。
后面会分别介绍这三种 ensemble methods