当前位置: 首页 > news >正文

神经网络|(八)概率论基础知识-二项分布及python仿真

【1】引言

前序已经学习了古典概型、条件概率、全概率公式和贝叶斯公式,它们作为基础,解释了事件发生及其概率的对应关系,相关文章链接为:

神经网络|(四)概率论基础知识-古典概型-CSDN博客

神经网络|(五)概率论基础知识-条件概率-CSDN博客 

神经网络|(六)概率论基础知识-全概率公式_部分概率和总概率的关系-CSDN博客

神经网络|(七)概率论基础知识-贝叶斯公式-CSDN博客 

在此基础上,我们更进一步,学习二项分布。

【2】概念分析

【2.1】随机变量

时间的发生可以用符号来记录,例如事件A,事件B等等。每个时间具体发生的情况又可以用数量来表达,例如事件A发生时记录为1,事件B发生时有5只小猫在玩耍3只小猫在睡觉等,总而言之千般万物各有对应的表征。

进一步,各个事件发生时,真正改变的那个因素才是我们关心的,这个因素就是变量。

随机变量就是随机试验中,事件发生时会改变的因素。

随机试验的特点是:试验可以在相同的条件下重复;每次试验的结果不止一个,且能明确所有可能的结果;但实际上不能提前预知哪个结果会出现。

所以,随机变量就是:可在相同条件下重复的试验中,虽然知道所有可能结果,但无法确定具体哪种结果可能出现时,具体出现的那个结果的表征,随机变量代表了具体的试验结果。

随机变量有离散和连续两种形式,此处我们先研究离散形式的随机变量。

【2.2】离散型随机变量及其分布

虽然定义了离散型随机变量这个名字,但还是要强调:

随机变量是随机试验的结果表征,因为只有随机试验完成,才知道具体的结果,所以这个结果的取值随着试验次数的增加不断变化,又因为试验都是在相同的条件下重复进行,所以每次出现的结果彼此独立、互不影响。

离散型的随机变量,就是指这些相互独立的随机变量的取值是跳跃的,在数学上的呈现是离散的点,而非练成一条线。

如果记X为随机变量,以x记录具体的随机变量取值,就可以简写随机试验的概率:

P{X=x}=p

在全概率公式的分析中已知:各个分概率对应的事件,是彼此互斥但总体互补的关系,它们互不隶属,但总体上能凑成一个完整的试验。所以各个分概率加起来,总和应该是1。

所以随机试验的概率,详细写可以为:

P\left \{ X=x_{k} \right \}=p_{_{k}}(k=1,2,...)

具体的解释为:随机变量X取值为x_{k}时的概率为p_{k}

同时也一定会满足:

\begin{matrix} P\left \{ X=x_{k} \right \}=p_{_{k}}\geqslant 0 \\ \sum_{k=0}^{k=\infty } p_{_{k}}=1 \end{matrix}

【2.3】二项分布-伯努利分布

如果一个随机试验只有两种结果:A或者非\bar{A},这种试验可以称为伯努利试验。

伯努利试验的概率,可以记作:P(A)=p(0<p<1)和P(\bar{A})=1-P。

伯努利试验重复n次,成为n重伯努利试验。如果想计算这n次试验中,A发生k次的概率,就可以分析:

a.用X记录A发生;

b.用X=k表征A发生k次。

所以有:

P\left \{ X=k \right \}=C_{n}^{k}p^{k}(1-p)^{n-k}

刚好,上式就是二项式[p+(1-p)]^{n}的第n项,所以n重伯努利试验结果的分布规律,也称为二项分布。

本质上,二项分布涉及三个量:代表事件的X,记录事件的x,以及时间对应的概率p。

当n=1时,二项分布也称为(0-1)分布。

有时候为了让公式更好看和便于书写,可以记录q=1-p。

【3】二项分布python仿真

使用python语言,调用numpy模块中的numpy.random.binomial()函数,可以实现对多重伯努利试验概率分布即二项分布的数学仿真。

numpy.random.binomial()函数的官网链接为:

https://numpy.org/doc/stable/reference/random/generated/numpy.random.binomial.html

