【机器学习8】采样

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.rhkb.cn/news/196524.html

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

相关文章

二维码智慧门牌管理系统升级解决方案:门牌聚合,让管理更便捷!

文章目录 前言一、传统门牌管理系统的瓶颈二、地图门牌聚合展示的优势三、地图门牌聚合展示的实现方法四、智慧门牌管理系统的未来发展 前言 随着城市的发展和建设,对于地址信息的管理变得越来越重要。而智慧门牌管理系统作为管理地址信息的重要工具,其…

原来机械硬盘比内存慢10万倍

我们都知道机械硬盘的速度很慢,内存的速度很快,那么不同存储器之间的差距到底有多大呢? 我们先来看一幅图: CPU访问寄存器的时间是0.3纳秒,访问L1高速缓存的时间是1纳秒,访问L2高速缓存的时间是4纳秒… 秒…

设计模式-状态模式-笔记

状态模式State 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。 经典模式:State、Memento 动机&#xff08…

基于RFbeam的V-LD1-60GHz毫米波雷达传感器数据获取(通过UART串口来控制模块)

基于RFbeam的V-LD1-60GHz毫米波雷达传感器数据获取(通过UART串口来控制模块) 工程: Keil工程资源 文章目录 V-LD1命令发送消息回复通信示例雷达数据获取宏定义通信代码运行效果附录:压缩字符串、大小端格式转换压缩字符串浮点数压…

Selenium自动化测试框架

一.Selenium概述 1.1 什么是框架? 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的 结构用于去解决或者处理复杂的问题。 框架是整个或部分系统的可重用设计,表现为一组抽象构件及…

ARDUINO UNO 12颗LED超酷流水灯效果

效果代码&#xff1a; #define t 30 #define t1 20 #define t2 100 #define t3 50 void setup() { // set up pins 2 to 13 as outputs for (int i 2; i < 13; i) { pinMode(i, OUTPUT); } } /Effect 1 void loop() { effect_1(); effect_1(); effect_…

目标检测—YOLO系列(二 ) 全面解读复现YOLOv1 PyTorch

精读论文 前言 从这篇开始&#xff0c;我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法&#xff0c;速度快且结构简单&#xff0c;其他的目标检测算法如RCNN系列&#xff0c;以后有时间的话再介绍。 本文主要介绍的是YOLOV1&#xff0c;这是由以Joseph Redmon为首的…

Kafka 集群实现数据同步

Kafka 介绍 Kafka 是一个高吞吐的分布式消息系统&#xff0c;不但像传统消息队列&#xff08;RaabitMQ、RocketMQ等&#xff09;那样能够【异步处理、流量消峰、服务解耦】 还能够把消息持久化到磁盘上&#xff0c;用于批量消费。除此之外由于 Kafka 被设计成分布式系统&…

spring学习笔记-IOC,AOP,事务管理

目录 概述 什么是spring 侵入式的概念 spring的核心 spring的优势 注意 IOC控制反转 概述 核心 容器 DI&#xff0c;dependency injection依赖注入 概念 注入方式 循环依赖 spring如何解决循环依赖 spring生成Bean的方式 Bean属性注入&#xff08;Bean属性赋值…

Confluence 快速安装教程

安装jdk yum install -y java-1.8.0-openjdk.x86_64 java -version 安装MySQL mkdir -p /data/mysql/data chmod 777 /data/mysql/datadocker rm -f mysql docker run -d --name mysql \-p 3306:3306 \-e MYSQL_ROOT_PASSWORDfingard1 \-v /data/mysql/data:/var/lib/mysql …

Spring学习③__Bean管理

目录 IOC接口ApplicationContext 详解IOC操作Bean管理基于xml方式基于xml方式创建对象基于xml方式注入属性使用set方法进行注入通过有参数的构造进行注入p 名称空间注入&#xff08;了解&#xff09; 基于xml方式注入其他类型属性xml 注入数组类型属性 IOC接口 IOC思想基于IOC…

CSS特效013:背景色彩不停流动效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

CTF-PWN-tips

文章目录 overflowscanfgetreadstrcpystrcat Find string in gdbgdbgdb peda Binary ServiceFind specific function offset in libc手工自动 Find /bin/sh or sh in library手动自动 Leak stack addressFork problem in gdbSecret of a mysterious section - .tlsPredictable …

Android Fragment 要你何用?2.0版本

作者&#xff1a;小鱼人爱编程 1. 老生常谈&#xff1a;为什么需要Fragment? 先看Activity、Fragment、View三者的关系&#xff1a; Activity 拥有生命周期&#xff0c;但是需要和AMS通信(跨进程)&#xff0c;比较臃肿。 View 不需要和AMS通信&#xff0c;但没有生命周期&…

JavaEE——简单认识HTML

文章目录 一、简单解释 HTML二、认识 HTML 的结构三、了解HTML中的相关标签1.注释标签2.标题标签3.段落标签 p4. 换行标签 br5.格式化标签6.图片标签解释 src解释 alt解释其他有关 img 标签的属性 7.超链接标签 a8.表格标签9.列表标签10.input 标签11. select 下拉菜单以及 div…

Swagger示例

对于项目完成后不用写文档,好处还是蛮大的 不需要关注项目其他 只关注接口与实体类即可 SpringBoot项目 依赖 <!--Swagger依赖--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version…

vulnhub靶场—matrix-breakout-2-morpheus靶机

一&#xff0c;实验环境 靶机ip&#xff1a;192.168.150.131攻击机ip&#xff1a;192.168.150.130 二&#xff0c;信息收集 arp-scan -l 扫描网段&#xff0c;寻找靶机ip 使用工具nmap进行端口扫描 nmap -A -T4 -p- 192.168.150.131 通过信息收集发现了靶机有80和81这两个…

今天遇到Windows 10里安装的Ubuntu(WSL)的缺点

随着技术的发展&#xff0c;越来越多开发者转向使用 Windows Subsystem for Linux&#xff08;WSL&#xff09;在 Windows 10 上进行开发&#xff0c;也就是说不用虚拟机&#xff0c;不用准备多一台电脑&#xff0c;只需要在Windows 10/11 里安装 WSL 就能体验 Linux 系统。因此…

阿里云CentOS主机开启ipv6

目录 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 2、创建 / 编辑云主机&#xff0c;开启ipv6 3、安全组放行ipv6端口 二、使用 ipv6 地址进行 ssh 连接 三、ipv6 地址绑定域名 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 进入网络、交换机详情页面…

初学Redis(Redis的启动以及字符串String)

首先使用在Windows PowerShell中输入指令来启动Redis&#xff1a; redis-server.exe 然后通过指令连接Redis&#xff1a; redis-cli 上图的127.0.0.1是计算机的回送地址 &#xff0c;6379是默认端口 上述代码中创建了两个键&#xff0c;注意Redis中严格区分大小写&#xff0…