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

news2024/11/28 18:51:44

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.coloradmin.cn/o/1295667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

luceda ipkiss教程 43:画渐变圆弧型波导

案例分享: from si_fab import all as pdk import ipkiss3.all as i3 from ipcore.properties.restrictions import RestrictTuple from ipkiss.geometry.shapes.modifiers import __ShapePathBase__ import numpy as np from math import atan2class ShapePathTa…

spring boot整合mybatis进行部门管理管理的增删改查

部门列表查询: 功能实现: 需求:查询数据库表中的所有部门数据,展示在页面上。 准备工作: 准备数据库表dept(部门表),实体类Dept。在项目中引入mybatis的起步依赖,mysql的…

【ArcGIS Pro微课1000例】0052:基于SQL Server创建企业级地理数据库案例

文章目录 环境搭建创建企业级数据库连接企业级数据库环境搭建 ArcGIS:ArcGIS Pro 3.0.1Server.ecp:版本为10.7SQL Server:版本为SQL Server Developer 2019创建企业级数据库 企业级地理数据库的创建需要通过工具箱来实现。工具位于:数据管理工具→地理数据库管理→创建企业…

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

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

C#网络编程(System.Net命名空间)

目录 一、System.Net命名空间 1.Dns类 (1)示例源码 (2)生成效果 2.IPAddress类 (1)示例源码 (2)生成效果 3.IPEndPoint类 (1) 示例源码 &#xff0…

中东电商指南分享!盘点中东四大跨境电商平台

提到跨境电商新蓝海,就不得不想起土豪聚集地 ——中东,中东地区拥有庞大的人口、高人均GDP、强大的消费能力以及广泛普及的互联网,但外出购物却相对不便,正是这一特点为中东跨境电商市场创造了巨大的优势。随着中东地区电商的崛起…

excel做预测的方法集合

一. LINEST函数 首先,一元线性回归的方程: y a bx 相应的,多元线性回归方程式: y a b1x1 b2x2 … bnxn 这里: y - 因变量即预测值x - 自变量a - 截距b - 斜率 LINEST的可以返回回归方程的 截距(a) 和 斜…

macOS Big Sur/Mac电脑安装vscode显示您没有权限来打开应用程序‘Visual Studio Code‘ 请联系您的电脑或网络管理员问题修复

错误方法 首先我以为我的权限不足。,需要去用户群组里设置。结果根本不是这个的问题。 1.在系统偏好设置->用户与群组检查了一下我的用户是不是管理员 结果发现是管理员 2.根据苹果提示,右键我的文件夹->显示简介->最下面的共享与权限 解锁&…

【K8s】Kubernetes CRD 介绍(控制器)

文章目录 CRD 概述1. 操作CRD1.1 创建 CRD1.2 操作 CRD 2. 其他笔记2.1 Kubectl 发现机制2.2 校验 CR2.3 简称和属性 3. 架构设计3.1 控制器概览 参考 CRD 概述 CR(Custom Resource)其实就是在 Kubernetes 中定义一个自己的资源类型,是一个具…

python的extend函数详解

文章目录 语法功能示例例1:添加列表例2:添加元组例3:添加集合例4:添加字典(只添加键)例5:添加字符串例6:混合类型扩展例7:扩展空列表或不可迭代对象 注意事项&#xff1a…

❀dialog命令运用于linux❀

目录 ❀dialog命令运用于linux❀ msgbox部件(消息框) yesno部件(yesno框) inputbox部件(输入文本框) textbox部件(文本框) menu部件(菜单框) fselect部…

GeoPandas初体验:它是什么,我用它展示一下shp矢量数据

GeoPandas 是一个开源的 Python 库,用于处理地理空间数据。它扩展了 Pandas 这个流行的 Python 数据操作库,增加了对地理数据类型和操作的支持。GeoPandas 结合了 Pandas、Matplotlib 和 Shapely 的功能,提供了一个易于使用且高效的工具&…

【SpringCache】快速入门 通俗易懂

1. 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis(常用…

《洛谷深入浅出进阶篇》p2568 GCD

P2568 GCD - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2568 大致题意&#xff1a;给定正整数n&#xff0c;求1< x,y<n 且 gcd&#xff08;x&#xff0c;y&#xff09;为素数的数对&#xff08;x&#xff0c;y&#xff09;有多少对。…

Power BI - 5分钟学习透视列

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

智能优化算法应用:基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.食肉植物算法4.实验参数设定5.算法结果6.参考…

leetcode 面试题 02.02. 返回倒数第k个节点

提建议就是&#xff0c;有些题还是有联系的&#xff0c;建议就收看完 876.链表的中间节点&#xff08;http://t.csdnimg.cn/7axLa&#xff09;&#xff0c;再将这一题联系起来 面试题 02.02. 返回倒数第k个节点 题目&#xff1a; 实现一种算法&#xff0c;找出单向链表中倒数第…

2023年加拿大百倍股研究报告

前言 股市中的百倍股&#xff0c;即那些在短期内实现超过百倍增长的股票&#xff0c;常引发投资者的深度关注和震撼。这类股票的成功并非偶然&#xff0c;而是基于公司或行业坚实的基础和长期的努力。千际投行策划的系列百倍股报告旨在为投资者提供深刻的洞察力和启示&#xf…

题目:挑选子串(蓝桥OJ 1621)

题目描述&#xff1a; 解题思路&#xff1a; 采用双指针的快慢指针。与蓝桥OJ1372类似。 图解 题解&#xff1a; #include <bits/stdc.h> using namespace std;const int N 1e5 9; int a[N];int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n, m…

轮询分区的设置

终于可以写MPI了&#xff0c;没想到&#xff0c;刚开始就当头一棒&#xff0c;我按照之前的配置MPI环境&#xff0c;配置完成就报错 好家伙&#xff0c;仔细检查了每一个步骤都没找到问题&#xff0c;上网搜索了一些解决方案&#xff0c;也没有解决。所幸&#xff0c;在配置MPI…