• 机器学习之集成学习


    写在前面

    说起集成学习,更多的是想传递一种观念,就是利用多个分类器集成,组合实现强分类。当然了,也不仅仅是用在分类中,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。

    先定义一些基本的,容易混淆的,关于学习器的概念

    • 强学习器:Strong learner,相对于弱学习器而言的概念,强学习器指的是可以预测相当准确结果的学习算法。
    • 弱学习器:Weak learner,相对于强学习器而言,通常这些弱学习器预测的结果只比随机结果稍好一些。
    • 基学习器:Base Learner,集成学习中的个体学习器,基学习器经常是弱学习器,但是并非必须是弱学习器。
    • 基学习算法:Base Learning Algorithm,基学习器所基于的算法,基学习器基于基学习算法生成,比如通过不同的训练集,经过训练之后,生成的不同参数的机器学习模型。
    • 同质基学习器:Homogeneous Base Learner,指使用同样的基学习算法生成的基学习器
    • 异质基学习器:Heterogeneous Base Learner,指使用不同的基学习算法生成的基学习器

    集成学习算法两步走

    • 构建基学习器:生成一系列基学习器,这个过程可以是并行的(Parallel)也可以是顺序的(Sequential)(在顺序型的生成过程中,前期生成的基学习器会对后续生成的学习器有影响)
    • 组合基学习器:这些基学习器被组合起来使用,最常见的组合方法比如用于分类的多数投票(majority
      voting),以及用于回归的权重平均(weighted averaging)。

    集成学习算法构成方法分两类

    • 平行方法: 构建多个独立的学习器,取他们的预测结果的平均 个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成。通常是同质的弱学习器,代表算法是Bagging随机森林(Random Forest)系列算法。
    • 顺序化方法: 多个学习器是依次构建的 个体学习器之间存在强依赖关系,因为一系列个体学习器需要串行生成 。通常是异质的学习器,代表算法是Boosting系列算法,比如AdaBoost梯度提升树(GBDT)等

    也就是说,如何定义一个完整的集成学习算法,有几个问题需要考虑:
    如何生成若干个基学习器;
    如何选择一种组合策略,将这些个体学习器集合成一个强学习器。

    集成学习算法的策略三种

    集成学习的算法策略有许多种,主要有三个比较有代表性的:Boosting、Bagging、Stacking。

    为了说明这三种方法,定义一个二元分类任务:

    X表示样例空间,Y表示分类标签,即{-1,+1}
    训练数据集D={(x1,y1),(x2,y2),…,(xm,ym)},其中xi∈X,yi∈Y(i=1,…,m)

    Boosting

    在这里插入图片描述

    Bagging

    在这里插入图片描述

    Stacking

    在这里插入图片描述

    参考文献

    https://zhuanlan.zhihu.com/p/445039170
    https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/springerEBR09.pdf

  • 相关阅读:
    java常见的三种定时任务调度框架,写得太棒了
    Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】
    Java GC
    【论文阅读】MDK与MILDM
    屎上最全vue-pdf+Springboot与aspose-words整合,开箱即用
    了解一下知识付费系统的开发流程和关键技术点
    C语言 memset
    docker 部署 node.js(express) 服务
    Java BufferedReader类简介说明
    从数字化到智能化再到智慧化,智慧公厕让城市基础配套更“聪明”
  • 原文地址:https://blog.csdn.net/LIsaWinLee/article/details/125501705