这个函数是按照伯努利试验概率分布的形式生成随机数,官网对此的说明为:

图1  numpy.random.binomial()函数生成随机数工作原理

numpy.random.binomial()函数的参数解释为:

random.binomial(n, p, size)

n:伯努利试验的次数

p:伯努利试验的成功概率

size:把上述n次伯努利试验看成一个完整的大型伯努利试验,size代表对这个大型伯努利试验重复的次数,实际上就是打包重复n重伯努利试验

基于此函数的特点,先引入必要模块和定义所需参数:

import numpy as np #引入numpy模块
import matplotlib.pyplot as plt #引入matplotlib模块# 二项分布参数
n = 10  # 试验次数
p = 0.5  # 成功的概率
size = 1000  # 生成随机数的数量

然后生成伯努利随机数:

# 生成符合二项分布的随机数
data_binomial = np.random.binomial(n, p, size) #随机数分布符合二项分布的形式

之后就是对随机数的分布情况进行绘图:

# 绘制直方图
fig,axs=plt.subplots(1,2) #定义一行两列的图像绘制
axs[0].hist(data_binomial, bins=n+1, density=False, alpha=0.6, color='g') #按数量绘制生成的数字分布图
axs[1].hist(data_binomial, bins=n+1, density=True, alpha=0.6, color='y') #按概率回执生成的数字分布图
fig.suptitle('Binomial Distribution Simulation',y=0.95) #设置图像名称
axs[0].set_xlabel('Number of Successes') #设置X轴标签
axs[0].set_ylabel('Probability') #设置Y轴标签
axs[1].set_xlabel('Number of Successes') #设置X轴标签
plt.savefig(‘binomial.png’) #保存图像
plt.show() #显示图像

在这里调用了hist()函数进行数据的概率分布画图,如果不是很熟悉,可以参考链接回忆:

python画图|hist()函数画直方图初探_python hist()-CSDN博客

python画图|hist()函数画直方图进阶_ax.hist()函数-CSDN博客 

python画图|hist()函数深层体验_python hist函数-CSDN博客 

python画图|hist()函数高阶探索_python 画图.hist(bars=100)-CSDN博客 

puthon画图|hist()函数深度探索-CSDN博客

代码使用了10次伯努利试验,单次成功率为0.5,然后对这10次c重伯努利试验打包dabao重复1000次,获得的试验成功次数和概率为:

图2 伯努利仿真

图2的显示效果非常类似于正态分布,其中仿真结果等于5的次数出现了大概250次,在所有渠道的数据中的占比大约为0.28。

此时的完整代码为:

import numpy as np #引入numpy模块
import matplotlib.pyplot as plt #引入matplotlib模块# 二项分布参数
n = 10  # 试验次数
p = 0.5  # 成功的概率
size = 1000  # 生成随机数的数量# 生成符合二项分布的随机数
data_binomial = np.random.binomial(n, p, size) #随机数分布符合二项分布的形式# 绘制直方图
fig,axs=plt.subplots(1,2) #定义一行两列的图像绘制
axs[0].hist(data_binomial, bins=n+1, density=False, alpha=0.6, color='g') #按数量绘制生成的数字分布图
axs[1].hist(data_binomial, bins=n+1, density=True, alpha=0.6, color='y') #按概率回执生成的数字分布图
fig.suptitle('Binomial Distribution Simulation',y=0.95) #设置图像名称
axs[0].set_xlabel('Number of Successes') #设置X轴标签
axs[0].set_ylabel('Probability') #设置Y轴标签
axs[1].set_xlabel('Number of Successes') #设置X轴标签
plt.savefig('binomial.png') #保存图像
plt.show() #显示图像

【4】细节说明

使用python语言调用numpy模块中的numpy.random.binomial()函数时,生成的数据本身按照二项分布的形式出现,实际代码没有去编写二项分布函数。

【5】总结

回顾了二项分布的基础知识,使用python语言调用numpy模块中的numpy.random.binomial()函数进行了二项分布效果仿真。

相关文章:

神经网络|(八)概率论基础知识-二项分布及python仿真

