• 机器学习之集成算法


    一、集成算法

    目的:让机器学习效果更好,单个机器学习算法不行,就用多个机器算法集成。

    Bagging模型:训练多个分类器取结果的平均

      

    Boosting模型:从弱学习器开始加强,通过加权来进行训练(加入一棵树,要比原来强)

     

    Stacking模型:聚合多个分类或回归模型(可以分阶段来做)

    二、Bagging模型:

    全称: bootstrap aggregation(说白了就是并行训练一堆分类器),最典型的代表就是随机森林(决策树的升级版,多个决策树组合起来)

    随机:数据采样随机,特征选择随机(可以命名为二重随机性)

    森林:很多个决策树并行放在一起

      

    在随机森林模型中,如果是分类任务,那就对结果取众数(如上图所示),如果是预测任务,就对结果取平均值。

    构造树模型:

      

    由于二重随机性,使得每个树基本上都不会一样,最终的结果也会不一样。之所以要进行随机,是要保证泛化能力,如果树都一样,那么最终结果就都是一样的,那就没意义了!

    随机森林相比于决策树优势:

    (1)它能够处理很高维度(feature很多)的数据,并且不用做特征选择。
    (2)在训练完后,它能够给出哪些feature比较重要,比如在下图中特征重要性最低的三个特征就可以去掉。
    (3)容易做成并行化方法,速度比较快。
    (4)可以进行可视化展示,便于分析。

      

    理论上越多的树训练的效果就会越好,但实际上基本超过一定数量最终的效果就差不多上下浮动了。

      

    三、Boosting模型

    典型代表:AdaBoost, Xgboost。

    Adaboost会根据前一次的分类效果调整数据权重,如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重。最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体。

    Adaboost工作流程:每一次切一刀!最终合在一起,弱分类器这就升级了!

      

    四、Stacking模型

    堆叠方式:很暴力的那种,拿来一堆直接上(各种分类器都来了),可以堆叠各种各样的分类器(KNN,SVM,RF,DT等等)

    Stacking是一种分层模型集成框架。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为训练集进行再训练,从而得到完整的stacking模型。

    分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练 。

      

    堆叠在一起确实能使得准确率提升,但是显然速度是个问题。集成算法是竞赛与论文神器,当我们更关注于结果时不妨来试试!

  • 相关阅读:
    如何实现Echart不刷新页面,多语言切换下的地图数据重新加载,api请求数据加载,soketed数据实时加载
    web开发中各种宽高
    http请求方式和传递数据类型
    Hexo之傻瓜攻略
    SQL2008 R2安装功能选择
    Windows Server2012 R2中安装SQL Server2008
    用户权限管理数据库设计
    C#生成缩略图 (通用模式)
    CAD习题集
    菜鸟学习MVC实录:弄清项目各类库的作用和用法
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/11281352.html
Copyright © 2020-2023  润新知