集成学习_boosting与bagging PPT课件
- 格式:ppt
- 大小:290.00 KB
- 文档页数:16
集成式学习1.1什么是集成式学习 (boosting and bagging)集成式学习是基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。
通俗点说,就是“三个臭皮匠顶个诸葛亮”。
其中所说的专家相当于一个分类器,但面临某一个复杂的问题时,单一的分类器未必能将问题有效的解决。
我们把这种分类器称之为若分类器,一般说来弱分类器只给出比随机猜测好一点的一个分类结果。
面对这种复杂的问题,我们又无法轻松的找到一个强分类器,因此一个自然的想法就是能不能利用多个这种弱分类器构成出某种强分类器。
这便是集成学习的思想。
我们用e表示一个弱分类器的错误概率,因为弱分类只比随机猜测强一点,因此e<0.5,但e又和我们期望的错误率相差较远。
假定随机猜测的概率为0.5,定义r=0.5-e,因为e<0.5,所以r>0,这个r表示我们当前的弱分类比随机猜测强的其中主要由Booststrap方法,其中又包括bagging和boosting 等具体是构造方法。
Bootstraping:名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。
其核心思想和基本步骤如下:(1)采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。
(2)根据抽出的样本计算给定的统计量T。
(3)重复上述N次(一般大于1000),得到N个统计量T。
(4)计算上述N个统计量T的样本方差,得到统计量的方差。
应该说Bootstrap是现代统计学较为流行的一种统计方法,在小样本时效果很好。
通过方差的估计可以构造置信区间等,其运用范围得到进一步延伸。
bagging:bootstrap aggregating的缩写。
机器学习基础—集成学习Bagging和Boosting集成学习就是不断的通过数据⼦集形成新的规则,然后将这些规则合并。
bagging和boosting都属于集成学习。
集成学习的核⼼思想是通过训练形成多个分类器,然后将这些分类器进⾏组合。
所以归结为(1)训练样本数据如何选取?(2)分类器如何合并?⼀、baggingbagging 通过将全部数据集中均匀随机有放回的挑选部分数据,然后利⽤挑选出的数据训练模型,然后再随机挑选部分数据训练⼀个新的模型,经过多次选择,形成多个模型,把每⼀个模型的值加权取平均就是bagging。
所以baging (1)样本数据均匀随机有放回的选取。
(2)分类器取均值。
左边这幅图,随机有放回的取5个数据,取五次,⽤三阶多项式拟合出5条曲线,看以看出这五条曲线基本上符合图像上点的⾛势。
右边这幅图红⾊的曲线是⽤bagging实现的,蓝⾊的曲线是⽤四阶多项式实现的。
在训练集上蓝⾊的拟合度优于红⾊,但是在测试集上红⾊要由于蓝⾊。
可以看出baggin⽅法有很强的泛化能⼒。
⼆、boostingboosting 不再均匀随机的挑选数据了,⽽是把重点放在那些不易进⾏分类的数据上或者是分错的数据上,增加分错样本的权值,然后再进⾏训练,经过多次样本数据选择,哪些最难分类的权值会不断增⼤,直到被分类正确。
将形成的多个分类器进⾏投票,分类类别选择票数最多的那个。
boosting (1)调整权值,选择分错的样本。
(2)分类器合并采取投票的⽅式。
要理解boosting中如何增加分错样本的权重必须了解“误差”的概念。
误差:在已知样本分布的情况下,某⼀个样本x上的假设和真实值间不⼀致的概率。
如上⾯这幅图,有四个点,分别出现的频率是1/2,1/20,4/10,1/20,所以由上⾯误差的概念,分错的概率为1/10。
所以样本出现的频率会影响误差,也就是样本的分布会随着权值的变化⽽变化。
相⽐我们已经分对的样本,分错的样本获得正确结果的概率就越⾼。
一文看懂集成学习(详解bagging、boosting以及他们的4点区别)在机器学习中,我们讲了很多不同的算法。
那些算法都是单打独斗的英雄。
而集成学习就是将这些英雄组成团队。
实现“3 个臭皮匠顶个诸葛亮”的效果。
本文将介绍集成学习的2 种主要思路:bagging、boosting。
什么是集成学习?集成学习归属于机器学习,他是一种「训练思路」,并不是某种具体的方法或者算法。
现实生活中,大家都知道「人多力量大」,「3 个臭皮匠顶个诸葛亮」。
而集成学习的核心思路就是「人多力量大」,它并没有创造出新的算法,而是把已有的算法进行结合,从而得到更好的效果。
集成学习会挑选一些简单的基础模型进行组装,组装这些基础模型的思路主要有 2 种方法:1.bagging(bootstrap aggregating的缩写,也称作“套袋法”)2.boostingBaggingBagging 的核心思路是——民主。
Bagging 的思路是所有基础模型都一致对待,每个基础模型手里都只有一票。
然后使用民主投票的方式得到最终的结果。
大部分情况下,经过bagging 得到的结果方差(variance)更小。
具体过程:1.从原始样本集中抽取训练集。
每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。
共进行k轮抽取,得到k个训练集。
(k个训练集之间是相互独立的)2.每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)3.对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。
(所有模型的重要性相同)举例:在 bagging 的方法中,最广为熟知的就是随机森林了:bagging + 决策树 = 随机森林《/ai-definition/decision-tree/》《/ai-definition/random-forest/》BoostingBoosting 的核心思路是——挑选精英。
Boosting算法Boosting算法也是一种基于数据集重抽样的算法,与Bagging 算法主要区别在于,需要动态调整训练样本中各数据权重,每一次迭代增加不能被正确学习的样本权重,相对地降低了能被正确学习的样本权重,从而提升在整个训练样本数据集上的学习正确率。
一、Boosting算法流程与Bagging算法不同,Boosting算法第一次构建基学习器时给每一个训练数据样本赋予动态权重,增加分类错误样本权重。
在下一次,基学习器采用新的样本权重进行随机抽样构建新的基学习器并以此类推构建多个基学习器,直到递进生成的基学习器精度不再明显提升或满足精度需求,最后这多个基学习器形成一个精度较高的强学习器。
为了控制集成学习模型复杂度,通过动态权重降低了高精度分类样本的权重,有效控制了最终学习器的样本数量,从而控制了集成学习模型复杂度。
为了提升集成模型的差异化,Boosting算法是一种逐步递进的方法,每一个学习器都是前一个学习器通过调整样本权重的改进模型,不存在两个相同的基学习器。
Boosting算法问题在于,更多关注不能正确分类样本数据,对于边界样本会导致权重失衡,产生“退化问题”。
Boosting算法的原理示意图如图7-5所示。
图7-5 Boosting算法的原理示意图Boosting算法最典型的是Adaptive Boosting算法,简称AdaBoost算法,其基本流程描述如下。
从“偏差-方差分解”的角度看,Boosting算法主要提升基学习器的准确率,降低偏差,因此,Boosting算法能基于泛化性能相当弱的学习器构建出很强的集成。
二、Boosting系列算法Boosting算法包括以梯度提升为核心方法的系列算法,主要包括前面介绍的调整错分样本权重的AdaBoost算法、以决策树为基函数的Boosting Tree算法、利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中残差的近似值的GBDT算法、大规模并行Boosting Tree的XGBoost算法。
机器学习技术中的Bagging与Boosting算法比较Bagging和Boosting是机器学习中常用的集成学习方法,它们通过将多个弱学习器组合成一个强学习器,提高了模型的性能表现。
虽然这两种方法都属于集成学习,但它们采取不同的策略来组合弱学习器,本文将对Bagging和Boosting算法进行比较。
首先,我们来了解Bagging算法(Bootstrap aggregating)。
Bagging算法通过对训练集进行有放回的随机采样,生成多个自助采样集(bootstrap sample)。
然后,使用这些采样集分别训练多个基学习器。
最后,通过对基学习器的预测结果进行投票或平均等方式得到最终的集成模型。
典型的Bagging方法有随机森林(Random Forest)。
Bagging算法的优势在于通过平均多个基学习器的预测结果,能够减小模型的方差,从而提高模型的泛化能力。
此外,由于每个基学习器使用的数据集是独立的,并行化计算的效率较高。
接下来,我们转到Boosting算法。
Boosting算法的思想是通过迭代地训练多个基学习器,每个基学习器都根据先前学习器的表现进行调整。
迭代的过程主要分为两个步骤:加权(Weighting)和重采样(Resampling)。
在每一轮迭代中,加权过程根据上一轮的错误率为当前样本分配权重,即增加错误分类样本的权重,减小正确分类样本的权重。
这样能够让模型对错误分类的样本更加关注。
而在重采样过程中,根据样本的权重,对训练集进行有放回的采样,使得在下一轮迭代中,那些高权重的错误分类样本被选中。
Boosting算法最终通过将多个基学习器进行线性加权组合得到集成模型。
典型的Boosting算法有AdaBoost和Gradient Boosting。
相对于Bagging算法,Boosting算法在处理难样本(hard example)上表现更为出色。
因为Boosting算法能够不断地调整样本的权重,使得在迭代过程中模型更加关注于错误分类的样本,并且以此提高分类效果。
机器学习——集成学习(Bagging、Boosting、Stacking)1 前⾔集成学习的思想是将若⼲个学习器(分类器&回归器)组合之后产⽣⼀个新学习器。
弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < 0.5)。
集成算法的成功在于保证弱分类器的多样性(Diversity)。
⽽且集成不稳定的算法也能够得到⼀个⽐较明显的性能提升。
集成学习可以⽤于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的⾝影。
2 集成学习概述常见的集成学习思想有∶BaggingBoostingStacking为什么需要集成学习?弱分类器间存在⼀定的差异性,这会导致分类的边界不同,也就是说可能存在错误。
那么将多个弱分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果;对于数据集过⼤或者过⼩,可以分别进⾏划分和有放回的操作产⽣不同的数据⼦集,然后使⽤数据⼦集训练不同的分类器,最终再合并成为⼀个⼤的分类器;如果数据的划分边界过于复杂,使⽤线性模型很难描述情况,那么可以训练多个模型,然后再进⾏模型的融合;对于多个异构的特征集的时候,很难进⾏融合,那么可以考虑每个数据集构建⼀个分模型,然后将多个模型融合。
3 Bagging模型 Bagging ⽅法⼜叫做⾃举汇聚法(Bootstrap Aggregating),是⼀种并⾏的算法。
基本思想︰在原始数据集上通过有放回的抽样的⽅式,重新选择出 T 个新数据集来分别训练 T 个分类器的集成技术。
也就是说这些模型的训练数据中允许存在重复数据。
Bagging 的特点在“随机采样”。
随机采样(Bootsrap)就是从训练集⾥⾯采集固定个数的样本,但是每采集⼀个样本后,都将样本放回。
也就是说,之前采集到的样本在放回后有可能继续被采集到。
Bagging的结合策略:对于分类问题,通常使⽤简单投票法,得到最多票数的类别或者类别之⼀为最终的模型输出。
bagging法和boosting法
Bagging(Bootstrap Aggregating)和Boosting是两种常用的集成学习方法,它们都旨在通过结合多个模型的预测来提高性能。
Bagging是一种随机化集成学习方法,通过在每次训练过程中使用有放回的抽样(bootstrap抽样)来创建多个模型,并对每个模型进行独立的训练。
Bagging通过结合这些模型的预测来降低模型的方差,从而提高模型的稳定性和准确性。
在Bagging中,通常使用基学习器(base learner)作为单个模型,例如决策树、随机森林等。
Boosting是一种迭代的方法,它通过逐步构建一系列弱模型来逐步改进预测结果。
在每次迭代中,Boosting会根据当前模型的预测结果来调整下一次迭代的训练数据和权重,使得模型能够更好地学习到数据中的特征和模式。
Boosting通常使用加权和的方法来组合多个模型,其中每个模型的权重可以根据其性能进行动态调整。
在Boosting中,常用的基学习器包括AdaBoost算法和Gradient Boosting算法等。
这两种方法各有优缺点。
Bagging通常更加稳定,能够更好地处理高维数据和复杂的数据分布,但可能无法充分利用弱模型的潜力。
Boosting则可以更好地利用弱模型的优点,逐步改进预测结果,但可能对数据分布的敏感性较高,需要更多的调参工作。
在实际应用中,可以根据具体的问题和数据特点选择适合的方法。
集成学习算法总结----Boosting和Bagging集成学习基本思想:如果单个分类器表现的很好,那么为什么不适⽤多个分类器呢?通过集成学习可以提⾼整体的泛化能⼒,但是这种提⾼是有条件的:(1)分类器之间应该有差异性;(2)每个分类器的精度必须⼤于0.5;如果使⽤的分类器没有差异,那么集成起来的分类结果是没有变化的。
如下图所⽰,分类器的精度p<0.5,随着集成规模的增加,分类精度不断下降;如果精度⼤于p>0.5,那么最终分类精度可以趋向于1。
接下来需要解决的问题是如何获取多个独⽴的分类器呢?我们⾸先想到的是⽤不同的机器学习算法训练模型,⽐如决策树、k-NN、神经⽹络、梯度下降、贝叶斯等等,但是这些分类器并不是独⽴的,它们会犯相同的错误,因为许多分类器是线性模型,它们最终的投票(voting)不会改进模型的预测结果。
既然不同的分类器不适⽤,那么可以尝试将数据分成⼏部分,每个部分的数据训练⼀个模型。
这样做的优点是不容易出现过拟合,缺点是数据量不⾜导致训练出来的模型泛化能⼒较差。
下⾯介绍两种⽐较实⽤的⽅法Bagging和Boosting。
Bagging(Bootstrap Aggregating)算法Bagging是通过组合随机⽣成的训练集⽽改进分类的集成算法。
Bagging每次训练数据时只使⽤训练集中的某个⼦集作为当前训练集(有放回随机抽样),每⼀个训练样本在某个训练集中可以多次或不出现,经过T次训练后,可得到T个不同的分类器。
对⼀个测试样例进⾏分类时,分别调⽤这T个分类器,得到T个分类结果。
最后把这T个分类结果中出现次数多的类赋予测试样例。
这种抽样的⽅法叫做,就是利⽤有限的样本资料经由多次重复抽样,重新建⽴起⾜以代表原始样本分布之新样本。
Bagging算法基本步骤:因为是随机抽样,那这样的抽样只有63%的样本是原始数据集的。
Bagging的优势在于当原始样本中有噪声数据时,通过bagging抽样,那么就有1/3的噪声样本不会被训练。
集成学习的不⼆法门bagging、boosting和三⼤法宝结合策略平均法,投票法和学习法。
单个学习器要么容易⽋拟合要么容易过拟合,为了获得泛化性能优良的学习器,可以训练多个个体学习器,通过⼀定的结合策略,最终形成⼀个强学习器。
这种集成多个个体学习器的⽅法称为集成学习(ensemble learning)。
集成学习通过组合多种模型来改善机器学习的结果,与单⼀的模型相⽐,这种⽅法允许产⽣更好的预测性能。
集成学习属于元算法,即结合数个“好⽽不同”的机器学习技术,形成⼀个预测模型,以此来降⽅差(bagging),减偏差(boosting),提升预测准确性(stacking)。
1. 集成学习之个体学习器个体学习器(⼜称为“基学习器”)的选择有两种⽅式:集成中只包含同种类型的个体学习器,称为同质集成。
集成中包含不同类型的个体学习器,为异质集成。
⽬前同质集成的应⽤最⼴泛,⽽基学习器使⽤最多的模型是CART决策树和神经⽹络。
按照个体学习器之间是否存在依赖关系可以分为两类:个体学习器之间存在强依赖关系,⼀系列个体学习器基本必须串⾏⽣成,代表是boosting系列算法。
个体学习器之间不存在强依赖关系,⼀系列个体学习器可以并⾏⽣成,代表是bagging系列算法。
1.1 boosting算法原理boosting的算法原理如下所⽰:Boosting算法的⼯作机制是:(1)先从初始训练集训练出⼀个基学习器;(2)再根据基学习器的表现对样本权重进⾏调整,增加基学习器误分类样本的权重(⼜称重采样);(3)基于调整后的样本分布来训练下⼀个基学习器;(4)如此重复进⾏,直⾄基学习器数⽬达到事先指定的个数,将这个基学习器通过集合策略进⾏整合,得到最终的强学习器。
Boosting系列算法⾥最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。
提升树系列算法⾥⾯应⽤最⼴泛的是梯度提升树(Gradient Boosting Tree)<GDBT>。