集成学习简介

集成学习介绍:

集成学习本身并不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,以达到获得比单个学习器更好的学习效果的一种机器学习方法。高端点的说叫“博彩众长”,庸俗的说叫“三个臭皮匠,顶个诸葛亮”。

集成学习思路:在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。

 整体原理如图所示。生成一组个体学习器,然后采用某种策略将他们结合起来。个体学习器可以由不同的学习算法生成,之间也可以按照不同的规律生成。

目前接触较多的集成学习主要有2种:

  基于Boosting(串行)的和基于Bagging(并行),前者的代表算法有Adaboost(提升树)、GBDT(梯度下降树),后者的代表算法主要是随机森林。Boosting是个体学习器之间存在着强依赖关系,必须串行生成的序列化方法;Bagging是个体学习器之间没有强依赖关系,可同时并行生成。

Boosting原理:提到串行大家应该很清楚,类似于串联电路,也就是所有弱学习器串联在一起!!!,首先通过训练集用初始权重训练出一个弱学习器1,根据弱学习器的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

 

Bagging原理:bagging类似于并联电路,所有弱学习器并联在一起。个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。(对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。)

两种原理样本选择的不同:

Boosting串行:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

Bagging并行:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

样本权重的不同:

前者根据错误率不断调整样例的权值,错误率越大则权重越大。

后者使用均匀取样,每个样例的权重相等。

关于集成学习就简单介绍到这,关于集成学习的算法将在下篇文章介绍,敬请关注呦!

猜你喜欢

转载自blog.csdn.net/liaoningxinmin/article/details/84677816
今日推荐