• 机器学习之集成算法


    一、集成算法

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

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

      

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

     

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

    二、Bagging模型:

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

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

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

      

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

    构造树模型:

      

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

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

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

      

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

      

    三、Boosting模型

    典型代表:AdaBoost, Xgboost。

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

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

      

    四、Stacking模型

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

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

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

      

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

  • 相关阅读:
    简单通讯聊天 群聊功能 Windows下的客户端 Linux下的epoll服务器
    Windows客户端 Linux服务器通讯 字符编码问题
    C++时间标准库时间time和系统时间的使用
    Window7系统安装Ubuntu16双系统
    Window7 系统下重新建立一个新分区
    UltraISO(软碟通) 制作U盘启动盘
    Python 列表反转显示方法
    HTML,CSS,JS个别知识点总结
    Git 创建版本库并实现本地上传数据到GitHub库
    Python爬虫数据保存到MongoDB中
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/11281352.html
Copyright © 2020-2023  润新知