当前位置: 首页 > 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. 结构体成员的访…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...