关于我使用numpy.random.choice()遇到坑这件事

做仿真时经常使用到随机数,下面是一个场景:使用np.random.choice([0,1],p=[0.5,0.5],size=1)去进行随机的二选一,假设需要随机选择1000次,为了保证结果的稳健性,对前述过程重复50次,为了保证可复现性,对每次重复给予特定的随机数种子,即第n次重复时,设置np.random.seed(n)。我想观察的是1000次随机选择是否存在偏误(倾向于某个选项),因此我对1000次随机选择的结果求平均值,平均值低于0.5表明偏向于选项0,高于0.5表明偏向于选项1。下面是上述过程的实现:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(10,7))
xlist=[]
nxlist=[]
for n in range(50):np.random.seed(n)for i in range(1000):x=np.random.choice([0,1],p=[0.5,0.5],size=1)xlist.append(x)nxlist.append([n,np.mean(xlist)])
nxlist=pd.DataFrame(nxlist,columns=['n','xmean'])
plt.scatter(nxlist['n'], nxlist['xmean'])
plt.plot(nxlist['n'], [0.5]*len(nxlist['n']),color='red')

结果如下:

也就是说在1000次使用np.random.choice([0,1],p=[0.5,0.5],size=1)随机选择的过程中,选择更偏向于选项0,且以0-50为随机数种子的重复实验中基本都偏向于第一个选项。

为了检验随机数的收敛性,不再设置具体的随机数种子,使用系统时间这一默认随机数种子,重复随机选择10000次。以下是对应代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(10,7))
xlist=[]
for n in range(1):ixlist=[]for i in range(10000):x=np.random.choice([0,1],p=[0.5,0.5],size=1)xlist.append(x)ixlist.append([i,np.mean(xlist)])
ixlist=pd.DataFrame(ixlist,columns=['i','xmean'])
plt.scatter(ixlist['i'], ixlist['xmean'])
plt.plot(ixlist['i'], [0.5]*len(ixlist['i']),color='red')
plt.show()

发现这个收敛性着实有点问题。所以建议做仿真算力够还是尽量多重复一些吧。

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

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

相关文章

