热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

集成学习①——集成学习原理、分类和结合方法

集成学习系列目录:集成学习②——Adaboost算法原理及python实现集成学习③——Sklearn-Adaboost库参数及实战一、集成学习的原理集成学习就是

集成学习系列目录:
集成学习②——Adaboost算法原理及python实现
集成学习③——Sklearn-Adaboost库参数及实战

一、集成学习的原理

集成学习就是"博采众长",将一组弱学习器通过一定方法给合在一起得到强学习器,这个强学习器的泛化能力相对任何一个弱学习器都要好,甚至还有起到三个臭皮匠,赛过诸葛亮的效果

这里有2个问题,有哪些弱学习器可以用?怎么结合?

弱学习器:以分类来说,分类效果要优于随机分类,也就是准确率高于50%的学习器,且计算速度快,通常以决策树神经网络为主,一组弱学习器可以是一样的,也可以不一样,目前常用的算法还是以同样的为主。

二、集成学习的分类

如何结合:根据弱学习器之间是否存在依赖性,分为Boosting和Bagging。
Boosting:使增长,顾名思义,后训练的学习器会比前一个要更强,代表算法有 Adaboost和Gradient Boosting Tree(GBDT);
Bagging:袋子,源于从袋子里有放回性取样,是说各学习器基于随机样本独立训练,后训练的学习器并比一定比前一个好,代表算法是随机森林

1、Boosting算法原理
Boosting算法可以通过这一张来解释,图来自于机器学习大神 @ 刘健平
在这里插入图片描述
从图上可看出,Boosting算法主要有以下几个步骤:

① 先赋予所有样本相同的权重,比如10个样本,每个样本都是1/10
② 先用一个弱分类器训练后,得到误差率
③ 通过误差率更新样本的权重系数
④ 迭代第二步和第三步,直到误差率达到要求的范围
⑤ 通过一定的方法将弱分类器结合,得到最终分类器

Adaboost是将错误分类的样本权重之和作为误差率,基于误差率降低分类正确样本的仅重,提升分类错误样本的权重,同时计算出此弱学习器最终学习器中的权重,误差率越低,权重越高

2、Bagging算法原理
在这里插入图片描述
从图上可看出,Bagging算法原理更为简单明了,主要有以下几个步骤:

① 从训练集中随机抽样,得到m个样本
② 基于m个样本训练得到一个弱学习器
③ 重复①和②,直到弱学习器数量达到设定要求
④再通过一定策略将弱学习器结合起来,得到最终的分类器

随机采用使得的是自助采样,即有放回式地采样,因此弱分类器之间的训练样本会有重复的一部分,也会有一部分样本始终没有被抽到。

随机森林在样本随机的基础上,还对每棵树的特征选择上也做了随机,进一步提升了模型的泛化能力。

三、集成学习的组合方法

① 投票法
投票法是用于分类问题,由多个学习器投票,哪个类别最多就是哪个。所谓的少数服从多数,如果出现数量相同,那就在相同中随机选择一个;
升级版:
绝对多数投票法,在相对多数投票结果基础上,还要过半才算有效;
加权投票法:赋予不同学习器不同的权重,再加权求和

② 平均法
平均法用于回归预测问题,对学习器的结果求算法平均,得到最终的预测结果
升级版:加权求和

③ stack法
上2个方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大,于是就有了学习法这种方法,代表方法是stacking。
当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

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


推荐阅读
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 深入解析层次聚类算法
    本文详细介绍了层次聚类算法的基本原理,包括其通过构建层次结构来分类样本的特点,以及自底向上(凝聚)和自顶向下(分裂)两种主要的聚类策略。文章还探讨了不同距离度量方法对聚类效果的影响,并提供了具体的参数设置指导。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 如何撰写数据分析师(包括转行者)的面试简历?
    CDA数据分析师团队出品,作者:徐杨老师,编辑:Mika。本文将帮助您了解如何撰写一份高质量的数据分析师简历,特别是对于转行者。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 本文介绍了如何利用OpenCV库进行图像的边缘检测,并通过Canny算法提取图像中的边缘。随后,文章详细说明了如何识别图像中的特定形状(如矩形),并应用四点变换技术对目标区域进行透视校正。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 新型量子内核助力机器学习分类
    国际科研团队开发出一种创新的量子机器学习分类方法,利用非线性量子内核显著提升了分类精度,为未来量子计算技术的发展开辟了新路径。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • Vision Transformer (ViT) 和 DETR 深度解析
    本文详细介绍了 Vision Transformer (ViT) 和 DETR 的工作原理,并提供了相关的代码实现和参考资料。通过观看教学视频和阅读博客,对 ViT 的全流程进行了详细的笔记整理,包括代码详解和关键概念的解释。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
author-avatar
shinesmini
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有