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

数据分析专栏记录之 -基础数学与统计知识 2 概率论基础与python

数据分析专栏记录之 -基础数学与统计知识专栏记录:

2、概率论基础与python


前言

概率论与python,是一件很有趣的事情吧!!!


知识内容

# 离散分布
# ---伯努利分布   伯努利分布是针对单个观测结果的。
"""
我们有一个真的(1)的结果和一个假的(0)的结果。假设我们接受正面为真(我们可以选择正面为真或成功)。
那么,如果正面朝上的概率是  p ,相反情况的概率就是  1-p 。
"""import seaborn as sns
from scipy.stats import bernoulli# 单一观察值
# 生成数据(1000 points, possible outs: 1 or 0, probability: 50% for each)data = bernoulli.rvs(size=1000, p=0.5)
ax = sns.distplot(data, kde=False, hist_kws={"linewidth":10, 'alpha':1})
ax.set(xlabel='Bernoulli', ylabel='Freq')# 横坐标,0或者1    纵坐标 频率次数

在这里插入图片描述

"""
二项式分布伯努利分布是针对单个观测结果的。多个伯努利观测结果会产生二项式分布。例如,连续抛掷硬币。
试验是相互独立的。一个尝试的结果不会影响下一个。二项式分布可以表示为B(n, p)。 n 是试验次数, p 是成功的概率。p : 成功的概率   n : 实验次数    q=1-p : 失败的概率
"""import matplotlib.pyplot as plt
from scipy.stats import binomn = 20
# 实验的次数
p = 0.5
# 成功的概率
r = list(range(n + 1))
# print(r)  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
pmf_list = [binom.pmf(r_i, n , p) for r_i in r]
# 绘画
plt.bar(r, pmf_list)
plt.show()"""
该分布显示出成功结果数量增加的概率增加。
"""

在这里插入图片描述

"""
均匀分布
所有结果成功的概率相同。掷骰子,1 到 6。
次数越多,结果越接近均匀。
"""
import numpy as np
import seaborn as snsdata = np.random.uniform(1, 6, 1000)
ax = sns.distplot(data, kde=False, hist_kws={"linewidth":10, 'alpha':1})
ax.set(xlabel='Uniform', ylabel='Freq')

在这里插入图片描述

"""
poisson分布
它是与事件在给定时间间隔内发生频率相关的分布Po(λ) ,  λ是在指定时间间隔内预期发生的事件次数。它是在该时间间隔内发生的事件的已知平均值。X 是事件在指定时间间隔内发生的次数。如果事件遵循泊松分布,则:X ~  Po(λ)。在泊松分布中,事件彼此独立。事件可以发生任意次数。两个事件不能同时发生。如每 60 分钟接到 4 个电话。这意味着 60 分钟内通话的平均次数为 4。
让我们绘制在 60 分钟内接到 0 到 10 个电话的概率。​​​​​​​
"""
!pip install poissonimport matplotlib.pyplot as plt
from scipy import stats
import poissonr = range(0, 11)
lambda_val = 4   # 呼叫次数
data = poisson.pmf(r, lambda_val)   # 均值、    概率值
# 绘图
fig, sx = plt.subplots(1, 1, figsize=(10, 5))
ax.plot(r, data, 'bo', ms=8, label='poisson')
plt.ylabel("Probability", fontsize="12")
plt.xlabel("# Calls", fontsize="12")
plt.title("Poisson Distribution", fontsize="16")
ax.vlines(r, 0, data, colors='r', lw=5, alpha=0.5)"""
总结,概率图对,但是真实的电话次数,要根据  个人的历史数据   来算
"""

阿巴阿巴。。。。偷偷懒,不弄不弄,反正没人评论。。。。
在这里插入图片描述
如果你有历史数据(例如 N 小时内共收到 M 个电话),估计 λ 的方法很简单:

λ^=MN\hat{\lambda}=\frac{M}{N} \quadλ^=NM (单位: 每小时)

把估计的 λ 带入上面的代码,就得到基于历史的概率分布。

"""
连续分布   ----正态、长尾、左偏、右偏、对数、指数分布对数正态分布
随机变量 X 的对数服从正态分布的分布。
"""import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
X = np.linspace(0, 6, 1500)
std = 1
mean = 0
lognorm_distribution = stats.lognorm([std], loc=mean)
lognorm_distribution_pdf = lognorm_distribution.pdf(X)
fig, ax = plt.subplots(figsize=(8, 5))
plt.plot(X, lognorm_distribution_pdf, label="μ=0, σ=1")
ax.set_xticks(np.arange(min(X), max(X)))
plt.title("Lognormal Distribution")
plt.legend()
plt.show()

在这里插入图片描述
在这里插入图片描述

"""指数分布
我们在 Poisson 分布中研究了在一定时间间隔内发生的事件。在指数分布中,
我们关注的是两个事件之间经过的时间。如果我们把上面的例子倒过来,那么两个电话之间需要多长时间?
因此,如果 X 是一个随机变量,遵循指数分布,则累积分布函数为:
"""
from scipy.stats import expon
import matplotlib.pyplot as plt
x = expon.rvs(scale=2, size=10000)
# 绘图
plt.hist(x, density=True, edgecolor='black')

在这里插入图片描述

在这里插入图片描述

μ\muμ 是均值,eee 是常数。


总结

阿巴阿巴,今天阿巴日记又做了


致谢

靠咖啡续命的牛马,👍点赞 📁 关注 💬评论 💰打赏。


参考

[1] deepseek等ai


往期回顾

- 数据分析专栏记录之 -基础数学与统计知识:1、描述性统计

http://www.xdnf.cn/news/18416.html

相关文章:

  • 安全帽检测算法如何提升工地安全管理效率
  • 【C++组件】Elasticsearch 安装及使用
  • Seaborn数据可视化实战:Seaborn时间序列可视化入门
  • Logstash_Input插件
  • 偶现型Bug处理方法---用系统方法对抗随机性
  • (附源码)基于SSM的餐饮企业食材采购管理系统的设计与实现
  • 攻防世界—bug
  • 以下是基于图论的归一化切割(Normalized Cut)图像分割工具的完整实现,结合Tkinter界面设计及Python代码示
  • 基于SpringBoot的考研学习交流平台【2026最新】
  • 十年磨一剑!Apache Hive 性能优化演进全史(2013 - )
  • 哈希和字符串哈希
  • 电子基石:硬件工程师的器件手册 (十三) - 电源管理IC:能量供给的艺术
  • Leetcode—1683. 无效的推文【简单】
  • Unity设置UI显示区域
  • 数据分类分级的概念、标准解读及实现路径
  • Spring Boot+Docker+Kubernetes 云原生部署实战指南
  • 网易云音乐歌曲导出缓存为原始音乐文件。低调,低调。。。
  • Java实现快速排序算法
  • Jetson Xavier NX 与 NVIDIA RTX 4070 (12GB)
  • Kafka中zk的作用是什么
  • 【Java后端】【可直接落地的 Redis 分布式锁实现】
  • Linux设备模型交互机制详细分析
  • 突击复习清单(高频核心考点)
  • RORPCAP: retrieval-based objects and relations prompt for image captioning
  • STM32F103RC的USB上拉电阻1.5K
  • 回归测试的重要性与实践指南
  • 52 C++ 现代C++编程艺术1-禁止隐式转换关键字explicit
  • go语言中的select的用法和使用场景
  • Maven初识到应用
  • nginx-如何卸载和升级编译安装的版本