机器学习---集成学习的初步理解

1. 集成学习

        集成学习(ensemble learning)是现在非常火爆的机器学习方法。它本身不是一个单独的机器学

习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集

成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有

的机器学习领域都可以看到集成学习的身影。

集成学习通过建立几个模型来解决单⼀预测问题。它的⼯作原理是⽣成多个分类器/模型,各自独

立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何⼀个单分类的做出预测。 

 只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的。

       对于训练集数据,通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强

学习器,以达到博采众长的目的。集成学习有两个主要的问题需要解决,第一是如何得到若干个个

体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。

2. 集成学习例子 

对下面实例D1进行分类,得到两个分类结果h1和h2:

对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能:

定义:集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得

比单个学习器更好的学习效果的一种机器学习方法。如果把单个分类器比作一个决策者的话,集成

学习的方法就相当于多个决策者共同进行一项决策。

在概率近似正确(PAC)学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能

够学习它,如果正确率很高,那么就称这个概念是强可学习(strongly learnable)的。如果正确率

不高,仅仅比随机猜测略好,那么就称这个概念是弱可学习(weakly learnable)的。后来证明强

可学习与弱可学习是等价的。

3. 解决的问题

3.1 弱分类器之间的关系

第一种就是所有的个体学习器都是一个种类的,或者说是同质的。

第二种是所有的个体学习器不全是一个种类的,或者说是异质的。

个体学习器有两种选择:

第一种就是所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或

者都是神经网络个体学习器

第二种是所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训

练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某

种结合策略来确定最终的分类强学习器

目前而言,同质个体学习器应用最广泛,一般常说的集成学习的方法都是指的同质个体学习器。而

同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间

是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基

本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,

一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。

3.2 如何选择个体学习器

考虑准确性和多样性:

准确性指的是个体学习器不能太差,要有一定的准确度;

多样性则是个体学习器之间的输出要具有差异性。

3.3 弱分类器的组合策略

平均法:对于数值类的回归预测问题

思想:对于若干个弱学习器的输出进行平均得到最终的预测输出。

简单平均法:
加权平均法:

其中wi是个体学习器hi的权重,通常有wi≥0,

②投票法:对于分类问题的预测

思想:多个基本分类器都进行分类预测,然后根据分类结果用某种投票的原则进行投票表决,按照

投票原则使用不同投票法:一票否决  、阈值表决 、 少数服从多数。

阈值表决:首先统计出把实例x划分为Ci和不划分为Ci的分类器数目分别是多少,然后当这两者比

例超过某个阈值的时候把x划分到Ci。

③学习法:之前的方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差

较大。代表方法是Stacking。

思想:不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,分为2层。第一层是用

不同的算法形成T个弱分类器,同时产生一个与原数据集大小相同的新数据集,利用这个新数据集

和一个新算法构成第二层的分类器。

4. 集成学习方法

根据个体学习器的生成方式,目前的集成学习方法大致可分为两类:

Boosting:个体学习器间存在强依赖关系,必须串行生成的序列化方法;串行:下一个分类器只

在前一个分类器预测不够准的实例上进行训练或检验。

Bagging:个体学习器间不存在强依赖关系,可同时生成的并行化方法。并行:所有的弱分类器都

给出各自的预测结果,通过组合把这些预测结果转化为最终结果。

4.1 Boosting

重赋权法:即在训练过程的每一轮中,根据样本分布为每一个训练样本重新赋予一个权重。对无法

接受带权样本的基学习算法,则可以通过重采样法来处理,即在每一轮的学习中,根据样本分布对

训练集重新进行采样,在用重采样而来的样本集对基学习器进行训练。

代表算法:

Adboost,决策树+adboost=提升树

GBDTGradient BoostDecision Tree)梯度提升决策树,决策树+Gradient Boosting=GBDT

其他叫法: Gradient Tree Boosting,GBRT (Gradient BoostRegression Tree) 梯度提升回归树

                    MART (MultipleAdditive Regression Tree) 多决策回归树,Tree Net决策树网络

4.2 Bagging (bootstrap aggregation )

从样本集中用Bootstrap采样选出n个样本,在所有属性上,对这n个样本建立分类器(CART or

SVM or ...),重复以上两步m次,i.e.build m个分类器(CART or SVM or ...)。将数据放在这m

个分类器上跑,最后vote看到底分到哪一类。

Bootstrap方法是非常有用的一种统计学上的估计方法。 Bootstrap是对观测信息进行再抽样,进而