collection及迭代遍历

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。 package myCollection;import java.util.ArrayList; import java.util.Collection;public class A01CollectionDemo1 {public static void main(String[] args) {//collection是一个接口…

《PyTorch深度学习实践》第十一讲卷积神经网络进阶

一、 1、卷积核超参数选择困难,自动找到卷积的最佳组合。 2、1x1卷积核,不同通道的信息融合。使用1x1卷积核虽然参数量增加了,但是能够显著的降低计算量(operations) 3、Inception Moudel由4个分支组成,要分清哪些是在Init里定义…

基于springboot+vue的精简博客系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Nginx配置文件的整体结构

一、Nginx配置文件的整体结构 从图中可以看出主要包含以下几大部分内容: 1. 全局块 该部分配置主要影响Nginx全局,通常包括下面几个部分: 配置运行Nginx服务器用户(组) worker process数 Nginx进程PID存放路径 错误…

Linux 防火墙 操作命令【实用】

防火墙操作: 描述命令查看防火墙状态systemctl status firewalld、firewall-cmd --state暂时关闭防火墙systemctl stop firewalld永久关闭防火墙systemctl disable firewalld开启防火墙systemctl start firewalld开放指定端口firewall-cmd --zonepublic --add-port…

080|为什么阿里的价值观值得你关注?

在阿里巴巴20周年年会现场,万众瞩目之下,马云和张勇完成了阿里巴巴董事长职务的交接。 不过你也知道,这次接棒在一年前就已经公布了,在年会上只是一个仪式。在20周年年会过后,我找到了互联网圈的资深媒体人阳淼&#…

爬虫逆向网站案例

一、相关网页 东方财富人气排行榜 二、查找url 三、寻找curl并复制 四、打开Convert curl commands to code (curlconverter.com) 五、修改并执行代码 import requestscookies {st_si: 73974981954644,st_pvi: 39724919122964,st_sp: 2024-03-05%2018%3A27%3A22,st_inirUrl:…

8个优秀的CSS实践,开发web应用

HTML面试题部分 1.H5的新特性有哪些 2.Label的作用是什么?是怎么用的? 3.HTML5的form如何关闭自动完成功能 4.dom如何实现浏览器内多个标签页之间的通信? 5.实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都 能保持一…

【go语言开发】redis简单使用

本文主要介绍redis安装和使用。首先安装redis依赖库,这里是v8版本;然后连接redis,完成基本配置;最后测试封装的工具类 文章目录 安装redis依赖库连接redis和配置工具类封装代码测试 欢迎大家访问个人博客网址:https://…

Linux进程详细介绍

文章目录 Linux进程1、计算机体系结构和操作系统管理1.1、计算机体系结构 -- 硬件1.2、操作系统(Operator System) -- 软件 2、进程2.1、进程基本概念2.2、进程标识符2.2.1、获取当前进程标识符和当前进程的父进程标识符2.2.2、通过系统调用创建进程 -- …

基于SpringBoot+MYSQL的网上订餐系统

目录 1、 前言介绍 2、主要技术 3、系统功能分析 3.1、用户功能分析 3.2、管理员功能分析 4、系统结构分析 4.1、逻辑结构 4.2、物理结构 5、数据库设计 5.1、数据库E-R图设计 5.2、数据库表设计 6、运行截图(部分) 6.1、用户功能模块的实现 6.2、管理员功能模块的…

Echarts+D3气泡图

EchartsD3气泡图&#xff08;相邻效果&#xff0c;气泡之间不叠加&#xff09; <template><div ref"chart" style"width: 500px; height: 500px"></div> </template><script setup> import * as echarts from echarts/core …

不同用户同时编辑商品资料导致的db并发覆盖

背景 这个问题的背景来源于有用户反馈&#xff0c;他在商品系统中对商品打的标签不见了&#xff0c;影响到了前端页面上商品的资料显示 不同用户编辑同一商品导致的数据覆盖问题分析 查询操作日志发现用户B确实编辑过商品资料&#xff0c;并且日志显示确实打上了标签&#x…

前端从普通登录到单点登录(SSO)

随着前端登录场景的日益复杂化和技术思想的不断演进&#xff0c;前端在登录方面的知识结构变得越来越复杂。对于前端开发者来说&#xff0c;在日常工作中根据不同的登录场景提供合适的解决方案是我们的职责所在&#xff0c;本文将梳理前端登录的演变过程。 1、无状态的HTTP H…

【面试题】webpack的五大核心、构建流程、性能优化

【面试题】webpack的五大核心、webpack的构建流程、webpack的性能优化 webpack是什么?webpack的五大核心webpack的构建流程webpack性能优化 webpack是什么? js静态模块打包工具。 功能 将多个文件打包成更小的文件&#xff0c;(压缩)翻译 babal-loader es6进行降级兼容。 …

合泰HT66F2390----定时器中断学习笔记

前言 无需多言 直接开始定时器中断 的学习 通过上次的PWM学习&#xff0c;上次用的是周期型TM定时器模块 这次使用标准型TM定时器模块&#xff08;STM&#xff09; 代码 #include <HT66F2390.h>void Timer0_Init(void){_stm0c0 0b00001000;_stm0c1 0b11000001;_stm…

基于巨控GRM561/562/563Y西门子1200PLC发邮件

巨控GRM560,GRM600系列同比之前的GRM530&#xff0c;除短信&#xff0c;微信&#xff0c;电话语音播报增加了邮件发送功能&#xff0c;简单介绍一下PLC发邮件。 1在博途中建立好DB块 2.打开GRMDEV6&#xff0c;新建工程&#xff0c;做好数据采集&#xff0c;这里以DB4.D0&#…

三大数学软件之Maple

相信钻研数学的小伙伴们对MATLAB、SPSS这样的重量级软件并不陌生&#xff0c;这些大型软件能求解复杂的运算&#xff0c;解决各领域的数学问题。今天博主为大家带来了一款名不见经传的软件——Maple&#xff0c;作为三大数学软件之一&#xff0c;Maple同样拥有不菲的计算能力&a…

栈和队列之队列

1.队列 1.1队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出 FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队…

Git 撤销修改

如果我们在我们的工作区写了很长时间代码&#xff0c;发现出现错误&#xff0c;想回退到之前的版本&#xff0c;这时改怎么做呢&#xff1f; 情况一&#xff1a;对于工作区的代码&#xff0c;还没有 add 我们当然也可以使用git diff 查看与上次提交的差异&#xff0c;进行手动删…