• 集成学习


    集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统。

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

    根据个体学习器的生成方式,目前的集成学习方法大致可以分为两大类,即个体学习器间存在强依赖关系,必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法,前者的代表时Boosting,后者的代表则是Bagging和“随机森林”。

    Boosting是一族可将弱学习器提升为强学习器的算法,这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。Boosting族算法最著名的代表时AdaBoost.

    AdaBoost:

    原理

    简单的说,多个弱分类器训练成为一个强分类器,将一系列的弱分类器以不同的权重比组合作为最终分类选择。

    计算过程

    1. 初始化基础权重;
    2. 奖权重矩阵,通过已的分类器计算错误率,选择错误率最低的为最优分类器;
    3. 通过分类器权重公式,减少正确样本分布,增加错误样本分布,得到新的权重矩阵和当前k轮的分类器权重;
    4. 将新的权重矩阵,带入上面的步骤2和3,重新计算权重矩阵;
    5. 迭代N轮,记录每一轮的最终分类器权重,得到强分类器。

    比喻说明

    1. 利用错题提升学习效率

      做正确的题,下次少做点,反正都会了;

      做错的题,下次多做点,集中在错题上;

      随着学习的深入,做错的题会越来越少。

    2. 合理跨界提高盈利

      苹果公司,软硬结合,占据了大部分的手机市场利润,两个领域的知识结合起来产生新收益。

    Bagging是并行式集成学习方法最著名的代表。给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,结果m次随机采样操作,我们得到含m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现。这样,我们可以采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合,这就是bagging的基本流程。

    另外,与标准AdaBoost只适用于二分类任务不同,bagging能不经修改地用于多分类、回归等任务。

    随机森林是bagging的一个扩展变体,随机森林在以决策树为基学习器构建bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择属性时是在当前结点的属性集合中选择一个最优属性,而在随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。随机森林简单、容易实现、计算开销小,在很多任务中展现出强大的性能。

    参考资料:

    1、机器学习

    2、https://www.cnblogs.com/chenqionghe/p/12301905.html

    3、三种集成学习算法原理及核心公式推导 (qq.com)

    4、从0开始实现一个Adaboost分类器(完整代码) (qq.com)

  • 相关阅读:
    Easy | LeetCode 154 | 剑指 Offer 11. 旋转数组的最小数字 | 二分法
    Easy | 剑指 Offer 17. 打印从1到最大的n位数 | 大数
    Easy | LeetCode 191 | 剑指 Offer 15. 二进制中1的个数 | 位运算
    Easy | 剑指 Offer 57
    Medium | LeetCode 15. 三数之和 | 双指针法
    jq load()方法实现html 模块化。
    vue 剪切图片上传头像,使用 cropperjs 实现
    vue 的nextTick的理解
    使用nodejs进行开发,concurrently模块,使我们同时执行多个命令。
    cookie生命周期expires 时间过期,但是cookie没有被浏览器清理的问题
  • 原文地址:https://www.cnblogs.com/enhaofrank/p/12901582.html
Copyright © 2020-2023  润新知