【1】引言 前序已经学习了古典概型、条件概率、全概率公式和贝叶斯公式&#xff0c;它们作为基础&#xff0c;解释了事件发生及其概率的对应关系&#xff0c;相关文章链接为&#xff1a; 神经网络|(四)概率论基础知识-古典概型-CSDN博客 神经网络|(五)概率论基础知识-条件概…...

【面试场景】MySQL分布式主键选取

文章目录 一. MySQL的自增主键二. UUID三. 雪花ID(推荐) 我的博客地址 一. MySQL的自增主键 适合单表的情况, 在分布式分库分表下可能会有一些问题 主键冲突问题 在分布式系统中&#xff0c;多个数据库节点独立生成自增主键&#xff0c;很容易出现重复的主键值。例如&#xff…...

执行git stash drop stash@{x} 时出现error: unknown switch `e‘ 的解决方式

原因: 在 PowerShell 或某些 Shell 中&#xff0c;{} 是特殊符号&#xff0c;stash{0} 会被解析成 stash 0&#xff0c;而 后的字符可能被误认为选项&#xff08;如 -e&#xff09;&#xff0c;使 Git 收到意外的 -e 参数&#xff0c;导致报错 unknown switch ‘e’。 解决方…...

链表和 list

一、单链表的模拟实现 1.实现方式 链表的实现方式分为动态实现和静态实现两种。 动态实现是通过 new 申请结点&#xff0c;然后通过 delete 释放结点的形式构造链表。这种实现方式最能体 现链表的特性&#xff1b; 静态实现是利用两个数组配合来模拟链表。一个表示数据域&am…...

windows 蓝牙驱动开发-传输总线驱动程序常见问题

以下是驱动程序开发人员在开发总线驱动程序以支持蓝牙功能时可能会遇到的一些常见问题和方案。 我的串行总线驱动程序遇到了一些错误。 它意味着什么&#xff1f; 代码 10-49&#xff1a;设备管理器生成的错误代码。 代码 51&#xff1a;当串行总线驱动程序具有相关的控制器…...

Qt修仙之路2-1 炼丹初成

widget.cpp #include "widget.h" #include<QDebug> //实现槽函数 void Widget::login1() {QString userusername_input->text();QString passpassword_input->text();//如果不勾选无法登入if(!check->isChecked()){qDebug()<<"xxx"&…...

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue宠物预约上门服务预约平台

开题报告 本研究论文旨在构建并阐述一个基于 SpringBoot 和 Vue 技术栈开发的宠物上门服务预约平台的设计与实现。该平台集成了丰富的功能模块&#xff0c;为用户提供一体化的便捷服务体验。首先&#xff0c;用户能够通过注册并登录系统&#xff0c;享受个性化的服务流程。在平…...

无线AP之详解(Detailed Explanation of Wireless AP)

无线AP是什么&#xff1f; 市场上的AP基本上分为两大类&#xff1a;单纯型AP和扩展型AP。扩展型AP除了基本的AP功能之外&#xff0c;还可能带有若干以太网交换口、路由、NAT、DHCP、打印服务器等功能。 无线AP也就是一个无线交换机 无线路由器就是一个带路由功能的无线AP&am…...

Spring Boot Actuator与JMX集成实战

在微服务架构中&#xff0c;监控和管理应用的运行状态是至关重要的。Spring Boot Actuator 提供了一种便捷的方式来监控和管理 Spring Boot 应用&#xff0c;而 JMX&#xff08;Java Management Extensions&#xff09;则是一种用于管理 Java 应用的标准技术。本文将通过一个实…...

mac环境下,ollama+deepseek+cherry studio+chatbox本地部署

春节期间&#xff0c;deepseek迅速火爆全网&#xff0c;然后回来上班&#xff0c;我就浅浅的学习一下&#xff0c;然后这里总结一下&#xff0c;我学习中&#xff0c;总结的一些知识点吧&#xff0c;分享给大家。具体的深度安装部署&#xff0c;这里不做赘述&#xff0c;因为网…...

camera光心检测算法

1.概要 光心检测算法&#xff0c;基于opencv c实现&#xff0c;便于模组厂快速集成到软件工具中&#xff0c;适用于camera模组厂算法评估组装制程镜头与sensor的偏心程度&#xff0c;便于工程师了解制程的问题找出改善方向。 2.技术介绍 下图为camera模组厂抓取的bayer-raw经过…...

【MySQL】向后兼容设计规范(无回滚场景)

MySQL 向后兼容设计规范&#xff08;无回滚场景&#xff09; 在 不支持数据库回滚 且需保证 长期向后兼容性 的系统中&#xff0c;需通过 架构设计 和 流程管控 规避风险。以下是关键设计规范&#xff1a; 一、变更流程规范 变更分类分级 变更类型风险评估等级审批流程测试要求…...

还搞不透stm32单片机启动过程?一篇文章几百字让你彻底看懂!

1.stm32启动 1.1 msp和pc的初始值&#xff0c;第一步&#xff1a; 2.boot的值就被锁定了 可以根据实际绑定的值变动&#xff0c; 这里补充一点boot1和0的原理&#xff1a; 1.2来点刺激的&#xff1a; 这里我插入一个链接&#xff1a; 【明解STM32】一文搞明白STM32芯片存储…...

无界构建微前端?NO!NO!NO!多系统融合思路!

文章目录 微前端理解1、微前端概念2、微前端特性3、微前端方案a、iframeb、qiankun --> 使用比较复杂 --> 自己写对vite的插件c、micro-app --> 京东开发 --> 对vite支持更拉跨d、EMP 方案--> 必须使用 webpack5 --> 很多人感觉不是微前端 --> 去中心化方…...

DeepSeek辅助段落扩写的能力怎么样?

DeepSeek-R1在学术写作的诸多细节层面展现出了显著的应用价值。接下来我们将通过一系列具体案例&#xff0c;深入探讨该工具如何在扩写、翻译、发表以及内容改进等关键环节为学术写作提供有力支持。在提问环节&#xff0c;DeepSeek-R1能够高效地简化提示词&#xff0c;并精准地…...

分形的魅力:数学与艺术的完美结合

分形的魅力&#xff1a;数学与艺术的完美结合 分形&#xff08;Fractal&#xff09;是一种神奇的数学结构&#xff0c;它以其无限的复杂性和自相似性吸引了无数科学家、艺术家和数学爱好者。分形不仅仅是数学中的一个概念&#xff0c;它还广泛应用于自然科学、计算机图形学和艺…...

如何通过工业智能网关进行数控机床数据采集?

数控机床数据采集过程是一个从物理连接到数据处理的完整链条&#xff0c;涉及设备连接、数据采集、预处理和传输的复杂过程&#xff0c;包含通信协议匹配、设备配置、数据采集设置、数据预处理和传输等多个环节。天拓四方自主研发的TDE工业智能网关作为这一过程中的核心设备&am…...

水波效果

水波效果指在计算机图形学中模拟水面波纹的视觉效果&#xff0c;通常用于游戏、动画或者其他虚拟场景中。主要用于体现水体的动态感&#xff0c;比如水的波动、反射、折射、透明等&#xff0c;可以让人感觉像真实的水一样流动闪耀。 核心特点就是&#xff1a; 动态波纹光学特…...

康谋方案 | BEV感知技术:多相机数据采集与高精度时间同步方案

随着自动驾驶技术的快速发展&#xff0c;车辆准确感知周围环境的能力变得至关重要。BEV&#xff08;Birds-Eye-View&#xff0c;鸟瞰图&#xff09;感知技术&#xff0c;以其独特的视角和强大的数据处理能力&#xff0c;正成为自动驾驶领域的一大研究热点。 一、BEV感知技术概…...

【重新认识C语言----结构体篇】

目录 -----------------------------------------begin------------------------------------- 引言 1. 结构体的基本概念 1.1 为什么需要结构体&#xff1f; 1.2 结构体的定义 2. 结构体变量的声明与初始化 2.1 声明结构体变量 2.2 初始化结构体变量 3. 结构体成员的访…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...