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

    集成学习

    集成学习通常是通过构建多个学习器来完成学习任务。

    • 同质集成 : 集成中只包含同种类型的学习器;
    • 异质集成 : 集成中的个体学习器是不同的种类;

    问题

    一般经验中,把一些好与坏的学习器集合到一起,最终的效果是比好的要差一点,比最差的要好一点;

    问题:如何获得比最好的单一学习器更好的效果

    集成学习的核心思路: 要获得好的集成,个体学习器应该好而不同,即准确性和多样性;

    分类

    • 个体学习器存在强依赖、必须串行生成的序列化方法,如 Boosting;
    • 不存在强依赖,可同时生成的并行化方法,如 Bagging 和随机森林;

    Boosting

    将一组弱学习器提升为强学习器的方法。主要关注于降低偏差。

    工作机制: 先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练集的样本分布进行调整,使得先前基学习器做错的样本在后续受到更多关注,使得基于调整后的样本分布来训练下一个学习器;如此重复,直至达到T个学习器;最后进行加权求和;

    代表算法 AdaBoost:

    • boost指集成方法中的提升方法,每一轮迭代寻找一个合适的弱学习器添加到模型中;
    • adaptive指所有的样本都有自己的权重,初始化时一致。每一轮迭代,我们要更新所有样本的权重,模型正确判别的样本权重减小,而错误判别的样本权重增加。这就是 Adaboost 的核心。
    computational graph
    • 分类器的权重如何更新?
    • 样本分布如何更新?

    Bagging 和 随机森林

    主要是关注模型的多样性,实现手段就是将大的数据集采样为小的数据集,每个数据集去学习一个分类器;

    Bagging

    基本流程:采样出T个含有m个样本的训练集,基于每个训练集训练一个基学习器,再将这些基学习器进行结合。主要关注于降低方差,在易受样本扰动的学习器上效果更好。

    算法流程如下:

    computational graph

    随机森林

    在以决策树为基学习器构建bagging的基础上,进一步在决策树的训练中引入随机属性选择。

    结合策略

    • 平均法
    • 投票法
    • 学习法,stacking

    多样性

    • 误差-分歧分解: (E=overline{E} -overline{A})

    多样性度量

    • 不合度量
    • 相关系数度量,无关为0,正相关为正,负相关为负
    • Q-统计量
    • (kappa)-统计量,涉及两个概念:取得一致和偶然达成一致

    多样性增强

    对数据样本、输入属性、输出表示、算法参数进行扰动;

  • 相关阅读:
    消息循环中的TranslateMessage函数和DispatchMessage函数,特别注意WM_TIMER消息
    单线程程序处理消息的方式!
    PeekMessage&GetMessage
    GetTickCount() 函数的作用和用法
    LPVOID 没有类型的指针
    sprintf详解
    memset用法详解
    C语言中%d,%o,%f,%e,%x的意义
    VS2013 C++ 动态链接库的生成
    visual studio 2013的C++开发环境不错--vs2013安装试用手记
  • 原文地址:https://www.cnblogs.com/curtisxiao/p/10892847.html
Copyright © 2011-2022 走看看