Java教程

集成学习的知识整理

本文主要是介绍集成学习的知识整理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

集成学习

目录
  • 集成学习
    • 思维图
    • 方法种类
    • 集成方法原理
      • 误差和方差
      • 原理
    • 可选取的基分类器
  • 集成学习例子
    • Boosting算法代表
      • GBDT:梯度提升决策树
      • Adaboost:基于错误率的提升方法
    • Bagging算法代表
      • 随机森林
  • XGBoost库
    • 参考


思维图

集成学习

什么是集成学习?集成学习:通过某种策略来组合多个弱学习器来学习任务。

因此,我们就需要考虑以下几个问题:

  1. 选取什么弱学习器?
  2. 什么策略?

方法种类

集成学习最有代表性的两种boosting(结构:串行)和bagging(结构:并行).

集成方法原理

误差和方差

在机器学习的领域,我们评价一个模型是否能解决特定的问题可以有两个角度:定性和定量

  1. 定性:过拟合、欠拟合;

  2. 有监督学习的定量:偏差、方差,从 “泛化误差=偏差+方差“ 来理解集成学习;

那什么是偏差,什么是方差?

偏差:输出平均值与真实值的偏差,偏差高表示欠拟合,原因通常是先验假设是错误的

方差:用n个m样本训练n个模型,所以对同一个样本有n个输出值,方差大表示过拟合,原因通常是由于模型复杂度过高,把m个样本都记住了,导致泛化能力有点弱,没有学到真正的特征,只是针对了不同的训练集进行了记忆性学习。

原理

Bagging降低方差,Boosting降低偏差。

Bagging,再抽样,然后每个样本上训练出来的模型取平均,方差减小到原来的\(\frac{1}{n}\).
前提是n个随机变量完全独立,但n个模型之间不可能完全独立,解决办法:随机森林随机选取属性子集、训练集重采样

Boosting,串行结构,上一个弱分类器的错误或者残差作为下一个弱分类器的输入,本身在不断减小损失函数,因此偏差变小,但因为弱分类器之间是强相关的,因此不会对降低方差有任何作用。

可选取的基分类器

  1. 决策树

  2. 神经网络

选取的原因:
”不稳定学习器“更适合,“不稳定”就是数据样本的扰动对于学习器影响较大,因此引入了随机性。

决策树因为不仅具备”不稳定性“,而且将样本的权重整合到训练过程同时,节点分裂的过程中,随机选取特征子集。因此决策树是最常用的基分类器。

集成学习例子

Boosting算法代表

GBDT:梯度提升决策树

这个算法是基于决策树预测的残差进行迭代学习。常用的决策树为CART。

组合策略:把所有树的预测值加起来,得到最终的预测结果。

为啥使用梯度提升?梯度提升算法原理?

优缺点:

Adaboost:基于错误率的提升方法

训练方式:对分类正确的样本降低权重,对分类错误的样本升高权重或者保持权重不变。

组合策略:加权投票,错误率高的基分类器,权重为负,错误率低的基分类器,权重为正。

因此错误率的计算方式会成为一个问题:

Bagging算法代表

随机森林

XGBoost库

这是一个实现了GBDT算法的开源机器学习项目库GitHub项目地址。

相比GBDT,加强的地方:

  1. GBDT的实现与拓展改进的项目
  2. 显式加入正则项来控制模型复杂度
  3. 同时使用一阶和二阶导数信息
  4. 支持多种类型基分类器,包括线性分类器
  5. 支持对数据的采样
  6. 自动学习出缺失值的处理策略

转载联系邮箱:liangfychn@163.com

参考

[1] 诸葛越. 白面机器学习. 人民邮电出版社, 2018.

[2] Tianqi Chen and Carlos Guestrin. XGBoost: A Scalable Tree Boosting System. In SIGKDD, 2016

这篇关于集成学习的知识整理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!