查看原文
其他

大话系列 | 两种集成方法

小一 小一的学习笔记 2022-07-02
关注+星标,听说他有点东西
全文共1297字,阅读全文需7分钟




写在前面的话

大家好,我是小一

这是大话系列的第5节内容,也是本系列的第12篇原创文章。


本来这节也是准备开始新的算法,但是考虑到有一些概念可能需要提前说清楚,于是就有了这个小节内容。

前面已经介绍了4个分类算法,每个分类算法都或多或少的适用于不同的场景,但是单一的算法很多时候预测效果并不佳,所以就需要我们对算法进行集成。

“三个臭皮匠顶一个诸葛亮”,差不多就是集成的意思。当我们将每个人的长处集合起来,全部揉进一个人的身体里,就会形成一个超级赛亚人

但是我们应该怎么选择每个人的长处?又怎么去融合他们的长处?一起往下看



关于集成方法

集成方法(ensemble method)通过组合多个学习器来完成学习任务。通过集成方法,可以将多个弱可学习器组合成一个强可学习分类器,因此集成学习的泛化能力一般比单一的基分类器要好

集成方法主要包括Bagging和Boosting,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个更加强大的分类

更准确的说这是一种分类算法的组装方法,即将弱分类器组装成强分类器的方法。


1. Bagging

Bagging法也称为投票法,有放回地对训练集进行采样,bagging法的主要流程是:

  • 从原始样本集中抽取训练集。

    每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(此时的k个训练集之间是相互独立的)

  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。

    注:这里可以根据具体问题采用不同的分类或回归方法,如决策树、感知机等

  • 将k个模型采用投票的方式得到分类结果。

需要注意的是,在分类问题中,需要将k个模型采用投票的方式得到分类结果;对于回归问题,则直接计算k个模型的均值作为最后的结果,如图所示:

注意看图!

多说一嘴,投票的方式就是少数服从多数的方式


2. Boosting

Boosting(再学习法)的思路则是采用重赋权法迭代地训练基分类器,主要流程是:

  • 所有样本赋予初始权重
  • 迭代训练,并在上一次训练的基础上进行改进提升,增大分类错误样本的权重
  • 迭代后的最终的模型就是目标分类模型

再学习法其实就是在上一轮的基础上再次进行训练,直到满足终止条件,如图所示:

看图=秒懂!


3. Bagging、Boosting二者之间的区别

样本选择上

  • Bagging:训练集是从原始集中有放回的选取,从原始集中选出的各轮训练集之间是独立的
  • Boosting:每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整

样例权重

  • Bagging:使用均匀取样,每个样本的权重相等
  • Boosting:根据错误率不断调整样本的权值,错误率越大则权重越大

预测函数

  • Bagging:所有预测函数的权重相等
  • Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重

并行计算

  • Bagging:各个预测函数可以并行生成
  • Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果

4. 集成算法总结

两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果

将不同的分类算法套入到算法框架中一定程度会提高了分类效果,但是也增大了计算量

常见的决策树结合算法:

  • Bagging + 决策树 = 随机森林
  • Adaboost + 决策树 = 提升树
  • Gradient Boosting + 决策树 = GBDT




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存