【机器学习8】采样

news2025/1/22 18:06:53

1 均匀分布随机数

均匀分布是指整个样本空间中的每一个样本点对应的概率(密度) 都是相等的。 根据样本空间是否连续, 又分为离散均匀分布和连续均匀分布。编程实现均匀分布随机数生成器一般可采用线性同余法(Linear Congruential Generator) 来生成离散均匀分布伪随机数:
在这里插入图片描述
得到的是区间[0,m−1]上的随机整数, 如果想要得到区间[0,1]上的连续均匀分布随机数, 用xt除以m即可.

2 采样

通用采样方法或采样策略的主要思想以及具体操作步骤:

方法主要思想具体步骤示意图
逆变换采样在函数变换法中, 如果变换关系φ(·)是x的累积分布函数的话, 则得到所谓的逆变换采样(Inverse Transform Sampling)(1)从均匀分布U(0,1)产生一个随机数ui;(2) 计算在这里插入图片描述 , 其中 在这里插入图片描述是累积分布函数的逆函数。上述采样过程得到的xi服从p(x)分布。在这里插入图片描述
拒绝采样对于目标分布p(x), 选取一个容易采样的参考分布q(x), 使得对于任意x都有在这里插入图片描述( 1) 从参考分布q(x)中随机抽取一个样本xi。( 2) 从均匀分布U(0,1)产生一个随机数ui,( 3) 如果在这里插入图片描述 , 则接受样本xi ; 否则拒绝, 重新进行步骤( 1) ~( 3) , 直到新产生的样本xi被接受。在这里插入图片描述
重要性采样用于计算函数f(x)在目标分布p(x)上的积分( 函数期望),在这里插入图片描述在这里插入图片描述

3 马尔可夫蒙特卡洛采样法(MCMC)

MCMC采样法基本思想是: 针对待采样的目标分布, 构造一个马尔可夫链, 使得该马尔可夫链的平稳分布就是目标分布; 然后,从任何一个初始状态出发, 沿着马尔可夫链进行状态转移, 最终得到的状态转移序列会收敛到目标分布, 由此可以得到目标分布的一系列样本。
几种常见的MCMC采样法:Metropolis-Hastings采样法和吉布斯采样法,实际应用中一般会对得到的样本序列进行“burn-in”处理,即截除掉序列中最开始的一部分样本, 只保留后面的样本。

3.1 Metropolis-Hastings采样法

在这里插入图片描述
其中红线表示被拒绝的移动(维持旧样本) , 绿线表示被接受的移动(采纳新样本)
对于目标分布p(x), 首先选择一个容易采样的参考条件分布q(x*|x),令:
在这里插入图片描述
然后根据如下过程进行采样:
(1) 随机选一个初始样本x(0)。
(2) For t = 1, 2, 3, … :

在这里插入图片描述

3.2 吉布斯采样法

每次只对样本的一个维度进行采样和更新。对于目标分布p(x), 其中x是多维向量, 按如下过程进行采样:
(1) 随机选择初始状态 。
(2) For t = 1, 2, 3, … :
在这里插入图片描述

如果确实需要产生独立同分布的样本, 可以同时运行多条马尔可夫链, 这样不同链上的样本是独立的; 或者在同一条马尔可夫链上每隔若干个样本才选取一个, 这样选取出来的样本也是近似独立的。

4 贝叶斯网络的采样

贝叶斯网络, 又称信念网络或有向无环图模型。 它是一种概率图模型, 利用有向无环图来刻画一组随机变量之间的条件概率分布关系。
在这里插入图片描述

对一个没有观测变量的贝叶斯网络进行采样, 最简单的方法是祖先采样(Ancestral Sampling) , 它的核心思想是根据有向图的顺序, 先对祖先节点进行采样, 只有当某个节点的所有父节点都已完成采样, 才对该节点进行采样。

考虑含有观测变量的贝叶斯网络的采样,
在这里插入图片描述

观测变量用斜线阴影表示,最直接的方法是逻辑采样, 还是利用祖先采样得到所有变量的取值。 如果这个样本在观测变量上的采样值与实际观测值相同, 则接受, 否则拒绝, 重新采样。逻辑采样法的采样效率急剧下降, 实际中基本不可用。在实际应用中, 可以参考重要性采样的思想, 不再对观测变量进行采样, 只对非观测变量采样,

5 不均衡样本集的采样

