集成学习知识点(葫芦书笔记)

1.集成学习种类

  • Boosting

Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

  • Bagging

Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。(著名算法:RF)

Bagging方法更像是一个集体决策的过程,每个个体都进行单独学习,学习的内容可以相同,也可以不同,也可以部分重叠。

  • 方差和偏差:基分类器的错误,是偏差和方差两种错误之和。
    • 偏差主要是由于分类器的表达能力有限导致的系统性错误,表现在训练误差不收敛。
    • 方差是由于分类器对于样本分布过于敏感,导致在训练样本数较少时,产生过拟合。

Boosting方法是通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差
Bagging方法则是采取分而治之的策略,通过对训练样本多次采样,并分别训练出多个不同模型,然后做综合,来减小集成分类器的方差

2. 基分类器

  • 决策树 最常用的基分类器
    • DT可以较方便地将样本的权重整合到训练过程中,而不需要使用过采样的方法来调整样本权重。
    • 决策树的表达能力和泛化能力,可以通过调整树的层数来折中。
    • 数据样本的扰动对于决策树的影响较大,因此不同子样本集合生成的决策树基分类器随机性较大,如此“不稳定学习器”更适合作为基分类器。
  • 神经网络
    • NN比较不稳定
    • 可以通过调整神经元数量、连接方式、网络层数、初始权值等方式引入随机性。

3. 偏差与方差

有监督学习中,模型的泛化误差来源于两个方面–偏差与方差

  • 偏差: 由采样得到的大小为m的训练数据集训练出的所有模型的输出的平均值和真实模型输出之间的偏差。
  • 方差:由采样得到的大小为m的训练数据集训练出的所有模型的输出的方差。方差通常是由于模型的复杂度相对于训练样本数m过高导致的。由方差带来的误差通常体现在测试误差相对于训练误差的增量上。

在这里插入图片描述

从减小方差和偏差的角度解释Boosting和Bagging的原理:

  • Bagging能够提高弱分类器性能的原因是降低了方差
  • Boosting能够提升弱分类器性能的原因是降低了偏差

不难看出,方差和偏差是相辅相成的,矛盾又统一,二者并不能完全独立的存在。对于给定的学习任务和训练数据集,需要对模型的复杂度做出合理的假设。如果模型复杂度过低,虽然方差很小,但是偏差会很高;如果模型复杂度过高,虽然偏差降低了,但是方差会很高。所以需要综合考虑偏差和方差选择合适复杂度的模型进行训练。
在这里插入图片描述

4. GBDT的优缺点

  • 优点
    • 预测阶段计算速度快,树与树之间可并行化计算
    • 在分布稠密的数据集上,泛化能力和表达能力都很好。
    • 采用决策树作为弱分类器使得GBDT具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理如归一化等。
  • 局限性
    • GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络
    • GBDT在处理文本分类特征问题上,相对其他模型的优势不如在处理数值特征时明显
    • 训练过程需要串行,只能在决策树内部采用一些局部并行的手段提高训练速度。

5. XGboost和GBDT的联系和区别

  • GBDT是机器学习算法,而XGboost是其工程实现。
  • 在使用CART作为基分类器时,XGboost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
  • GBDT在模型训练时只使用了代价函数的一阶导数信息,XGboost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
  • 传统的GBDT采用CART作为基分类器,XGboost支持多种类型的基分类器,比如线性分类器。
  • 传统的GBDT在每轮迭代时使用全部的数据,XGboost则采用了与随机森林相似的策略,支持对数据进行采样。
  • 传统的GBDT没有设计对缺失值的处理,XGboost能够自动学习出缺失值的处理策略。

参考:葫芦书

猜你喜欢

转载自blog.csdn.net/weixin_44127327/article/details/108223458