机器学习初探(四)集成学习

集成学习通过结合多个弱分类器构建强大的模型。本文介绍了Bagging(如随机森林)和Boosting(如AdaBoost)的基本思想和工作流程,强调了弱分类器之间的差异性和权重调整在提升模型性能中的关键作用。
摘要由CSDN通过智能技术生成

机器学习初探(四)集成学习

“集成”的思想
  1. 众擎易举
    集成学习基于这样的思想:对于比较复杂的任务,综合许多人的意见来进行决策会比“一家独大”要更好。换句话说,就是通过适当的方式集成许多“个体模型”得到的最终模型要比单独的“个体模型”的性能更优。可以通过下图来直观感知这个过程。
    在这里插入图片描述
    此时,问题的关键转化为两点:如何选择、生成弱分类器和如何对他们进行提升(集成)。针对以上问题,有三种思路:
    (1)将不同类型的弱分类器进行提升
    (2)将相同类型但参数不同的弱分类器进行提升
    (3)将相同类型但训练集不同的弱分类器进行提升
    其中第2和第3种思路的应用更加广泛,分别对应了两种经典的集成学习算法:随机森林与AdaBoost。
    具体来说,第一种做法期望各个弱分类器之间的依赖性不强,可以同时生成。这种做法又称为并行方法,其代表为Bagging,而Bagging的一个著名算法就是随机森林。
    第二种做法中的弱分类器具有强依赖性,只能序列生成。这种做法又称为串行方法,其代表为Boosting,而Boosting的代表算法为AdaBoost。

  2. Bagging与随机森林
    Bagging的思想来源于Bootstrap理论。Bootstrap可以翻译为“自举”,它通过模拟的方法来逼近样本的概率分布函数。其背后有着深刻的数理统计思想,这里不展开,我们仅对Bootstrap的过程进行阐述:通过不断地“自采样”来模拟随机变量真实分布生成的数据集。具体而言,其做法是:
    1.从样本集中X中随机抽出一个样本(即各个样本被抽出的概率相同)
    2.将该样本的拷贝放入数据集Xj
    3.将该样本放回X中
    以上过程将重复N次,使得一个数据集Xj中有N个样本。整个过程重复M次,得到M个数据集Xj。理论上可以模拟的方法能最优地对真实分布函数进行模拟。
    在了解了Bootstrap后,我们来看看Bagging的具体定义。
    Bagging全称为Bootstrap Aggregating,其思想很简单:
    1.用Bootstrap生成M个数据集
    2.用这M个数据集训练出M个弱分类器
    3.最终模型即为这M个弱分类器的简单组合
    所谓简单组合就是:
    1.对于分类问题使用简单的投票表决
    2.对于回归问题则进行简单的去平均值
    别看简单组合的做法虽然简单,根据霍夫丁不等式可以证明最终模型的错误率随弱分类器的个数M的增加,将会以指数级下降并最终趋向于0。虽然这个结论看起来十分振奋,但是其前提是弱分类器的错误率互相独立。而这在实际中是无法成立的,但是我们能够通过让弱分类器之间的“差异”尽量大,来逼近这个前提。
    Bagging的一个著名应用就是随机森林。顾名思义,RF就是当个体模型为决策树时的Bagging算法。随机森林算法的大致流程如下:
    1.用Bootstrap生成M个数据集
    2.用这M个数据集训练出M棵不进行后剪枝决策树,且在每棵决策树的生成过程中,每次对Node进行划分时,都从可选特征(假设有d个)中随机挑选出k个特征,然后依信息增益的定义从这k个特征中选出信息增益最大的特征作为划分标准
    3.最终模型即为这M个弱分类器的简单组合。
    注意到随机森林在每个Node进行划分时引入了随机扰动,使得个体模型间的差异进一步增加,从而提升最终模型的泛化能力。

  3. PAC框架与Boosting
    Boosting产生于计算学习理论,这里简单介绍一下概率近似正确(PAC)学习理论中的“可学习性”。
    PAC提出的一个主要的假设,就是它要求数据是从某个稳定的概率分布中产生的。所谓的PAC可学习性,就是看学习的算法是否能够在合理的时间(多项式时间)内,以足够的概率输出一个错误率足够小的模型。由此,所谓的“强可学习”和“弱可学习”的概念就很直观:
    1.若存在一个多项式算法可以学习出准确率很高的模型,则称为强可学习
    2.若存在一个多项式算法可以学习但准确率仅仅略高于随机猜测,则称为弱可学习
    这两个概念在PAC学习框架下是完全等价的。这意味着对于一个学习问题,只要我们找到了一个“弱学习器算法”,就可以把它变成一个“强学习算法”。Boosting算法就能做到这一点。
    Boosting事实上是一族算法,该族算法有一个类似的框架:
    1.根据当前的数据训练出一个弱模型
    2.根据该弱模型的表现调整数据的样本权重。具体而言:
    1)让该弱模型做错的样本在后续训练中获得更多的关注
    2)让该弱模型做对的样本在后续训练中获得较少的关注
    3.最后再根据该弱模型的表现决定该弱模型的“话语权”,亦即投票表决时的“可信度”。自然表现越好就越有话语权。

  4. 随机森林
    具体描述一下随机森林算法。
    输入:训练数据集(包含N个数据)、决策树模型、迭代次数M
    过程;
    (1)对j=1,2,…,M:
    (a)通过Bootstrap生成包含N个数据的数据集Dk
    (b)利用Dj和输入的决策树模型进行训练,注意不用对训练好的决策树模型gj进行剪枝。同时需要注意的是,在训练决策树的过程中,每一步的生成都要对特征的选取加入随机性。
    (2)对个体决策树进行简单的组合。不妨用符号freq(ck)表示类别ck在M个决策树模型的决策中出现的频率,那么:
    g(x)=argmax~{ck}freq(ck)
    输出:最终分类器g(x)

  5. AdaBoost
    AdaBoost算法:
    输入:训练数据集(包含N个数据)、弱学习算法及对应的弱分类器、迭代次数M
    过程:
    (1)初始化训练数据的权值分布
    W 0 = ( w 01 , . . . , w 0 N ) W_{0}=\left ( w_{01},...,w_{0N} \right ) W0=(w01,...,w0N)
    (2)对k=0,1,…,M-1:
    a)使用权值分布为 w k w_{k} wk的训练数据集训练弱分类器
    g k + 1 ( x ) : X → { − 1 , + 1 } g_{k+1}\left ( x \right ):X\rightarrow \left \{ -1,+1 \right \} gk+1(x):X{ 1,+1}
    b)计算 g k + 1 ( x ) g_{k+1}\left ( x \right ) gk+1(x)在训练数据集上的加权错误率
    e k + 1 = ∑ i = 1 N w k i I ( g k + 1 ( x i ) ≠ y i ) e_{k+1}=\sum_{i=1}^{N}w_{ki}I\left ( g_{k+1}\left ( x_{i} \right )\neq y_{i} \right )