5.1 基于数据处理

方法主要思想优缺点
随机过采样主要思想从少数类样本集Smin中随机重复抽取样本(有放回) 以得到更多样本对少数类样本进行了多次复制, 扩大了数据规模, 增加了模型训练的复杂度, 同时也容易造成过拟合
SMOTE算法对少数类样本集Smin中每个样本x, 从它在Smin中的K近邻中随机选一个样本y, 然后在x,y连线上随机选取一点作为新合成的样本(根据需要的过采样倍率重复上述过程若干次)可以降低过拟合的风险,但会增大类间重叠度, 并且会生成一些不能提供有益信息的样本
Borderline-SMOTE只给那些处在分类边界上的少数类样本合成新样本
ADASYN给不同的少数类样本合成不同个数的新样本
随机欠采样从多数类样本集Smaj中随机选取较少的样本(有放回或无放回)会丢弃一些样本, 可能会损失部分有用信息, 造成模型只学到了整体模式的一部分。
Easy Ensemble每次从多数类Smaj中上随机抽取一个子集E(/E/≈/Smin/), 然后用E+Smin训练一个分类器; 重复上述过程若干次, 得到多个分类器,最终的分类结果是这多个分类器结果的融合。
Balance Cascade算法级联结构, 在每一级中从多数类Smaj中随机抽取子集E, 用E+Smin训练该级的分类器; 然后将Smaj中能够被当前分类器正确判别的样本剔除掉, 继续下一级的操作, 重复若干次得到级联结构; 最终的输出结果也是各级分类器结果的融合。
基于聚类的采样方法利用数据的类簇信息来指导过采样/欠采样操作
数据扩充方法对少数类样本进行一些噪声扰动或变换( 如图像数据集中对图片进行裁剪、 翻转、 旋转、 加光照等) 以构造出新的样本;
Hard Negative Mining把比较难的样本抽出来用于迭代分类器。

5.2 基于算法处理

可以通过改变模型训练时的目标函数( 如代价敏感学习中不同类别有不同的权重) 来矫正这种不平衡性; 当样本数目极其不均衡时, 也
可以将问题转化为单类学习( one-class learning) 、 异常检测( anomalydetection) 。

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

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

相关文章

android初集成flutter,遇到的问题

环境 studio版本:2022.1.1 flutter版本:2.8.0 电脑:mac flutter项目总是报错,编译不过 以 Resources Root 加载 记得设置dart:主工程和flutter项目都需要设置,否则不出现手机链接 下面这个样子就是好了&…

计算机视觉基础(9)——相机标定与对极几何

前言 本节我们将学习相机标定和对极几何两部分的内容。 在相机标定部分,我们将学习直接线性变换(Direct Linear Transform, DL),张正友标定法(Zhang’s Method)和 Perspective-n-Point (PnP) 这三种方法。 在对极几何部…

openbabel包的安装

今天在安装openbabel的时候,使用pip / 通过源码的方式进行安装openbabel,但是都并没有什么用,直接使用: conda install openbabel 就openbabel3.1.1成功了

最新完美版积分商城系统-奇偶商城系统源码+独立代理后台+附搭建教程

源码简介: 最新完美版积分商城系统,网购商城系统源码,是更新的奇偶商城系统源码,它拥有独立代理后台,而且内附搭建教程。 1.演示环境:Linux Centos7以上版本 宝塔 2.Nginx 1.18.0 PHP7.0 Mysql5.6 3…

Talk | UCSB博士生赵宣栋:生成式AI时代的水印技术

本期为TechBeat人工智能社区第546期线上Talk! 北京时间11月15日(周三)20:00,UC Santa Barbara博士生—赵宣栋的Talk已准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “生成式AI时代的水印技术”,系统地介绍了他的团队在…

栈和队列的实现及相关面试题

栈和队列 栈概念与结构栈的功能栈的实现头文件Stack.h栈的结构体 Stack 源文件Stack.c初始化 void StackInit(Stack* ps)压栈 void StackPush(Stack* ps, STDataType data)出栈 void StackPop(Stack* ps)返回栈顶的值 STDataType StackTop(Stack* ps)返回栈中元素的个数 int St…

一个 不用充钱 也能让你变强的 VSCode 插件

