Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >NumPy 泊松分布模拟与 Seaborn 可视化技巧

NumPy 泊松分布模拟与 Seaborn 可视化技巧

原创
作者头像
小万哥
发布于 2024-05-29 12:27:30
发布于 2024-05-29 12:27:30
19606
代码可运行
举报
文章被收录于专栏:程序人生丶程序人生丶
运行总次数:6
代码可运行

泊松分布

简介

泊松分布是一种离散概率分布,用于描述在给定时间间隔内随机事件发生的次数。它常用于模拟诸如客户到达商店、电话呼叫接入中心等事件。

参数

泊松分布用一个参数来定义:

λ:事件发生的平均速率,表示在单位时间内事件发生的平均次数。

公式

泊松分布的概率质量函数 (PMF) 给出了在指定时间间隔内发生 k 次事件的概率,计算公式为:

代码语言:python
代码运行次数:2
运行
AI代码解释
复制
P(k) = e^(-λ) (λ^k) / k!

其中:

e^(-λ):表示没有事件发生的概率。

(λ^k):表示 k 次事件发生的概率。

k!:表示 k 个元素的阶乘,即 k × (k - 1) × (k - 2) × ... × 2 × 1。

生成泊松分布数据

NumPy 提供了 random.poisson() 函数来生成服从泊松分布的随机数。该函数接受以下参数:

lam:事件发生的平均速率。

size:输出数组的形状。

示例:生成一个平均速率为 5 的事件在 10 个时间间隔内发生的次数:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

data = np.random.poisson(lam=5, size=10)
print(data)

可视化泊松分布

Seaborn 库提供了便捷的函数来可视化分布,包括泊松分布。

示例:绘制平均速率为 7 的事件在 1000 个时间间隔内发生的次数分布:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import seaborn as sns
import numpy as np

data = np.random.poisson(lam=7, size=1000)
sns.distplot(data)
plt.show()

正态分布与泊松分布的关系

当事件发生的平均速率 λ 很大时,泊松分布可以近似为正态分布。其均值 μ 为 λ,标准差 σ 为 sqrt(λ)。

示例:比较泊松分布和正态分布的形状:

代码语言:python
代码运行次数:1
运行
AI代码解释
复制
import seaborn as sns
import numpy as np

lam = 50

# 生成泊松分布数据
data_poisson = np.random.poisson(lam=lam, size=1000)

# 生成正态分布数据
mu = lam
sigma = np.sqrt(lam)
data_normal = np.random.normal(loc=mu, scale=sigma, size=1000)

sns.distplot(data_poisson, label="Poisson")
sns.distplot(data_normal, label="Normal")
plt.legend()
plt.show()

练习

  1. 在一个小时内,一家商店平均收到 10 位顾客。模拟顾客到达商店的次数并绘制分布图。
  2. 比较不同平均速率下泊松分布形状的变化。
  3. 利用泊松分布来模拟一个呼叫中心每天接到的电话呼叫数量,并计算平均呼叫量和每天接听超过 30 个电话的概率。

解决方案

代码语言:python
代码运行次数:3
运行
AI代码解释
复制
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# 1. 模拟顾客到达商店的次数并绘制分布图
data = np.random.poisson(lam=10, size=1000)
sns.distplot(data)
plt.show()

# 2. 比较不同平均速率下泊松分布形状的变化
lam_values = [5, 10, 20, 50]
for lam in lam_values:
    data = np.random.poisson(lam=lam, size=1000)
    sns.distplot(data, label=f"λ={lam}")
plt.legend()
plt.show()

