算法梳理boosting\bagging\RF(1)

2023-11-05

1.集成学习概念

集成学习方法,就是将训练的学习器集成在一起,原理来源于PAC (Probably Approximately Correct,可能近似正确学习模型)。

在PAC学习模型中,若存在一个多项式级的学习算法来识别一组概念,并且识别正确率很高,那么这组概念是强可学习的;而如果学习算法识别一组概念的正确率仅比随机猜测略好,那么这组概念是弱可学习的。他们提出了弱学习算法与强学习算法的等价性问题,即是否可以将弱学习算法提升成强学习算法。如果两者等价,那么在学习概念时,只要找到一个比随机猜测略好的弱学习算法,就可以将其提升为强学习算法,而不必直接去找通常情况下很难获得的强学习算法。

集成学习是指将若干弱分类器组合之后产生一个强分类器。弱分类器(weak learner)指那些分类准确率只稍好于随机猜测的分类器(error rate < 50%)。Bootstrap,Bagging,Boosting都属于集成学习方法。

1.1 集成学习分类

一般来说集成学习(根据集成思想,架构)可以分为三大类:
(1)用于减少方差的bagging
(2)用于减少偏差的boosting
(3)用于提升预测结果的stacking

目前,同质个体学习器应用最为广泛,根据这些个体学习器之间是否存在依赖关系可以将其分为两类:
(1)串行集成方法,这种方法串行地生成基础模型(如AdaBoost)。串行集成的基本动机是利用基础模型之间的依赖。通过给错分样本一个较大的权重来提升性能
(2)并行集成方法,这种方法并行地生成基础模型(如Random Forest和Bagging)。并行集成的基本动机是利用基础模型的独立性,因为通过平均能够较大地降低误差

1.2 集成学习步骤

集成学习一般可分为以下3个步骤。

(1) 找到误差互相独立的个体学习器。
  这里可以选取ID3决策树作为基分类器。 事实上, 任何分类模型都可以作为基分类器, 但树形模型由于结构简单且较易产生随机性所以比较常用。
(2)训练个体学习器。
  在集成学习中需有效地生成多样性大的个体学习器。与简单地直接用初始数据训练出个体学习器相比,如何增强多样性呢?一般思路是在学习过程中引入随机性,常见做法主要是对数据样本、 输入属性、输出表示 、 算法参数进行扰动。
  1)数据样本扰动:通常是基于采样法, 例如在 Bagging中使用自助采样(即有放回的采样),在 AdaBoost 中使用序列采样.
  2)输入属性扰动:从初始属性集中抽取出若干个属性子集,再基于每个属性子集训练一个基学习器。比如随机子空间 (random subspace)算法。
  3)输出表示扰动:可对训练样本的类标记稍作变动,如"翻转法" (Flipping Output)随机改变一些训练样本的标记;也可对输出表示进行转化,如"输出调制法" (Output Smearing) 将分类输出转化为回归输出后构建个体学习器;
  4)算法参数扰动:基学习算法一般都有参数需进行设置,例如神经网络的隐层神经元数、初始连接权值等。通过随机设置不同的参数,往往可产生差别较大的个体学习器.
