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

news2024/9/29 11:22:30

做仿真时经常使用到随机数,下面是一个场景:使用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.coloradmin.cn/o/1491576.html

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

相关文章

YOLOv9推理详解及部署实现

目录 前言零、YOLOv9简介一、YOLOv9推理(Python)1. YOLOv9预测2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 二、YOLOv9推理(C)1. ONNX导出2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 三、YOLOv9部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX…

DHCP自动获取IP地址实验(思科)

华为设备参考:DHCP自动获取IP地址实验(华为) 一,实验目的 路由器搭载DHCP,让PC通过DHCP自动获取IP地址 二,不划分vlan 实验拓扑 配置命令 Switch Switch>enable Switch#configure terminal Switch(c…

关于vue创建项目以及关于eslint报错的问题

vue创建完项目以后如果报parsing error no babel config file。。。这样的错误的话,关闭项目,用vscode进入项目中打开项目就可以解决了。 1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题, 解决思路: 在项目根…

Homomorphic CNNs

参考文献: [GDL16] Gilad-Bachrach R, Dowlin N, Laine K, et al. Cryptonets: Applying neural networks to encrypted data with high throughput and accuracy[C]//International conference on machine learning. PMLR, 2016: 201-210.[HTG17] Hesamifard E, T…

基于java的宠物常规护理知识管理系统

项目源码:https://gitee.com/oklongmm/biye2 在设计一个宠物常规护理知识管理系统时,我们需要考虑系统的可扩展性,易用性和稳定性。以下是系统设计的功能模块: 一、用户模块: 1. 注册与登录:用户可以通过…

Day18:信息打点-小程序应用解包反编译动态调试抓包静态分析源码架构

目录 小程序获取-各大平台&关键字搜索 小程序体验-凡科建站&模版测试上线 小程序抓包-Proxifier&BurpSuite联动 小程序逆向-解包反编译&动态调试&架构 思维导图 章节知识点 Web:语言/CMS/中间件/数据库/系统/WAF等 系统:操作系…

Python成功解决AttributeError: ‘Series‘ object has no attribute ‘set_value‘

Python成功解决AttributeError: ‘Series‘ object has no attribute ‘set_value‘ 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&am…

[机器视觉]halcon应用实例 用户自定义多ROI模板匹配

本示在前面几个halcon ROI示例的基础上继续扩展,更靠进实标情况。为了使ROI匹配更灵活,就要求可以让用户或工程根据实际使用情况自己去画ROI,想画几个是几个。数量不能在代码里写死。 这次升级的主要是增加了一个while循环根据用户的鼠标按键…

入门LLMs开发 — LangChain

像OpenAI的GPT-4这样的大型语言模型(LLMs)已经风靡全球。它们可以自动执行各种任务,如回答问题、翻译语言、分析文本等。LLMs是第一种真正感觉像“人工智能”的机器学习类型。 然而,在将LLMs应用于实际产品时仍然存在挑战。特别是…

2 月 27 日算法练习-动态规划

思路&#xff1a;没用完全背包优化的动态规划只能O(n^3)只能过 40% #include<bits/stdc.h> using namespace std; const int N 5e37; const int mod 1e97; string s; int len; int num[N],dp[N][N];int solve(int need,int flag){memset(num, 0, sizeof(num));memset(…

C打印内存16进制

下面是一段C代码打印16进制 void print_hex(const char *msg, void *addr, int len) {uint8_t *p (uint8_t *)addr;printf("%s ,stat:%0x8, len:%d\n", msg, addr, len);for (int i 0; i < len / 16; i) {printf("0x%08x: ", p i * 16);for (int j …

微服务:Feign篇

1.什么是Feign Feign是一种声明式、模板化的HTTP客户端&#xff0c;可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口&#xff0c;可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码&#xff…

30天JS挑战(第十二天)------输入序列验证

第十二天挑战(输入序列验证) 地址&#xff1a;https://javascript30.com/ 所有内容均上传至gitee&#xff0c;答案不唯一&#xff0c;仅代表本人思路 中文详解&#xff1a;https://github.com/soyaine/JavaScript30 该详解是Soyaine及其团队整理编撰的&#xff0c;是对源代…

Golang 开发实战day02 - Print Formatting

Golang 教程02 - Print&#xff0c;Formatting Strings Go语言提供了丰富的格式化字符串功能&#xff0c;用于将数据格式化为特定格式的字符串。本课程将详细介绍Go语言中Print和Formatting Strings的用法&#xff0c;并提供代码示例供大家参考。 Print 类型及使用 1.Print …

ruoyi-vue-plus4.X版本实现内嵌swagger文档(简单解决方法)

1.在common模块中添加pom依赖 <dependency><groupId>org.webjars</groupId><artifactId>swagger-ui</artifactId><version>4.15.5</version></dependency>结果如下&#xff1a; 2.在ResourcesConfig配置类的addResourceHandl…

【前端】Vite打包页面简单部署到GitHub上

创建仓库---->上传代码---->设置 注意点已经打上箭头,代码我传到的是test分支 vite打包的配置如图&#xff0c;base是仓库名称&#xff0c;docs是build后生成的打包目录。 上传到GitHub就自动部署了 访问就是第一张图里的一串地址&#xff0c;这种方式比较方便吧

「项目实践」如何实现导购推荐“千人千面”

前言 在电商背景下&#xff0c;为用户提供精准的导购推荐不仅能极大提升购物体验&#xff0c;也成为推动业务增长的关键驱动力。随着人工智能和数据科学的快速发展&#xff0c;实现“千人千面”的个性化推荐已不再是无法触及的梦想。如何在众多商品中准确捕捉用户的偏好&#…

计算机网络-第3章 数据链路层

主要内容&#xff1a;两个信道及对应的协议&#xff1a;点对点信道和广播信道&#xff0c;扩展以太网和高速以太网 本章的分组转发为局域网内的转发&#xff0c;不经过路由&#xff0c;网络层分组转为为网络与网络之间的转发&#xff0c;经过路由。局域网属于网络链路层的范围…

maven打包失败 Cannot create resource output directory[已解决]

文章目录 前言1.打开资源管理器&#xff08;ctrlAltdelete打开任务管理器&#xff09;2. 选择性能&#xff0c;再选择打开资源监视器3. 搜索“target”4. 我这里示范操作输入的perfmon&#xff0c;显示perfmon.exe占用的&#xff0c;右键结束这个进程 。5.然后重新用package打包…

什么是物联网?物联网如何工作?

物联网到底是什么&#xff1f; 物联网(Internet of Things&#xff0c;IoT)的概念最早于1999年被提出&#xff0c;官方解释为“万物相连的互联网”&#xff0c;是在互联网基础上延伸和扩展&#xff0c;将各种信息传感设备与网络结合起来而形成的一个巨大网络&#xff0c;可以实…