模型融合

一、模型融合

模型融合,又叫集成学习(Ensemble Learning),它不是指具体的某一个算法,而是一种把多个弱模型合并在一起变成一个强模型的思想。

1、模型融合的原因
  • 单个模型容易发生过拟合,多个模型融合可以提高泛化能力
  • 单个模型模型预测精度不高,多个模型往往能提升预测能力
  • 对于数据集过大或者过小,可以分别进行划分和有放回的操作产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再合并成为一个大的分类器;
  • 对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个分类模型,然后将多个模型融合。
  • 模型融合算法成功的关键在于能保证弱分类器(弱模型)的多样性(diversity),融合不稳定的学习算法能得到更明显的性能提升。
2、融合方法
  • 投票法 (Voting)

    如果是分类模型,每一个模型都会给出一个类别预测结果,
    可以通过投票的方式,按照少数服从多数的原则融合得到一
    个新的预测结果。

  • 均值法 (Averaging)

    如果是回归模型,每一个模型给出的预测结果不是类别,而
    是一个数值,这个时候我们可以通过求所有子模型的预测结
    果的均值作为最终的融合结果。这就是Averaging的融合方
    法。

二、 融合框架

VotingAveraging是模型融合底层最基础的方法,但是在顶层还有两种经典的融合框架:BaggingBoosting

1、 bagging 融合框架

Bagging融合就是采用 有放回抽样(Bootstrap抽样,又叫重采样,自助抽样法)的方法,用K次抽样的样本来训练得到K个子模型,然后对K个模型结果最后进行Voting或者Averaging融合。它的主要流程是:

  • 重复进行K次Bootstrap抽样(每次抽样的样本数量与总体样本数量保持一致)
  • 对K个抽样得到的训练样本进行训练得到K个子模型
  • 对K个子模型的结果进行融合:分类用voting,回归用Averaging
  • 基于Bagging融合框架的典型算法代表是随机森林,它的子模型采用的是决策树算法

在这里插入图片描述

2、 Boosting 融合框架

Boosting融合在每一次训练模型的时候都更加关注上一次模型错判的样例,会给这些错判的样例更大的权重,这样做的目的就是为了加强对错判样本的学习,让模型通过不断的迭代,效果越来越好。最终将多次迭代训练得到的弱模型进行加权求和,得到最终的强模型

基于Boosting融合框架的典型算法代表是 AdaboostGBDT(梯
度提升决策树)

3、 bagging 和 boosting 的区别
  • Bagging 融合是一种并行方法(同时并行处理K个子模型),而Boosting融合是一种迭代的方法,它是串行

  • Bagging融合更关注的是得到一个更稳定的模型,而Boosting融合关注的是得到一个预测能力更强的模型

三、随机森林

1、算法概述
  • 随机森林,顾名思义,就是由很多决策树模型融合在一起的算法。
  • 随机森林是一种基于Bagging框架的模型融合算法
  • 随机森林的“森林”指的就是它的弱模型是由决策树算法训练的(具体是CART算法),CART算法既能做分类也能做回归
  • 随机森林的“随机”指的是构造的若干个弱模型是有一定的“随机性”的
2、随机性
2.1、数据的随机选取
  • 首先,从原始的数据集中采取有放回的抽
    样,构造子数据集,子数据集的数据量是
    和原始数据集相同的。不同子数据集的元
    素可以重复,同一个子数据集中的元素也
    可以重复。
  • 第二,利用子数据集来构建子决策树,将
    这个数据放到每个子决策树中,每个子决
    策树输出一个结果。
  • 最后,如果有了新的数据需要通过随机森
    林得到分类结果,就可以通过对子决策树
    的判断结果的投票,得到随机森林的输出
    结果了。
2.2、待选特征的随机选取
3、随机森林的特点
  • 它可以处理数千个输入变量而无需变量删除。
  • 它给出了对分类中哪些变量重要的估计。
  • 随着森林建设的进展,它会产生对泛化误差的内部无偏估计。
  • 它有一种估算缺失数据的有效方法,并在大部分数据丢失时保持准确性。
  • 它具有平衡类群不平衡数据集中的错误的方法。
  • 可以保存生成的林以备将来用于其他数据。
  • 计算原型,提供有关变量和分类之间关系的信息。
4、The out-of-bag(oob) error estimate oob误差估计
  • 袋外误差(out-of-bag error)是Bagging融合框架独有的一个术语,我们先来理解什么叫袋外。
  • 由于Bagging融合方法使用了有放回的Boostrap抽样,必然导致随机森林的每一个子模型训练样本不是全部样本,这样就很容易理解袋外了:那些没有被子模型抽中的样本就是这个子模型的袋外样本,所以每一个样本可能都是若干个子模型的袋外样本,你可以把这些袋外样本作为该子模型的测试集。
  • 知道了袋外样本的定义之后,那么袋外误差就是用袋外样本评估模型得到的误差。之前我们是把数据集拆分为训练集和测试集,用测试集来评估模型的误差。现在,随机森林算法由于存在袋外样本,所以,那些袋外样本天然的就可以作为测试集对模型进行评估。所以理论上随机森林算法可以不用人为的拆分训练集和测试集,我们通过查看袋外误差也能达到评估模型的目的。
5、随机森林模型中几个比较重要的结果
  • feature_importances_ :特征变量的重要性,可以用来进行变量筛选
  • oobscore :袋外误差率,用来评估模型

四、Adaboost 算法

AdaBoost是 adaptive boosting 的缩写,一种基于Boosting融合框架的算法。
基础算法用的是决策树

1、Adaboost 算法基本原理

在这里插入图片描述

2、 Adaboost算法构建过程

在这里插入图片描述

在这里插入图片描述

注意其中的两个权值计算公式;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值