对总体的分布特性进行统计推断。Bootstrap是一种有放回的重复抽样方法,抽样策略就是简单的

随机抽样。

随机森林:决策树+bagging=随机森林

4.3 两者的区别

从偏差-方差分解的角度:

偏差(bias) 描述的是预测值的期望真实值之间的差距。偏差越大,越偏离真实数据。

方差(variance) 描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。

方差越大,数据的分布越分散。

Boosting主要关注降低偏差:偏差刻画了学习算法本身的拟合能力,Boosting思想,对判断错误的

样本不停的加大权重,为了更好地拟合当前数据,所以降低了偏差,因此Boosting能基于泛化性能

相当弱的学习器构建出很强的集成。Boosting是把许多弱的分类器组合成一个强的分类器。

Bagging主要是降低方差:度量了同样大小的数据集的变动所导致的学习性能的变化。刻画了数据

扰动所造成的影响。 Bagging思想,随机选择部分样本来训练处理不同的模型,再综合来减小方

差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更明显。Bagging是对许多

强(甚至过强)的分类器求平均。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/259154.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman做接口测试

之前搞自动化接口测试,由于接口的特性,要验证接口返回xml中的数据,所以没找到合适的轮子,就自己用requests造了个轮子,用着也还行,不过就是case管理有些麻烦,近几天又回头看了看postman也可以玩…

LeNet对MNIST 数据集中的图像进行分类--keras实现

我们将训练一个卷积神经网络来对 MNIST 数据库中的图像进行分类,可以与前面所提到的CNN实现对比CNN对 MNIST 数据库中的图像进行分类-CSDN博客 加载 MNIST 数据库 MNIST 是机器学习领域最著名的数据集之一。 它有 70,000 张手写数字图像 - 下载非常简单 - 图像尺…

将项目代码上传到github

文章目录 1. 上传步骤1.1. 设置保存项目代码的文件夹1.2. 打开git1.3. 连接到github仓库1.4. 将本地文件上传到github 附录. git 常用命令 摘要:该文章主要从上传代码步骤讲起,关于git下载和其环境配置没有涉及到。 1. 上传步骤 1.1. 设置保存项目代码…

Vue脚手架 生命周期 组件化开发

Vue脚手架 & 生命周期 & 组件化开发 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔…

【数据结构】链表OJ题(顺序表)(C语言实现)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

Vue 一个简单的mixin的运用,对mixin的初步了解

刚学vue的时候,从一个大神口中老是说什么混入混入,觉得很神秘,后来一了解,原来如此: 其实从字面意思来理解,就是将代码里面的内容混在一起了,上一段代码可能比较好理解一点。 先定义一个简单混…

视频剪辑:视频转码实用技巧,批量将MP4转为MP3音频

随着数字媒体设备的普及,视频和音频文件已成为日常生活中的重要组成部分。有时,可能要将MP4视频文件转换为MP3音频文件,以提取其中的音频内容或者进行其他处理。这是耗费时间的任务,那要如何操作呢?本文详解云炫AI智剪…

2023年7月31日 Go生态洞察:探索项目模板实验

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Flink入门之核心概念(三)

任务槽 TaskSlots: 任务槽,是TaskManager提供的用于执行Task的资源(CPU 内存) TaskManager提供的TaskSlots的个数:主要由Taskmanager所在机器的CPU核心数来决定,不能超过CPU的最大核心数 1.可以在flink/conf/flink-c…

Python configparser 模块:优雅处理配置文件的得力工具

更多资料获取 📚 个人网站:ipengtao.com 配置文件在软件开发中扮演着重要的角色,而Python中的 configparser 模块提供了一种优雅而灵活的方式来处理各种配置需求。本文将深入介绍 configparser 模块的各个方面,通过丰富的示例代码…

Power BI - 5分钟学习透视列

每天5分钟,今天介绍Power BI透视列功能 什么是透视列? 透视列就是把行数据转换成列数据,也就是大家在工作中常说的行转列。 如何进行逆透视操作: 1,导入的【Sales】表,样例内容如下: 2, 【Ho…

20 套监控平台统一成 1 套 Flashcat,国泰君安监控选型提效之路

author:宋庆羽-国泰君安期货 运维工作最重要的就是维护系统的稳定性,其中监控是保证系统稳定性很重要的一环。通过监控可以了解系统的运行状态,及时发现问题和系统隐患,有助于一线人员快速解决问题,提高业务系统的可用时长。 作为…