天池大赛:街景字符编码识别——Part5:模型集成

街景字符编码识别

更新流程↓
Task01:赛题理解
Task02:数据读取与数据扩增
Task03:字符识别模型
Task04:模型训练与验证
Task05:模型集成
老夜店鸟
炸…炸辽
给朋友看要破壳的鸡蛋
比赛链接


Part5:模型集成





0. 简介


 本章讲解的知识点包括:

  • 分类器集成 / 集成学习
  • 深度学习中的集成学习
  • 结果后处理思路



1. 分类器集成(集成学习)

  集成学习,即分类器集成,通过构建并结合多个学习器来完成学习任务。一般结构是:先产生一组“个体学习器”,再用某种策略将它们结合起来。结合策略主要有平均法、投票法和学习法等。
  集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)。

  集成学习是这样一个过程,按照某种算法生成多个模型,如分类器或者称为专家,再将这些模型按照某种方法组合在一起来解决某个智能计算问题。集成学习主要用来提高模型(分类,预测,函数估计等)的性能,或者用来降低模型选择不当的可能性。集成算法本身是一种监督学习算法,因为它可以被训练然后进行预测,组合的多个模型作为整体代表一个假设(hypothesis)。

  集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)偏差(boosting) 或改进预测(stacking) 的效果。

 1.1. 分类器(Classifier)

  分类器是数据挖掘中对样本进行分类的方法的统称,包含决策树逻辑回归朴素贝叶斯神经网络等算法。分类是数据挖掘的一种非常重要的方法。分类的概念是在已有数据的基础上学会一个分类函数或构造出一个分类模型(即分类器)。该函数或模型能够把数据库中的数据纪录映射到给定类别中的某一个,从而可以应用于数据预测。

 分类器的构造和实施大体会经过以下几个步骤:

  • 选定样本(包含正样本和负样本),将所有样本分成训练样本和测试样本两部分。
  • 在训练样本上执行分类器算法,生成分类模型
  • 在测试样本上执行分类模型,生成预测结果
  • 根据预测结果,计算必要的评估指标,评估分类模型的性能

  更多分类器种类可以参考分类器


  1.1.1. 决策树分类器

    限于篇幅,可以点击链接了解具体——原理实现

  1.1.2. 朴素贝叶斯分类器

    素贝叶斯分类器是假设数据样本特征完全独立,以贝叶斯定理为基础的简单概率分类器。限于篇幅,可以点击链接了解具体原理实现

  1.1.3. AdaBoost算法

    AdaBoost算法的自适应在于前一个分类器产生的错误分类样本会被用来训练下一个分类器,从而提升分类准确率,但是AdaBoost算法对于噪声样本和异常样本比较敏感。限于篇幅,可以点击链接了解具体原理与实现

  1.1.4. 支持向量机

    支持向量机是用过构建一个或者多个高维的超平面来将样本数据进行划分,超平面即为样本之间的分类边界。限于篇幅,可以点击链接了解具体原理与实现

  1.1.5. K近邻算法

    基于k近邻的K个样本作为分析从而简化计算提升效率,K近邻算法的分类器是一种基于距离计算的分类器。限于篇幅,可以点击链接了解具体原理与实现



 1.2. 集成学习方法

  集成学习有许多集成模型,例如自助法、自助聚合(Bagging)、随机森林、提升法(Boosting)堆叠法(stacking) 以及许多其它的基础集成学习模型。
  集成方法的思想是通过将这些个体学习器(个体学习器称为“基学习器”,基学习器也被称为弱学习器。
)的偏置和/或方差结合起来,从而创建一个 强学习器(或 集成模型),从而获得更好的性能。
我们可以用三种主要的旨在组合弱学习器的 元算法

  • 自助聚合(Bagging),该方法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
  • 提升法(Boosting),该方法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
  • 堆叠法(Stacking),该方法通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个 元模型 将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。

  非常粗略地说,我们可以说Bagging的重点在于获得一个方差比其组成部分更小的集成模型,而Boosting和Stacking则将主要生成偏置比其组成部分更低的强模型(即使方差也可以被减小)


  1.2.1. 自助聚合(Bagging)

  在 并行化的方法 中,我们单独拟合不同的学习器,因此可以同时训练它们。最著名的方法是自助聚合(Bagging),它的目标是生成比单个模型更棒的集成模型。Bagging的方法实现

  自助法:这种统计技术先随机抽取出作为替代的 B 个观测值,然后根据一个规模为 N 的初始数据集生成大小为 B 的样本(称为自助样本)。