今天给大家推荐一款不用充钱也能让你变强的 vscode 插件 通义灵码(TONGYI Lingma),可以称之为 copilot 的替代甜品 💪 什么是 通义灵码(TONGYI Lingma) 通义灵码(TONGYI Lingma)&am…

《向量数据库指南》——TruLens 用于语言模型应用跟踪和评估

TruLens 用于语言模型应用跟踪和评估 TruLens 是一个用于评估语言模型应用(如 RAG)的性能的开源库。通过 TruLens,我们还可以利用语言模型本身来评估输出、检索质量等。 构建语言模型应用时,多数人最关心的问题是 AI 幻觉(hallucination)。RAG 通过为语言模型提供检索上下文…

校招面试技巧:如何回答好一个问题

今天分享的主题是“如何回答好一个问题”。通过与同学们进行交流,发现一个比较普遍的现象,大家在回答问题时,时常会让面试官觉得自己在背八股,从而影响面试官的印象。那么我们应该怎么避免这种情况呢? 1.基础知识点 …

Redis - 订阅发布替换 Etcd 解决方案

为了减轻项目的中间件臃肿,由于我们项目本身就应用了 Redis,正好 Redis 的也具备订阅发布监听的特性,正好应对 Etcd 的功能,所以本次给大家讲解如何使用 Redis 消息订阅发布来替代 Etcd 的解决方案。接下来,我们先看 R…

解决Python Requests库中处理重定向时的多重Cookie问题

问题背景 在更新至f73bda06e9版本后,用户发现某些请求会引发CookieConflictError。具体来说,任何设置饼干且重定向到设置相同饼干的页面的请求都会引发CookieConflictError。 重现步骤 1、更新Requests至上述版本。 2、从中国以外的任何地方向baidu…

Java 设计模式——中介者模式

目录 1.概述2.结构3.案例实现3.1.抽象中介类3.2.抽象同事类3.3.具体同事类3.4.具体中介类3.5.测试 4.优缺点5.使用场景 1.概述 (1)一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会…

Redis最新2023年面试题高级面试题及附答案解析(2)【Redis最新2023年面试题高级面试题及附答案解析-第三十九刊】

文章目录 Redis最新2023年面试题高级面试题及附答案解析(2)01、Redis 集群方案应该怎么做?都有哪些方案?02、Redis 的内存用完了会发生什么?03、怎么测试 Redis 的连通性?04、Redis 集群会有写操作丢失吗?为什么&#…

C/C++ 实现获取硬盘序列号

获取硬盘的序列号、型号和固件版本号,此类功能通常用于做硬盘绑定或硬件验证操作,通过使用Windows API的DeviceIoControl函数与物理硬盘驱动程序进行通信,发送ATA命令来获取硬盘的信息。 以下是该程序的主要功能和流程: 定义常量…

青年作家考公引热议,体制内可能不是你想的那样

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 阿福 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 最近,班宇、陈春成、王苏辛三名青年作家出现在了武汉市文联所属事业单位专项招聘拟聘用人员名…

如何有效防止公司内部的信息泄露?

信息泄露对公司可能带来严重影响,因此采取一系列措施以确保信息安全至关重要。以下是一些建议: 部署综合的防泄密软件: 在公司内部,使用专业的防泄密软件如华企盾DSC系统,涵盖文件加密、U盘管控、桌面行为管理、日志审…

前端 react 面试题 (一)

文章目录 vue与react的区别。react的生命周期有哪些及它们的作用。setState是同步的还是异步的。如何更新数据后,立刻获取最新的dom或者更新后的数据。使用回调函数:在生命周期方法中处理: 函数式组件和class组件的区别。class组件函数式组件…

浏览器怎么更新?4个高效设置方法!

“我在使用浏览器时,有时候会提示说浏览器版本太低,需要更新后才能使用。有什么方法可以更新浏览器呢?快给我支支招吧!” 在快速发展的科技时代,浏览器更新是确保网络安全和性能优化的关键步骤。如果浏览器的版本太低&…

windows系统下修改nginx配置后reload重加载后不生效解决方案

windows系统下修改nginx配置后reload重加载后不生效解决方案 1、Nginx配置在重启(reload)后也不生效的原因2、通过服务启动的Nginx,通过stop命令是关闭不了的:(Access is denied)。 1、Nginx配置在重启(reload&#xf…

大语言模型量化方法对比:GPTQ、GGUF、AWQ

在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。 说明:每次加载LLM示例后,建议清除缓存,以…