zoukankan      html  css  js  c++  java
  • 机器学习经典算法总结(4)——集成学习

    一、集成学习

    1. 概念

        集成学习(ensemble learning)是通过构建并结合多个学习器来完成学习任务。在一些数据挖掘竞赛中经常需要对几个模型进行融合,这时候就可以用到集成学习算法。

    2.“个体学习器”分类

        集成学习的一般结构:先产生一组“个体学习器”,再用某种策略把它们结合起来。“个体学习器”的分类有:

    (1)基学习器集成中只包含同类型的个体学习器,即个体学习器由一个现有的学习算法(基学习算法)从训练数据产生,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络。称这种集成方式是“同质”的。

    (2)组件学习器:集成中包含不同类型的个体学习器。称这种集成方式是“异质”的。

    3. 集成学习研究的核心

        集成学习通过对多个学习器结合,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”尤为明显。弱学习器weak learner)常指泛化性能略优于随机猜测的学习器。

        在一般经验中,把一个好的东西和一个坏的东西掺杂在一起,得到的结果通常是比坏的要好,比好的要坏。集成学习是怎么保证结合后比单一学习器效果更好呢?要获得好的集成。个体学习器应该“好而不同”,即个体学习器有一定的准确性——学习器不能太差,还要有多样性——学习器间有差异。如何产生并结合“好而不同”的学习器,是集成学习研究的核心。

    4. 结合策略

    (1)平均法Averaging:主要应用于回归问题,分为简单平均法和加权平均法。

    (2)投票法 Voting:主要应用于分类问题,分为绝对多数投票法、相对多数投票法、加权投票法。

    (3)学习法:当训练数据很多时采用学习法,即通过另一个学习器来进行结合,典型代表:Stacking。

    5. 集成学习的分类

        常用的集成学习框架有Boosting、Bagging、Stacking等。Boosting是个体学习器间存在强依赖关系、必须串行生成的序列方法Bagging是个体学习器间不存在强依赖关系、可同时生成并行化方法;Stacking本身是一种著名的集成学习方法,也可看作一种特殊的结合策略。


    二、Boosting

    1. 典型算法

        Adaboost(Adaptive Boosting)、GBDT(Gradient Boosting Decision Tree)、XGBOOST

    2. 原理

        先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整使先前基学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器;重复直到迭代次数达到T,最终将这T个基学习器进行加权结合

     

    三、Bagging

    1.  典型算法

        Bagging、随机森林RF(Random Forest)、Dropout

    2.  原理

        Bagging方法bootstrap aggregating的缩写,基于自助采样法(bootstrap sampling即有放回的随机采样)。利用自助采样法采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再对这些基学习器进行结合

        自助采样过程还给Bagging带来一个优点:由于训练基学习器只用了初始训练集中约63.2%的样本,剩下的约36.8%的样本可用作验证集,对泛化性进行外包估计。


    四、Stacking

        首先从初始训练集训练出初级学习器,然后通过交叉验证或留一法等方法生成一个新的数据集,用于训练次级学习器。

                     

  • 相关阅读:
    js网页滚动条滚动事件实例分析
    一个简单的登陆注册的页面
    几个例子弄懂JS 的setInterval的运行方式
    IIS线程池与ASP.NET线程池
    [翻译]了解ASP.NET底层架构(八)
    IIS提示Server Application Unavailable
    C/C++, Java和C#的编译过程解析
    C#学习系列-.NET体系结构
    C#技术漫谈之垃圾回收机制(GC)
    ASP.NET应用程序与页面生命周期
  • 原文地址:https://www.cnblogs.com/yucen/p/9343577.html
Copyright © 2011-2022 走看看