# 3. 模拟电话呼叫数量并计算平均呼叫量和每天接听超过 30 个电话的概率
calls_per_day = np.random.poisson(lam=150, size=365)
print("平均呼叫量:", calls_per_day.mean())
print("每天接听超过 30 个电话的概率:", (calls_per_day > 30).mean())

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NumPy 二项分布生成与 Seaborn 可视化技巧
二项分布是一种离散概率分布,用于描述在固定次数的独立试验中,事件“成功”的次数的概率分布。它通常用于分析诸如抛硬币、做选择题等具有两个结果(成功或失败)的事件。
小万哥
2024/05/27
1020
NumPy 二项分布生成与 Seaborn 可视化技巧
NumPy 正态分布与 Seaborn 可视化指南
正态分布(也称为高斯分布)是一种非常重要的概率分布,它描述了许多自然和人为现象的数据分布情况。正态分布的形状呈钟形,其峰值位于平均值处,两侧对称下降。
小万哥
2024/05/23
1210
NumPy 正态分布与 Seaborn 可视化指南
NumPy 均匀分布模拟及 Seaborn 可视化教程
均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。它常用于模拟随机事件,例如生成随机数或选择随机样本。
小万哥
2024/05/30
1360
NumPy 随机数据分布与 Seaborn 可视化详解
数据分布是指数据集中所有可能值出现的频率,并用概率来表示。它描述了数据取值的可能性。
小万哥
2024/05/21
1400
NumPy 随机数据分布与 Seaborn 可视化详解
NumPy 随机数据分布与 Seaborn 可视化详解
数据分布是指数据集中所有可能值出现的频率,并用概率来表示。它描述了数据取值的可能性。
用户6256742
2024/06/30
1150
泊松分布
一个故事:你已经做了10年的自由职业者了。到目前为止,你的平均年收入约为8万美元。今年,你觉得自己陷入了困境,决定要达到6位数。要做到这一点,你需要先计算这一令人兴奋的成就发生的概率,但你不知道怎么做。
deephub
2021/01/25
8380
python3-泊松分布
在实际事例中,当一个随机事件,例如某电话交换台收到的呼叫、来到某公共汽车站的乘客、某放射性物质发射出的粒子、显微镜下某区域中的白血球等等,以固定的平均瞬时速率λ(或称密度)随机且独立地出现时,那么这个事件在单位时间(面积或体积)内出现的次数或个数就近似地服从泊松分布P(λ)。因此,泊松分布在管理科学、运筹学以及自然科学的某些问题中都占有重要的地位。 泊松分布适合于描述单位时间(或空间)内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数,机器出现的故障数,自然灾害发生的次数,一块产品上的缺陷数,显微镜下单位分区内的细菌分布数等等。
py3study
2020/01/06
3780
机器学习统计概率分布全面总结(Python)
在平时的科研中,我们经常使用统计概率的相关知识来帮助我们进行城市研究。因此,掌握一定的统计概率相关知识非常有必要。
算法进阶
2023/12/26
5880
机器学习统计概率分布全面总结(Python)
机器学习数学基础:常见分布与假设检验
所谓机器学习和深度学习, 背后的逻辑都是数学, 所以数学基础在这个领域非常关键, 而统计学又是重中之重, 机器学习从某种意义上来说就是一种统计学习。
Datawhale
2020/07/09
3.4K0
机器学习数学基础:常见分布与假设检验
​常见的8个概率分布公式和可视化
来源:Deephub Imba本文约2800字,建议阅读8分钟本文我们将介绍一些常见的分布并通过Python 代码进行可视化以直观地显示它们。 概率和统计知识是数据科学和机器学习的核心;我们需要统计和概率知识来有效地收集、审查、分析数据。 现实世界中有几个现象实例被认为是统计性质的(即天气数据、销售数据、财务数据等)。这意味着在某些情况下,我们已经能够开发出方法来帮助我们通过可以描述数据特征的数学函数来模拟自然。 “概率分布是一个数学函数,它给出了实验中不同可能结果的发生概率。” 了解数据的分布有助于更好
数据派THU
2022/04/29
1.1K0
​常见的8个概率分布公式和可视化
Python实现 8 个概率分布公式及可视化
概率和统计知识是数据科学和机器学习的核心; 我们需要统计和概率知识来有效地收集、审查、分析数据。
数据STUDIO
2022/05/24
1.3K0
Python实现 8 个概率分布公式及可视化
用Python结合统计学知识进行数据探索分析
本文用Python统计模拟的方法,介绍四种常用的统计分布,包括离散分布:二项分布和泊松分布,以及连续分布:指数分布和正态分布,最后查看人群的身高和体重数据所符合的分布。 # 导入相关模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns %matplotlib inline %config InlineBackend.figure_format ='retina' 随机数
小莹莹
2018/04/24
1.5K0
用Python结合统计学知识进行数据探索分析
python实现10种概率分布(附代码)
在概率论和统计学中,均匀分布也被称为矩形分布。这种分布可以通过两个参数a和b来定义,它们分别是数轴上的最小值和最大值,因此通常表示为U(a, b)。
皮大大
2024/08/07
8240
用Python结合统计学知识进行数据探索分析
# 导入相关模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns %matplotlib inline %config InlineBackend.figure_format = 'retina'
IT阅读排行榜
2018/08/17
1.2K0
用Python结合统计学知识进行数据探索分析
数据挖掘学习小组之(概率分布)
随机变量(random variable)表示随机试验各种结果的实值单值函数。随机事件不论与数量是否直接有关,都可以数量化,即都能用数量化的方式表达!
数据处理与分析
2019/08/05
7330
数据可视化(6)-Seaborn系列 | 直方图distplot()
该API可以绘制分别直方图和核密度估计图,也可以绘制直方图和核密度估计图的合成图 通过设置默认情况下,是绘制合成图,设置情况图下:
数据分析可视化
2019/09/24
15.2K0
数据可视化(6)-Seaborn系列 | 直方图distplot()
【编写环境二】python库scipy.stats各种分布函数生成、以及随机数生成【泊松分布、正态分布等】
norm.rvs通过loc和scale参数可以指定随机变量的偏移和缩放参数,这里对应的是正态分布的期望和标准差。size得到随机数数组的形状参数。(也可以使用np.random.normal(loc=0.0, scale=1.0, size=None))
汀丶人工智能
2022/12/21
1.8K0
【编写环境二】python库scipy.stats各种分布函数生成、以及随机数生成【泊松分布、正态分布等】
Python中得可视化:使用Seaborn绘制常用图表
Seaborn是构建在matplotlib之上的数据可视化库,与Python中的pandas数据结构紧密集成。可视化是Seaborn的核心部分,可以帮助探索和理解数据。
deephub
2020/08/21
6.8K0
Python中得可视化:使用Seaborn绘制常用图表
Python简单高效的可视化神器——Seaborn
前面我们已经介绍了matplotlib的一些基础和进阶的操作,相信大家已经掌握了。没有掌握的同学快回去学一学!
MeteoAI
2019/07/22
2.7K0
Python Numpy随机数生成的实战技巧分享
在数据科学、机器学习和数值模拟中,随机数的生成是非常重要的一个环节。无论是在模拟随机现象、生成测试数据,还是在训练模型时进行随机初始化,随机数都扮演着至关重要的角色。Python中的Numpy库为我们提供了强大且灵活的随机数生成功能,能够满足各种场景下的需求。
sergiojune
2024/09/17
1500
Python Numpy随机数生成的实战技巧分享
推荐阅读
相关推荐
NumPy 二项分布生成与 Seaborn 可视化技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验