• 集成学习


    机器学习的一大方法分支——集成学习(Ensemble Learning)
    集成学习的思想是将若干个个体学习器组合之后产生一个新学习器。也可以说集成学习就是训练若干个个体学习器(大多数文章称为弱学习器),通过一定的结合策略,最终形成一个强学习器,以达到博采众长的目的。
    也就是说集成学习只关注两个问题:第一是如何得到若干个个体学习器。第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。
     
    一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么这个概念是强可学习的;一个概念如果存在一个多项式的学习算法能够学习它,并且学习的正确率仅比随机猜测略好,那么这个概念是弱可学习的;在学习中,如果已经发现了“弱学习算法”,能否将他提升为“强学习算法”。集成学习就是解决这个问题的。
     
    个体学习器根据种类是否相同划分为两类:同质个体、异质个体
    1、个体学习器的种类相同,称为同质个体学习器。
    例如随机森林都是决策树个体学习器。 目前同质个体学习器的应用是最广泛的。
    2、个体学习器的种类不同,称为异质个体学习器。
    例如采用逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过结合策略来确定最终的强学习器。
     
    结合策略大致分为三类:平均法、投票法、学习法
    1、平均法主要针对回归算法对于若干个弱学习器的输出进行平均得到最终的预测输出。
    2、投票法分为三类:相对多数投票法,也就是少数服从多数;绝对多数投票法,不光要求获得最高票,还要求票过半数;加权投票法,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。
    3、学习法,将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
     
     
     
    根据个体学习器之间是否依赖的关系、样本权重是否相当的性质,集成学习分为两大派系:Bagging、Boosting。Bagging单词释义:bootstrap aggregating,独立聚集。Boosting单词释义:助推、提升。
     
    Bagging系列算法:个体学习器之间不存在强依赖关系,个体学习器可以并行生成。样本随机重抽样,权重相当。采用平均/投票的结合策略生成最终的强学习器。代表算法:随机森林分类算法。
    非常准确的描述:给定一个大小为n的训练集D,Bagging算法从中均匀、有放回地选出m个大小为n'的子集D_{i},作为新的训练集。在这m个训练集上使用分类、回归等算法,可得到m个模型,再通过取平均值、取多数票等方法,即得到Bagging结果。
    Bagging 算法的工作机制:
    (1)通过 T 次放回式随机采样,可以得到T个采样集;
    (2)对于这 T 个采样集,可以分别独立的训练出 T 个弱学习器;
    (3)对这 T 个弱学习器通过平均/投票的集合策略得到最终的强学习器。
     
    Boosting系列算法:个体学习器之间存在强依赖关系,个体学习器需要串行生成。预测错误的样本其权重大于预测正确的。采用加权求和的学习法结合策略生成最终的强学习器。代表算法:AdaBoost、GBDT(Gradient Boosting Decision Tree)、XGBoost(XGBoost就是大名鼎鼎的数据科学竞赛的制胜法宝)。
    Boosting 算法的工作机制:
    (1)从训练集用初始权重训练出一个弱学习器1;
    (2)根据弱学习结果,调整训练样本权重,预测错误的权重变高,使得其在后面的弱学习器2得到重视;
    (3)基于调整权重后的训练集来训练弱学习器2;
    (4)如此重复进行(2)、(3)步骤,直到弱学习器数达到事先指定的数目 T;
    (5)最终将这 T 个弱学习器通过加权求和的集合策略得到最终的强学习器。 
    【这实际上是一个不断改变权重训练的迭代过程】
     
     
    Bagging和Boosting的个体学习器可以是同质,也可以是异质。
     
    Bagging、Boosting的区别:
    样本选择:Bagging算法是有放回的随机采样;Boosting算法是每一轮训练集不变,只是训练集中的每个样例在分类器中的权重发生变化,而权重根据上一轮的分类结果进行调整;
    样例权重:Bagging使用随机抽样,样例的权重相当;Boosting根据错误率不断的调整样例的权重值, 错误率越大则权重越大;
    预测函数:Bagging所有预测模型的权重相等;Boosting算法对于误差小的分类器具有更大的权重。
    并行计算:Bagging算法可以并行生成各个基模型;Boosting理论上只能顺序生产,因为后一个模型需要前一个模型的结果;
    Bagging是减少模型的variance(方差);Boosting是减少模型的Bias(偏度)。
    Bagging里每个分类模型都是强分类器,因为降低的是方差,方差过高需要降低是过拟合; Boosting里每个分类模型都是弱分类器,因为降低的是偏度,偏度过高是欠拟合。
     
     
  • 相关阅读:
    [Swift]数学库函数math.h | math.h -- mathematical library function
    [Swift]LeetCode492. 构造矩形 | Construct the Rectangle
    FansMail:邮件发送标准API与技术实现(Java)
    FansMail:邮件发送标准API与技术实现(Java)
    大话世界格局:春秋五霸与战国七雄
    大话世界格局:春秋五霸与战国七雄
    大家好,我是FansUnion,雷文
    大家好,我是FansUnion,雷文
    2013年总结(2)-财务收入与支出
    2013年总结(2)-财务收入与支出
  • 原文地址:https://www.cnblogs.com/myshuzhimei/p/11746837.html
Copyright © 2020-2023  润新知