想象一下,您正在网上购物,并且您注意到有两家商店出售相同的商品并且它们具有相同的评级。不过第一个只有一个人打分,第二个有100个人打分。你更相信哪个评级?你最终会选择购买哪种产品?大多数人的答案很简单。100个人的意见绝对比一个人的意见更可信。这被称为“人群的智慧”,这就是集成方法起作用的原因。集成方法通常,我们只从训练数据中创建一个学习器(学习器=训练模型)(即,我们只在训练数据上训练一个机器学习模型)。集成方法是让多个学习者解决同一个问题,然后将它们组合起来。这些学习器被称为基学习器,可以有任何底层算法,如神经网络、支持向量机、决策树等。如果所有这些基学习器都由相同的算法组成,那么它们被称为同质基学习器,而如果它们由不同的算法,那么它们被称为异构基学习器。与单个基学习器相比,集成具有更好的泛化能力,从而取得更好的效果。当集成方法由弱学习器组成时。因此,基础学习器有时也被称为弱学习器。而集成模型或强学习器(这些弱学习器的组合)具有较低的偏差/方差并获得更好的性能。这种将弱学习器转化为强学习器的集成方法之所以流行,是因为弱学习器在实践中更容易获得。近年来,集成方法不断赢得各种在线比赛。除了在线比赛,集成方法也被应用到现实生活中,例如目标检测、识别和跟踪等计算机视觉技术。集成方法的主要类型弱学习器是如何产生的?根据生成基学习器的方式,集成方法可以分为两类,即顺序集成方法和并行集成方法。顾名思义,在Sequentialensemble方法中,baselearners被顺序生成,然后组合起来进行预测,比如AdaBoost等Boosting算法。Parallelensemble方法中,并行生成基本学习器,然后组合起来进行预测,如随机森林、Stacking等Bagging算法。下图显示了一个解释并行和顺序方法的简单架构。根据生成基学习器的方式不同,集成方法可以分为两类:顺序集成方法和并行集成方法。顾名思义,在sequentialensemblemethods中,baselearners是顺序生成的,然后组合起来进行预测,比如AdaBoost等Boosting算法。在并行集成方法中,并行生成基学习器,然后组合进行预测,例如随机森林和Stacking等Bagging算法。下图显示了一个简单的架构,解释了并行和顺序方法。ParallelandsequentialensemblemethodsSequentiallearningmethods利用弱学习器之间的依赖关系以减少残差的方式提高整体性能,使后来的学习者更多地关注前面学习者的错误。粗略地说(对于回归问题),通过boosting方法得到的集成模型误差的降低主要是通过降低弱学习器的高偏差来实现的,尽管有时也会观察到方差的降低。另一方面,并??行集成方法通过组合独立的弱学习器来减少错误,即它利用了弱学习器之间的独立性。误差的减少是由于机器学习模型方差的减少。因此,我们可以得出结论,boosting主要是通过降低机器学习模型的偏差来降低误差,而bagging是通过降低机器学习模型的方差来降低误差。这很重要,因为选择哪种集成方法将取决于弱学习器是否具有高方差或高偏差。弱学习器如何组合?在生成这些所谓的基础学习器之后,我们不是选择这些学习器中最好的,而是将它们组合起来以实现更好的泛化,我们这样做的方式在集成方法中起着重要作用。平均:当输出是一个数字时,最常见的组合基学习器的方法是平均。平均值可以是简单平均值或加权平均值。对于回归问题,简单平均数是所有基础模型的误差总和除以学习器总数。加权平均的组合输出是通过为每个基学习器分配不同的权重来实现的。对于回归问题,我们将每个基学习器的误差乘以给定的权重,然后求和。投票:对于标称输出,投票是组合基学习器的最常见方式。投票可以是不同类型的,例如绝对多数投票、相对多数投票、加权投票和软投票。对于分类问题,绝对多数投票给每个学习者一个类标签投票。无论哪个类别标签获得超过50%的选票,就是集成的预测结??果。但是,如果没有一个类标签获得超过50%的选票,则会给出拒绝选项,这意味着组合的集成无法做出任何预测。在相对多数投票中,得票最多的类标签为预测,超过50%的选票不需要该类标签。意思是,如果我们有三个输出标签并且所有三个都得到不到50%,比如40%30%30%,那么得到40%的类标签就是集成模型的预测。.加权投票与加权平均一样,根据分类器的重要性和特定学习器的强度为分类器分配权重。软投票用于具有概率(值在0和1之间)而不是标签(二进制或其他)的类输出。软投票又分为简单软投票(概率的简单平均)和加权软投票(给学习者分配权重,概率乘以这些权重并求和)。学习:另一种合成方法是通过学习合成,它被堆叠集成方法使用。在这种方法中,一个称为元学习器的单独学习器在新数据集上进行训练,以组合从原始机器学习数据集生成的其他基础/弱学习器。请注意,所有三种集成方法,无论是boosting、bagging还是stacking,都可以使用同质或异质弱学习器生成。最常见的方法是使用同质弱学习器进行Bagging和Boosting,使用异构弱学习器进行Stacking。下图很好地对三种主要的集成方法进行了分类。对集成方法的主要类型进行分类集成多样性集成多样性是指底层学习者的差异程度,这对于产生良好的集成模型具有重要意义。理论上已经证明,完全独立(多样化)的基础学习器可以最大限度地减少错误,而完全(高度)相关的学习器通过不同的组合方法不会带来任何改进。这在现实生活中是一个具有挑战性的问题,因为我们正在训练所有弱学习者使用相同的数据集来解决相同的问题,从而导致高度相关。最重要的是,我们需要确保弱学习器并不是真正糟糕的模型,因为这甚至可能导致更差的集成性能。另一方面,将强大而准确的基础学习器结合起来可能不如将一些弱学习器与一些强大的学习器结合起来。因此,需要在基础学习器的准确性和基础学习器的差异性之间取得平衡。如何实现集成多样性?1.数据处理我们可以将我们的数据集分成子集供基础学习者使用。如果机器学习数据集很大,我们可以简单地将数据集分成相等的部分,然后将其输入机器学习模型。如果数据集很小,我们可以使用有放回的随机抽样从原始数据集生成新的数据集。Bagging方法使用引导技术生成新数据集,这基本上是有放回的随机抽样。通过引导,我们能够创建一些随机性,因为所有生成的数据集都必须具有一些不同的值。但是请注意,大部分值(根据理论约占67%)仍会重复,因此数据集不会完全独立。2.输入特征所有数据集都包含提供数据信息的特征。我们可以创建特征的子集并生成不同的数据集并将它们输入模型,而不是使用一个模型中的所有特征。这种方法被随机森林技术采用,当数据中存在大量冗余特征时是有效的。当数据集中的特征很少时,有效性会降低。3.学习参数该技术通过对基础学习算法应用不同的参数设置,即超参数调整,在基础学习器中产生随机性。例如,通过改变正则化项,可以将不同的初始权重分配给各个神经网络。集成剪枝最后,集成剪枝技术在某些情况下可以帮助实现更好的集成性能。集成剪枝意味着我们只组合学习器的一个子集,而不是组合所有弱学习器。除此之外,更小的集成可以节省存储和计算资源,从而提高效率。最后,本文只是对机器学习集成方法的概述。希望大家能够进行更深入的研究,更重要的是能够将研究应用到现实生活中。