在这里插入图片描述

自助抽样过程示意图

  在某些假设条件下,这些样本具有非常好的统计特性:在一级近似中,它们可以被视为是直接从真实的底层(并且往往是未知的)数据分布中抽取出来的,并且彼此之间相互独立。因此,它们被认为是真实数据分布的代表性和独立样本(几乎是独立同分布的样本)。

  为了使这种近似成立,必须验证两个方面的假设。

  1. 初始数据集的大小N应该足够大,以捕获底层分布的大部分复杂性。这样,从数据集中抽样就是从真实分布中抽样的良好近似(代表性)。
  2. 与自助样本的大小B相比,数据集的规模N应该足够大,这样样本之间就不会有太大的相关性(独立性)。注意,接下来我可能还会提到自助样本的这些特性(代表性和独立性),但读者应该始终牢记:这只是一种近似

  举例而言,自助样本通常用于评估统计估计量的方差或置信区间。根据定义,统计估计量是某些观测值的函数。因此,随机变量的方差是根据这些观测值计算得到的。为了评估这种估计量的方差,我们需要对从感兴趣分布中抽取出来的几个独立样本进行估计。在大多数情况下,相较于实际可用的数据量来说,考虑真正独立的样本所需要的数据量可能太大了。然而,我们可以使用自助法生成一些自助样本,它们可被视为最具代表性以及最具独立性(几乎是独立同分布的样本)的样本。这些自助样本使我们可以通过估计每个样本的值,近似得到估计量的方差。
在这里插入图片描述

自助法经常被用于评估某些统计估计量的方差或置信区间





  1.2.2. 提升法(Boosting)

  在顺序化的方法中,组合起来的不同弱模型之间不再相互独立地拟合。其思想是迭代地拟合模型,使模型在给定步骤上的训练依赖于之前的步骤上拟合的模型。提升法(Boosting) 是这些方法中最著名的一种,它生成的集成模型通常比组成该模型的弱学习器偏置更小。

  Boosting和Bagging的工作思路是一样的:我们构建一系列模型,将它们聚合起来得到一个性能更好的强学习器。然而,与重点在于减小方差的Bagging不同,Boosting着眼于以一种适应性很强的方式顺序拟合多个弱学习器:序列中每个模型在拟合的过程中,会更加重视那些序列中之前的模型处理地很糟糕的观测数据。
  直观地说,每个模型都把注意力集中在目前最难拟合的观测数据上。这样一来,在这个过程的最后,我们就获得了一个具有较低偏置的强学习器(我们会注意到,Boosting也有减小方差的效果)。和Bagging 一样,Boosting也可以用于回归和分类问题。由于其重点在于减小偏置,用于Boosting 的基础模型通常是那些低方差高偏置的模型。例如,如果想要使用树作为基础模型,我们将主要选择只有少许几层的较浅决策树。而选择低方差高偏置模型作为Boosting 弱学习器的另一个重要原因是:这些模型拟合的计算开销较低(参数化时自由度较低)。实际上,由于拟合不同模型的计算无法并行处理(与Bagging 不同),顺序地拟合若干复杂模型会导致计算开销变得非常高。

  一旦选定了弱学习器,我们仍需要定义它们的拟合方式聚合方式。介绍两个重要的Boosting算法:自适应提升(adaboost)梯度提升(gradient boosting)

  简而言之,这两种元算法在顺序化的过程中创建和聚合弱学习器的方式存在差异。自适应提升算法会更新附加给每个训练数据集中观测数据的权重,而梯度提升算法则会更新这些观测数据的值。这里产生差异的主要原因是:两种算法解决优化问题(寻找最佳模型——弱学习器的加权和)的方式不同。
在这里插入图片描述

Boosting会迭代地拟合一个弱学习器, 将其聚合到集成模型中,并「更新」训练数据集,从而在拟合下一个基础模型时更好地考 虑当前集成模型的优缺点。

  1.2.2.1. 自适应adaboost

  在自适应adaboost中,我们将集成模型定义为 L L L个弱学习器的加权和: s L ( . ) = ∑ l = 1 L c l × w l ( . )            其 中 c l 为 系 数 , w l 为 弱 学 习 器 s_{L}(.)=\sum_{l=1}^{L}c_{l}\times w_{l}(.)\; \; \; \; \; 其中c_{l}为系数,w_{l}为弱学习器 sL(.)=l=1Lc

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值