NumPy 泊松分布模拟与 Seaborn 可视化技巧
泊松分布
简介
泊松分布是一种离散概率分布,用于描述在给定时间间隔内随机事件发生的次数。它常用于模拟诸如客户到达商店、电话呼叫接入中心等事件。
参数
泊松分布用一个参数来定义:
λ:事件发生的平均速率,表示在单位时间内事件发生的平均次数。
公式
泊松分布的概率质量函数 (PMF) 给出了在指定时间间隔内发生 k 次事件的概率,计算公式为:
P(k) = e^(-λ) (λ^k) / k!
其中:
e^(-λ):表示没有事件发生的概率。
(λ^k):表示 k 次事件发生的概率。
k!:表示 k 个元素的阶乘,即 k × (k - 1) × (k - 2) × ... × 2 × 1。
生成泊松分布数据
NumPy 提供了 random.poisson() 函数来生成服从泊松分布的随机数。该函数接受以下参数:
lam:事件发生的平均速率。
size:输出数组的形状。
示例:生成一个平均速率为 5 的事件在 10 个时间间隔内发生的次数:
import numpy as np
data = np.random.poisson(lam=5, size=10)
print(data)
可视化泊松分布
Seaborn 库提供了便捷的函数来可视化分布,包括泊松分布。
示例:绘制平均速率为 7 的事件在 1000 个时间间隔内发生的次数分布:
import seaborn as sns
import numpy as np
data = np.random.poisson(lam=7, size=1000)
sns.distplot(data)
plt.show()
正态分布与泊松分布的关系
当事件发生的平均速率 λ 很大时,泊松分布可以近似为正态分布。其均值 μ 为 λ,标准差 σ 为 sqrt(λ)。
示例:比较泊松分布和正态分布的形状:
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()
练习
- 在一个小时内,一家商店平均收到 10 位顾客。模拟顾客到达商店的次数并绘制分布图。
- 比较不同平均速率下泊松分布形状的变化。
- 利用泊松分布来模拟一个呼叫中心每天接到的电话呼叫数量,并计算平均呼叫量和每天接听超过 30 个电话的概率。
解决方案
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,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
NumPy 泊松分布模拟与 Seaborn 可视化技巧的更多相关文章
- Python - Seaborn可视化:图形个性化设置的几个小技巧
1 概述 在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置. 本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置.包括常用的设置,如: 设置图表显示颜色 设置图 ...
- 数据可视化之powerBI技巧(二十三)Power BI可视化技巧,使用DAX自定义时间轴
按照自然日历来展现疫情数据时,是这样的效果, 由于各个国家的疫情爆发时间不一致,按自然日期坐标轴很难比较各个国家的蔓延速度. 如果各个国家都从蔓延日开始统计,展示之后每日的确诊人数,就是同样的时间轴 ...
- CNN超参数优化和可视化技巧详解
https://zhuanlan.zhihu.com/p/27905191 在深度学习中,有许多不同的深度网络结构,包括卷积神经网络(CNN或convnet).长短期记忆网络(LSTM)和生成对抗网络 ...
- seaborn可视化特征的相关性
import seaborn as sn sn.heatmap(trainX.corr(),vmax=1,square=True)
- python/numpy/pandas数据操作知识与技巧
pandas针对dataframe各种操作技巧集合: filtering: 一般地,使用df.column > xx将会产生一个只有boolean值的series,以该series作为dataf ...
- seaborn可视化
文章来自https://blog.csdn.net/qq_33120943/article/details/76569756 详细教程可以查看官方额示例:http://seaborn.pydata.o ...
- 数据可视化之powerBI技巧(一)PowerBI可视化技巧:KPI指标动态展示之TOPN及其他
本文来自星友Beau的分享,在进行数据指标的展现时,对关键的少数单独展示,而对剩余的大多数折叠为其他项,是一个很常用的做法.Beau同学通过一个日常的办公场景,详细介绍了PowerBI实现的步骤,值 ...
- Helium文档5-WebUI自动化-press模拟键盘按键输入技巧
前言 press方法是用来模拟键盘按键输入,可以组合使用,来模拟键盘输入,解决一些难定位的元素 入参介绍 以下是press源码中的函数介绍 def press(key): :入参 :param ke ...
- noip模拟赛:部队[技巧?思想?]
王国军总指挥——卡西乌斯准将决定重建情报局,需要从全国各地挑选有能力的士兵,选择的标准为A,B两种能力.对于每个候选士兵,如果存在另一名士兵的两项能力均大于等于他,那么他将被淘汰.(注意:若两名士兵两 ...
- seaborn 数据可视化(二)带有类别属性的数据可视化
Seaborn的分类图分为三类,将分类变量每个级别的每个观察结果显示出来,显示每个观察分布的抽象表示,以及应用统计估计显示的权重趋势和置信区间: 第一个包括函数swarmplot()和stripplo ...
随机推荐
- javascript现代编程系列教程之X——javascript人工智能
JavaScript 在人工智能(AI)领域的应用主要体现在以下几个方面: 浏览器端的机器学习:TensorFlow.js 是一个在浏览器中运行的 JavaScript 机器学习库,它允许开发者训练和 ...
- 函数模板 及显式具体化(C++)
函数模板 将同一种算法应用与不同类型的函数时 #include<iostream> #include<string> template <typename T> v ...
- PS(Photoshop CC2019)安装教程
记录一下自己安装PS2019版本的安装过程~ 先获取安装资料: 百度网盘链接: 链接:https://pan.baidu.com/s/15tzmq-6JQCdVn378ZFqXJA?pwd=997y ...
- 力扣202(java&python)-快乐数(简单)
题目: 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和.然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终 ...
- 【知识点】如何快速开发、部署 Serverless 应用?
简介: 本文将详细介绍如何开发和部署 Serverless 应用,并通过阿里云函数计算控制台与开发者工具 Serverless Devs 进行应用的初始化.部署:最后分享应用的调试,通过科学发布.可观 ...
- Dubbo Mesh:从服务框架到统一服务控制平台
简介: Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java.Golang 等多语言 SDK 实现. 作者:Dubbo 社区 Ap ...
- KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
简介: 10 月 16 日上海,OAM/KubeVela.OpenKruise.OCM 三大开源项目的社区负责人.核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环 ...
- JVM性能提升50%,聊一聊背后的秘密武器Alibaba Dragonwell
简介: 你要知道的关于Alibaba Dragonwell一些重要优化措施. 今年四月五日,阿里云开放了新一代ECS实例的邀测[1],Alibaba Dragonwell也在新ECS上进行了极致 ...
- 在线运行代码的 PHP 沙盒环境实现
演示: 多版本PHP运行代码 作用: 方便作为独立的调试环境运行 一些 临时逻辑,查看执行结果. 方便比较不同版本的 PHP 执行差异,进行一般的兼容性测试. 思路: Docker镜像构建多个PH ...
- [FAQ] 腾讯企业邮箱成员的名字如何多次更改 ?
可以通过给成员的邮箱增加别名,先点击成员信息最右侧的 "编辑",在编辑页面顶部的 "更多操作" 这个按钮中,比较隐蔽. Refer:腾讯邮箱成员名字更改 Lin ...