GP Bullhound发布了新报告“2020年技术预测”。在十多年的时间里,GP Bullhound预测了对塑造全球技术行业的趋势和创新。 1.流媒体电影和视频的竞争升级为狂热。 2020年,观众收看传统电影和电视内容的方式将发生根本性转变,从传统的电视网络转变为新的数字优先点播内容,人们可以在任何地方可以在任何设备上按需观看。 2.关系型数据库为数据湖让路。 数据湖日益盛行,这一点不容忽视。在大数据和物联网的时代,数据湖提供了多种极其重要的功能,这些功能注定其将在未来一年取代许多企业的关系型数据库。 3.公司转向垂直AI解决方案以解决现实的业务挑战。 企业将选择垂直AI SaaS解决方案来应对特定的业务挑战,而不是尝试在整个企业IT堆栈中部署AI。 4.AI/ML在市场营销中展示可量化的结果。 广告商正在迅速采用人工智能(AI)和机器学习(ML)的营销策略,使他们能够大规模提供个性化内容和定制体验。预计明年将在超个性化、品牌化和B2B销售体验中看到人工智能的快速采用。 6.游戏进入订阅和流媒体的时代。 消费者正在转向订阅服务,而不是直接购买游戏,传统的游戏交付方式受到威胁,开发商现在必须考虑这些新平台以及消费变化的影响。 7.以企业社会责任为中心。 在过去的几年里,世界越来越关注企业社会责任(“CSR”)。 8.5G商用部署竞赛。 建立5G网络的竞赛在电信业成为获得全球主导地位的竞争者之间引发了一场战争。 9.明日边缘。 随着移动和物联网设备越来越多地构建数据密集型应用,云计算面临着处理海量输入数据的任务。 10.一切都是服务。 2020年,企业继续从提供的产品和服务转变为纯粹的服务模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值