网站首页 > 技术文章 正文
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??
在统计和机器学习中,集成方法使用多种学习算法来拥有比任何单个学习算法更好的预测性能。
??集成模型基本的原理是一群弱学习器组合形成一个强学习器,这增加了模型的稳定性。当我们试图使用任何机器学习的技术去预测目标变量,使得实际和预测值不同的主要原因是噪音,方差和偏差。集合减少了除噪音外的其他两个因素。
??集成学习(ensemble learning) 是战略性地生成并组合多个模型用来解决特定的问题的过程。主要是用来提高模型的分类(classification)、预测(prediction)、函数估计(function approximation)等性能,减少选择不良模型的可能性。集成学习的其它应用还包括:为模型做出的决策评估其自信度(confidence),选择最优(或接近最优)特征,数据融合,增量学习,非平稳学习和纠错。
??对于给定的问题,最合适的分类器是什么?这个问题大概可以从下面两个方面来考虑:
??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 并行集合方法中,基础学习器是并行产生的。
????l 算法:随机森林(Random Forest)、bagged 决策树(Bagged Decision Trees)、Extra Trees。
??2. 顺序集成学习(Sequential Ensemble learning(Boosting)):
????l Boosting 是一种机器学习集成元算法,主要用于减少偏差,并进一步减少监督学习中的差异,以及将一组弱的学习器转换为强的学习器的机器学习算法。
????l 顺序集合方法中的基础学习器是按顺序产生的。
????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
猜你喜欢
- 2024-10-01 机器学习100天-Day1803随机森林 随机森林算法详解
- 2024-10-01 「机器学习」自动调参器设计实现 自动调参法
- 2024-10-01 boosting 原理 boost模型原理
- 2024-10-01 机器学习入门精讲,这40个知识点不可错过(一)
- 2024-10-01 Python 数据分析实例——集成方法
- 2024-10-01 机器学习入门精讲,这40个知识点不可错过(1)
- 2024-10-01 人工智能科普|机器学习入门精讲,这40个知识点不可错过(1)
- 2024-10-01 「五分钟机器学习」集成学习——Ensemble Learning
- 2024-10-01 Day95:集成学习(Ensemble Learning)
- 2024-10-01 Ensemble Learning(集成学习) 集成学习ensemble learning
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)