百面机器学习(一):LightGBM、xgboost和GBDT的区别(百度)(a)——集成学习详解

10 篇文章 1 订阅
2 篇文章 0 订阅

1.引子

这是一个全新的专题——百面机器学习,主要针对牛客网、某乎、各大微信公众号等常见的面试问题,进行系统、全面地分析。通过一个问题,弄懂一类问题。

今日份的问题是,机器学习岗位面试最最最常见的问题之一——某几类集成算法有什么区别。小编借此机会,详细地讲解集成算法。

2.集成学习的概念

集成学习是通过训练若干个弱学习器,并通过一定的结合策略,从而形成一个强学习器。有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
在这里插入图片描述
集成学习先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。

3.集成学习的特点

  1. 将多个分类方法聚集在一起,以提高分类的准确率(这些算法可以是不同的算法,也可以是相同的算法);

  2. 集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类;

  3. 严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法;

  4. 通常一个集成分类器的分类性能会好于单个分类器;

  5. 如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。

4.集成学习的分类

通常来说,很多现有的学习算法都足以从训练数据中产生一个个体学习器。一般来说,我们会将这种由个体学习器集成的算法分为两类:

同质(homogeneous),即集成中仅包含同种类型的个体学习器,像“决策树集成”中就仅包含决策树,“神经网络集成”中就全是神经网络。同质集成中的个体学习器又称为基学习器(base learner),相应的学习算法也被称为基学习算法(base learning algorithm)。

异质(heterogenous),相对同质,异质集成中的个体学习就是由不同的学习算法生成的,因此,个体学习器就被称为组件学习器(component learner)

5.同质学习

其中用的比较多的是同质学习器。同质学习器按照个体学习器之间是否存在依赖关系可以分为两类:

第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法;

第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。
在这里插入图片描述
在这里插入图片描述

6.集成学习举例与评估

现在我们来简单评估一下集成学习方法的性能:考虑一个简单的例子,在二分类任务中,假定三个分类器在三个测试样本上的表现如下图所示,其中√代表正确,×代表分类错误,集成学习的结果则是由投票法(voting)决出,即“少数服从多数”。
在这里插入图片描述
在a图中每个分类器只有66.6%的精度的时候,集成学习达到了100%的精度;在b图中,三个分类器相同导致集成性能没有提高;c图中由于每个分类器的精度只有33.3%导致集成学习的效果变得更糟。

由此我们可以看出来,集成学习中对个体学习器的要求应该是“好而不同”,即既满足准确性,又满足多样性,也即是说,学习器既不能太坏,而且学习器与学习器之间也要有差异。

随着集成中个体分类器数目T的增大,集成的错误率将指数级下降从而最终趋于0(这里还有一个前置条件就是个体分类器的错误率不能大于50%)。但我们曾假设各个分类器之间的错误率是相互独立的,而实际上在同一个任务中个体学习器视为解决同一个问题训练出来的,这也就意味着它们之间显然不可能相互独立。换句话说,个体学习器的“准确性”和“多样性”本身也是存在冲突的。一般的,准确性很高之后,若要增加多样性就需要准确性做出一定的牺牲。

因此,如何产生“好而不同”的个体学习器,便是集成学习研究的核心。

7.集成学习框架

目前,有三种常见的集成学习框架:bagging,boosting和stacking。国内,南京大学的周志华教授对集成学习有很深入的研究,其在09年发表的一篇概述性论文《Ensemble Learning》对这三种集成学习框架有了明确的定义,概括如下:

**bagging:**从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果。
在这里插入图片描述
**boosting:**训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。对所有基模型预测的结果进行线性综合产生最终的预测结果。
在这里插入图片描述
**stacking:**将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测:
在这里插入图片描述
有了这些基本概念之后,直觉将告诉我们,由于不再是单一的模型进行预测,所以模型有了“集思广益”的能力,也就不容易产生过拟合现象。但是,直觉是不可靠的,接下来我们将从模型的偏差和方差入手,彻底搞清楚这一问题。

8.下篇预告

百面机器学习(一):LightGBM、xgboost和GBDT的区别(百度)(b)——Boosting详解
敬请期待!

9.参考链接

http://xgboost.apachecn.org/
https://xgboost.readthedocs.io/en/latest/index.html
https://www.biaodianfu.com/boosting.html
https://www.cnblogs.com/zongfa/p/9304353.html

欢迎关注公众号“码点联盟”,不定期分享机器学习、深度学习干货,及各种资料大礼包!在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值