合并个体学习器的结果。
(3)常见的结合策略:平均法(averaging),投票法(voting),学习法(比如 stacking)
  学习器的结合能带来以下优点
  ● 统计方面,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若单个学习器可能因为误选而导致泛化性能不佳,结合多个学习器则会减少风险。
  ● 计算方面,通过多次运行之后进行结合,可降低陷入局部最小的风险。
  ● 表示方面,通过结合多个学习器,相应的假设空间也有所扩大,有可能可以到达更好的效果。

  1)ave

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法梳理boosting\bagging\RF(1) 的相关文章

  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • 每个人都能制作的简易版QQ音乐(HTML+CSS+JQuery)

    自制系列二它来了 如果在制作过程中有如何问题你都可以私信我 我会答复你的 今天中秋节 首先祝大家中秋节快乐 因为没什么礼物送给大家 所以在这里给大家安利一份简易版QQ音乐的制作 过程很简单 每个人都能学会 下面将是制作步骤了 先建好目录如下
  • 未将对象引用设置到对象的实例--可能出现的问题总结

    一 网络上的一般说法 1 ViewState 对象为Null 2 DateSet 空 3 sql语句或Datebase的原因导致DataReader空 4 声明字符串变量时未赋空值就应用变量 5 未用new初始化对象 6 Session对象
  • python代码使用cython进行加密

    python代码加密 前言 加密的多种方式 Cython加密 步骤 注意 部署 前言 加密的多种方式 发布编译过的pyc文件 缺点 很容易被反编译 PyInstaller 是一个用来将 Python 程序打包成一个独立可执行软件包 支持 W
  • 粉丝提问

    粉丝提问 c语言 如何定义一个和库函数名一样的函数 并在函数中调用该库函数 一个端口号可以同时被两个进程绑定吗 两个线程 两个互斥锁 怎么形成一个死循环 一个例子让你看清线程调度的随机性 问题描述 某个函数fun 1 是在lib内 没法修改
  • R语言:cbind()和rbind()

    可以利用函数cbind 和rbind 把向量和矩阵拼成一个新的矩阵 概略地说 cbind 把矩阵横向合并成一个大矩阵 列方式 而rbind 是纵向合并 行方式 cbind 根据列进行合并 即叠加所有列 m列的矩阵与n列的矩阵cbind 最后
  • ant design of vue 之文件上传组件(腾讯云)封装

    原理 通过调用后台接口获取腾讯云秘钥 然后将秘钥以及文件信息上传到腾讯云 获取文件腾讯云存储信息 最后组件将腾讯云存储信息返回出去 在组件外部调用后台接口将腾讯云信息存到后台 安装cos js sdk v5依赖 npm i cos js s
  • 2021数据治理工具图谱研究报告 附下载

    根据2021年4月发布的 国家数据资源调查报告 2020 显示 2019年我国数据产量总规模为3 9ZB 同比增加29 3 占全球数据总产量 42ZB 的9 3 人均数据产量方面 2019年我国人均数据产量为3TB 数据来源结构方面 数据资
  • 机器学习中的高斯过程

    0 前言 写这篇文章的目的就是为了总结一下最近在学习的高斯过程的一些内容 但是由于我是初学者可能有些地方理解不到位 请大家多多谅解 文末附上了一些数学方面的推导 1 高斯过程定义 高斯过程是在连续域上定义的一种随机过程 可以看成连续域中所有
  • vue中通过js把从接口取到的url中的{}里的参数替换成对应的值

    最近工作中遇到个需求 首先在一个页面中给按钮配置个点击跳转的链接 手动输入需要跳转的url及其需要的参数 后续要在另一个页面中通过接口取到配置的这个url 并替换掉当中的参数 第一次处理这种情况 所以记录一下 前端页面配置url 参数值通过
  • 【YOLO系列】YOLOv5超详细解读(网络详解)

    前言 吼吼 终于来到了YOLOv5啦 首先 一个热知识 YOLOv5没有发表正式论文哦 为什么呢 可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧 hh 目录 前言 一 YOLOv5的网络结构 二 输入端 1 Mosaic数据
  • m118w重置墨粉_富士施乐 Fuji Xerox DocuPrint M118w/M118z重置墨粉页面计数器及重置硒鼓...

    富士施乐M118w的硒鼓和分仓是独立的 前几天M118w就提示墨粉已经不足 于是Pop就看了一下机器 打印了约1200张了 随机器来的原装可能就是这样而已 于是就了解了一下富士施乐M118w如何加粉 如何换硒鼓 以及如何清零重置硒鼓的操作
  • Mac os 10.14装virtualbox 失败的解决方案

    1 Mac 系统装virtualbox 失败如下 2 由于Mac 10 14的安全级别更高 所以导致这个软件安装过程失败 需要一下操作安装就没问题 2 1 开启通用里的允许任何来源 sudo spctl master disable 2 2
  • LeetCode 44 Wildcard Matching (通配符匹配 记忆化搜索 剪枝 推荐)

    Given an input string s and a pattern p implement wildcard pattern matching with support for and Matches any single char
  • Freertos中vTaskDelay()是怎么用的

    1 常见的使用场景 void vLED Task void pvParameters while 1 Heartbeat LED vTaskDelay 1000 portTICK RATE MS 说明 上面这段代码的意思是 led翻转后经过
  • Exception in thread "main" java.lang.NoClassDefFoundError解决

    1 错误描述 Exception in thread main java lang NoClassDefFoundError HelloWorld wrong name org xuwei HelloWorld at java lang C
  • 2018年最好的8款杀毒软件

    如今 网络犯罪和欺骗和攻击电脑的病毒 特洛伊木马和网络钓鱼诈骗导致损失的事件并没有像人们想像的那么频繁发生 这意味着很多人正在使用最强大的安全软件保护自己的电脑 而其一如既往地重要 这就是为什么推出这个2018年全球最佳防病毒软件名单的原因
  • 搭建商城的微服务架构-1

    创建父项目 mall 先创建一个 父项目 mall 再在这个父项目中创建多个子项目 修改pom文件 最终mall的pom文件如下
  • 目标检测算法回顾之Anchor free篇章

    基于anchor free的目标检测方法 一 背景与定义 1 1 anchor based的特征 1 2 anchor的好处 1 3 anchor的局限 1 4 anchor free 与anchor based的区别 二 概述 三 早期探
  • 以太坊2.0 节点搭建:共识端+执行端

    1 配置 本人使用配置 共识端 prysm 版本 3 1 1 执行端 geth 版本 1 10 23 当前使用1 10 25 OS centos7 6 CPU 8核 Memory 16GB RAM Storage 3T SSD Networ
  • 算法梳理boosting\bagging\RF(1)

    LeetCode题目记录 1 集成学习概念 1 1 集成学习分类 1 2 集成学习步骤 2 个体学习器概念 3 boosting bagging 3 1 boosting 3 2 bagging 3 3 二者的区别 4 随机森林的思想 5