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

机器学习算法(五):集成学习

一、个体与集成集成学习(ensemblelearning)通过构建并结合多个学习器来完成学习任务。下图显示出集成学习的一般结构:

一、个体与集成

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务。下图显示出集成学习的一般结构:

机器学习算法(五):集成学习 - 文章图片

集成学习一般结构:先产生一组个体学习器(也称基学习器),再用某种策略将它们结合起来。基学习器通常是由现有算法(如逻辑回归、决策树)从训练数据产生。基学习器是同种算法,例如都是决策树,也可以包含不同算法,例如决策树和神经网络。

集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的性能。因此基学习器往往也被称为弱学习器,尽管它们可能并不是很弱。

集成学习一定比基学习器好吗?在一般经验中,如果把好的东西和坏的东西掺在一起,得到的是中等的东西。那集成学习怎样才能获得比基学习器好的结果呢?一般情况下:要获得好的集成效果,基学习器应”好而不同“,具体地,每个基学习器的分类准确率应超过50%,并且要彼此不同,因为只有这样才能让集成学习捕捉到每个学习器独特的优点。

按照集成方法的不同,集成学习的类型分为:Bagging、Boosting和Stacking。

二、Bagging

Bagging全称Boostrap AGGregatING,是并行式集成学习方法的代表。Bagging的原理为:给定包含m个样本的初始数据集,使用自助抽样法(bootstrap sampling)得到一个也包含m个样本的数据集,依此法得到T个数据集。然后基于每个训练集训练出一个基学习器,再将这T个基学习器进行结合。对于分类任务,采取投票法;对于回归任务,采取平均法。

值得注意的是,自助抽样法只是用了源数据集63.2%的样本,剩下的36.8%的样本可当作”验证集“来对泛化性能进行”包外估计“。

从偏差—方差分解的角度来看,Bagging主要关注降低方差(多个基学习器使得预测结果更加稳定),因此它在决策树、神经网络等易受样本扰动的不稳定学习器上效果更加明显。

Bagging中最著名的算法就是随机森林(Random Forest)。它是Bagging的一个扩展变体。随机森林在以决策树作为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。传统的Bagging会对样本进行自主抽样,但会使用所有的属性,而随机森林每次只是随机选择部分属性,从而形成了“双随机”,即样本随机和属性随机。

三、Boosting

Boosting是一类可将弱学习器提升为强学习器的算法。Boostin类算法的原理类似,大致为:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后面的基学习器中受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此往复,直至基学习器个数达到了预先指定的数量T,此时由于每个基学习器的表现不一样,对表现好的赋予更大的权重,最终将这T个学习器进行加权结合。

Boosting类算法中最著名的就是AdaBoost,此外还有GBDT、XgBoost和LightGBM等。

 

 



推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • ElasticSearch成功安装完毕。 测试数据添加出现{  error:{    root_cause ... [详细]
  • 基于SpringBoot打造在线教育系统(6)– 二级分类模块UI篇
    这一节来做二级分类,为了快速开发,一级分类只做新增,暂时不考虑修改和删除,如果一定要删,就去数据库删吧。我们接下来,需要通过一级分类,获取所有的二级分类。开始 ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
author-avatar
W你是我的小太阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有