zoukankan      html  css  js  c++  java
  • 集成学习原理

    来自:https://www.cnblogs.com/pinard/p/6131423.html

      集成学习结合多个机器学习来完成学习任务。即“博采众长”。集成学习可用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等。可以说所有机器学习领域都可以看到集成学习的身影。

     

    1. 集成学习概述  

      从下图看出集成学习对训练集我们训练若干个个体学习器,通过一定的结合策略,可以最终形成一个强学习器,达到博采众长的目的。

    从这看出,集成学习有两个主要问题要解决,第一如何得到个体学习器;第二如何选择一种结合策略。

    2. 集成学习的个体学习器

        得到若干个个体学习器,有两种选择。

      第一:所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。第二种是所有的个体学习器不全是一个种类,或者说是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种策略来确定最终的分类强学习器。

      目前来说,同质个体学习器应用广泛。一般说的集成学习方法都是指同质个体学习器。而同质个体学习器使用最多的模型是决策树和神经网络。

      同质个体学习器按照个体学习器之间是否存在依赖关系分为两类,

      第一个是个体学习器之间存在强依赖关系,一系列个体学习器都需要串行生成,代表算法boosting算法,

      第二个是个体学习器之间不存在强依赖关系,一系列个体学习器并行生成,代表算法bagging和随机森林(Random Forest)系列算法。

    3. 集成学习之boosting

    boosting的算法用一张图做一个概括如下:

      从图看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数到达事先制定的数目T,最终将T个弱学习器通过集合策略进行整合,得到最终的强学习器。

      Boosting系列算法最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里有应用最广泛的是梯度提升树(Gradient Boosting Decision Tree)。

    4. 集成学习之bagging

      Bagging的算法原理与boosting不同,它的弱学习器之间没有依赖关系,可以并行生成,用一张图概括如下:

       从上图可以看出,bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们得到T个采样集,可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略得到最终的强学习器。

      这里的随机采样,一般采用的是自助采样法(Bootstap sampling),即有放回随机采样。这样每次采样集和原始训练集不同,和其他采样集也不同,这样得到多个不同的弱学习器。

      随机森林是bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴。

    5. 集成学习之结合策略

    假设得到的T个弱学习器是{h1, h2, h3,..., hT}

    5.1 平均法

    对于数值类回归问题,常采用的集合策略是平均法。

    1. 最简单的算术平均,最终预测是:

    2. 每个弱学习器有权重w,最终预测是:

    其中wi是弱学习器hi的权重,通常有:

     

     

    5.2 投票法

    对于分类问题,常采用集合策略是投票法。

      假设预测类别是{c1,c2,c3,...cK},对于任意一个预测样本x,我们的T个弱学习器的预测结果分别是(h1(x),h2(x),h3(x),...,hT(x))。

      最简单的投票法是相对多数投票法,也就是我们常说的少数服从多数,也就是T个弱学习器对样本x的预测结果中,数量最多的类别ci为最终的分类类别。如果不止一个类别获得最高票,则随机选择一个做最终类别。

      稍微复杂的投票法是绝对多数投票法,也就是我们常说的要票数过半。在相对多数投票法的基础上,不光要求最高票,还要票数过半。否则会拒绝预测。

      更加复杂的是加权投票法,和加权平均法一样,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

     

    5.3 学习法

      学习法,代表方法stacking,当使用stacking的结合策略时,我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,训练集的输出作为输出重新训练一个学习器来得到最终结果。

      这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。

      

  • 相关阅读:
    Add Two Numbers
    Reverse Linked List II
    Reverse Linked List
    Remove Duplicates from Sorted List
    Remove Duplicates from Sorted List II
    Partition List
    Intersection of Two Linked Lists
    4Sum
    3Sum
    2Sum
  • 原文地址:https://www.cnblogs.com/keye/p/10244700.html
Copyright © 2011-2022 走看看