zoukankan      html  css  js  c++  java
  • 机器学习之集成算法

    一、集成算法

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

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

      

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

     

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

    二、Bagging模型:

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

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

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

      

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

    构造树模型:

      

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

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

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

      

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

      

    三、Boosting模型

    典型代表:AdaBoost, Xgboost。

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

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

      

    四、Stacking模型

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

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

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

      

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

  • 相关阅读:
    巧用 Patch Connect Plus 简化 Intune 第三方更新管理
    如何应对薄弱的企业安全意识
    Jira可视化数据分析解决方案
    终端安全:保护企业的关键
    为什么需要ITIL服务目录
    防抖、节流函数封装(站在巨人的肩膀上)
    vue服务器渲染--NUXT
    函数防抖,函数节流(站在巨人的肩膀上)
    MAC地址和IP地址的区别和联系(站在巨人的肩膀上)
    ES8新特性(2017)-- async/await详细介绍与使用
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/11281352.html
Copyright © 2011-2022 走看看