天池实战-街景字符编码识别-task5模型集成


写在前面的话

前四节我们已经完成了模型的建立的训练,分别是:

数据的预处理和赛题的相关背景:天池实战-街景字符编码识别-task1赛题理解

通过Pytorch 批量读取图像数据并进行图像预处理:天池实战-街景字符编码识别-task2数据预处理

通过CNN模型完成字符识别功能以及如何在Pytorch下进行模型的建立:天池实战-街景字符编码识别-task3模型建立

模型的训练和验证:天池实战-街景字符编码识别-task4模型的训练和验证

这节主要介绍模型集成的相关内容



先从集成方法开始

集成方法(ensemble method)通过组合多个学习器来完成学习任务。

通过集成方法,可以将多个弱可学习器组合成一个强可学习分类器,因此集成学习的泛化能力一般比单一的基分类器要好

集成方法主要包括Bagging、Boosting和stacking,都是将已有的分类或回归算法通过一定方式组合起来,形成一个更加强大的分类。更准确的说这是一种分类算法的组装方法,即将弱分类器组装成强分类器的方法。


1. Bagging

Bagging法也称为投票法,有放回地对训练集进行采样,bagging法的主要流程是:

  • 从原始样本集中抽取训练集。

    每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(此时的k个训练集之间是相互独立的)

  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。

    (注:这里可以根据具体问题采用不同的分类或回归方法,如决策树、感知机等)

  • 将k个模型采用投票的方式得到分类结果。

需要注意的是,在分类问题中,需要将k个模型采用投票的方式得到分类结果;对于回归问题,则直接计算k个模型的均值作为最后的结果,如图所示:

天池实战-街景字符编码识别-task5模型集成_第1张图片

多说一嘴,投票的方式就是少数服从多数的方式


2. Boosting

Boosting(再学习法)的思路则是采用重赋权法迭代地训练基分类器,主要流程是:

  • 所有样本赋予初始权重
  • 迭代训练,并在上一次训练的基础上进行改进提升,增大分类错误样本的权重
  • 迭代后的最终的模型就是目标分类模型

再学习法其实就是在上一轮的基础上再次进行训练,直到满足终止条件,如图所示:

天池实战-街景字符编码识别-task5模型集成_第2张图片


3. stacking

在stacking 算法中,训练一个多层(一般是两层)的学习器结构,第一层(也叫学习层)用n个不同的分类器(或者不同模型的参数)将得到预测结果合并为新的特征集,并作为下一层分类器的输入。

比如在前面的例子中,我们想要预测明天是否会下雨,我们可以通过相关数据利用knn、决策树、svm等将进行第一层的训练,比如我们训练出了十个分类器。然后通过stacking的方法将这十个分类器的结果作为了第二层训练器的数据,通过第二层的输出训练器得到了最终的预测结果。

stacking流程:

  • 通过样本进行训练,得到个体学习器,也就是初级学习器
  • 使用训练出来的个体学习器得到预测的结果,这个预测结果当做次级学习器的训练集
  • 用初级学习器预测的结果训练出次级学习器,得到最终的训练模型。

一般使用LR作为第二层的模型进行建模预测


3. Bagging、Boosting二者之间的区别

样本选择上

  • Bagging:训练集是从原始集中有放回的选取,从原始集中选出的各轮训练集之间是独立的
  • Boosting:每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整

样例权重

  • Bagging:使用均匀取样,每个样本的权重相等
  • Boosting:根据错误率不断调整样本的权值,错误率越大则权重越大

预测函数

  • Bagging:所有预测函数的权重相等
  • Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重

并行计算

  • Bagging:各个预测函数可以并行生成
  • Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果

集成算法总结

两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果

将不同的分类算法套入到算法框架中一定程度会提高了分类效果,但是也增大了计算量

常见的决策树结合算法:

  • Bagging + 决策树 = 随机森林
  • Adaboost + 决策树 = 提升树
  • Gradient Boosting + 决策树 = GBDT



你可能感兴趣的:(天池项目实战)