【深度学习与大模型基础】第8章-概率分布

一、概率质量函数

什么是概率质量函数?

概率质量函数是用来描述离散随机变量的概率分布的工具。它告诉我们,某个离散随机变量取某一个特定值的概率是多少。

举个例子:抛硬币

假设你有一个程序,模拟抛硬币的结果。硬币有两个可能的结果:

  • 正面(记为 1)

  • 反面(记为 0)

这里,抛硬币的结果就是一个离散随机变量,因为它只能取有限个值(0 或 1)。

概率质量函数的作用

概率质量函数会告诉我们:

  • 结果为 0(反面)的概率是多少?

  • 结果为 1(正面)的概率是多少?

假设硬币是公平的,那么:

  • P(X=0) = 0.5(反面概率是 50%)

  • P(X=1) = 0.5(正面概率是 50%)

这里的 P(X=0) 和 P(X=1) 就是概率质量函数的值。

计算机行业的例子:服务器请求的成功率

假设你有一个服务器,每天会收到 100 个请求。每个请求可能成功(记为 1)或失败(记为 0)。根据历史数据,你知道:

  • 请求成功的概率是 90%(P(X=1) = 0.9)

  • 请求失败的概率是 10%(P(X=0) = 0.1)

这里的 X 是一个离散随机变量(成功或失败),而 P(X=0) 和 P(X=1) 就是它的概率质量函数。

总结

概率质量函数就是用来描述离散随机变量取某个值的概率的函数。在计算机行业中,它可以用来分析:

  • 网络请求的成功率

  • 程序运行的结果(比如是否抛出异常)

  • 数据包是否丢失

  • 等等

它的特点是:

  1. 只针对离散随机变量(取值是有限的)。

  2. 每个取值的概率都在 0 到 1 之间。

  3. 所有取值的概率加起来等于 1。

python演示概率质量函数

复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom

# 定义二项分布的参数
n = 100  # 试验次数
p = 0.9  # 每次试验成功的概率

# 生成可能的取值范围
x = np.arange(0, n+1)

# 计算每个取值的概率质量函数
pmf = binom.pmf(x, n, p)

# 可视化概率质量函数
plt.figure(figsize=(14, 8))
plt.stem(x, pmf, basefmt=" ")
plt.title('二项分布的概率质量函数 (n={}, p={})'.format(n, p))
plt.xlabel('随机变量的取值')
plt.ylabel('概率')
plt.grid(True)
plt.show()

二、概率密度函数?

概率密度函数是用来描述连续随机变量的概率分布的工具。它告诉我们,某个连续随机变量在某个值附近出现的可能性有多大。

与概率质量函数(PMF)不同,概率密度函数不是直接给出某个值的概率,而是通过面积来表示概率。具体来说:

  • 概率密度函数的值本身不是概率,而是一个"密度"。

  • 概率是通过计算概率密度函数曲线下的面积来得到的。


举个例子:气温的变化

假设我们研究某个城市夏季的气温变化。气温是一个连续随机变量,因为它可以在一定范围内取任意值(比如 20°C 到 40°C)。

概率密度函数的作用

概率密度函数可以告诉我们:

  • 气温在某个范围内(比如 25°C 到 30°C)出现的概率有多大。

  • 气温在某个特定值(比如 28°C)附近的可能性有多高。

具体例子

假设气温的概率密度函数如下图所示:

  • 气温在 25°C 到 30°C 之间的概率密度较高,说明这个范围的气温比较常见。

  • 气温低于 20°C 或高于 35°C 的概率密度很低,说明这些极端气温很少出现。

如何计算概率?

如果我们想知道气温在 25°C 到 30°C 之间的概率,我们需要计算概率密度函数在这个区间内的曲线下的面积。这个面积就是概率。


概率密度函数的特点

  1. 连续随机变量:概率密度函数用于描述连续随机变量(比如气温、时间、长度等)。

  2. 密度值不是概率:概率密度函数的值可以大于 1,但它本身不是概率。概率是通过面积计算的。

  3. 总面积等于 1:概率密度函数曲线下的总面积等于 1,表示所有可能事件的概率总和为 100%。


计算机行业的例子:网络延迟

在计算机行业中,概率密度函数可以用来描述网络延迟的分布。比如:

  • 网络延迟是一个连续随机变量,可能从 0 毫秒到 1000 毫秒。

  • 概率密度函数可以告诉我们,延迟在 100 毫秒到 200 毫秒之间的概率有多大。


python演示概率密度函数

复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 定义正态分布的参数
mu = 500  # 均值
sigma = 100  # 标准差

# 生成可能的取值范围
x = np.linspace(0, 1000, 1000)

# 计算每个取值的概率密度函数
pdf = norm.pdf(x, mu, sigma)

# 可视化概率密度函数
plt.figure(figsize=(14, 8))
plt.plot(x, pdf, label='PDF', color='blue')
plt.title('正态分布的概率密度函数 (μ={}, σ={})'.format(mu, sigma))
plt.xlabel('网络延迟 (毫秒)')
plt.ylabel('概率密度')
plt.grid(True)
plt.legend()
plt.show()

# 计算延迟在100毫秒到200毫秒之间的概率
prob_100_to_200 = norm.cdf(200, mu, sigma) - norm.cdf(100, mu, sigma)
print('网络延迟在100毫秒到200毫秒之间的概率: {:.4f}'.format(prob_100_to_200))
相关推荐
Fantasydg1 分钟前
DAY 31 leetcode 142--链表.环形链表
算法·leetcode·链表
basketball6165 分钟前
C++ STL常用算法之常用排序算法
c++·算法·排序算法
qystca32 分钟前
蓝桥云客 岛屿个数
算法·dfs·bfs
什码情况1 小时前
回文时间 - 携程机试真题题解
数据结构·python·算法·华为od·机试
星际码仔2 小时前
AutoGLM沉思,仍然没有摆脱DeepResearch产品的通病
人工智能·ai编程·chatglm (智谱)
喝拿铁写前端2 小时前
前端与 AI 结合的 10 个可能路径图谱
前端·人工智能
lwewan2 小时前
26考研——栈、队列和数组_数组和特殊矩阵(3)
数据结构·笔记·考研·算法
拾零吖3 小时前
枚举算法-day2
数据结构·算法·leetcode
已经成为了代码的形状3 小时前
关于交换并查集内元素的一些题的做法
数据结构·算法
城电科技3 小时前
城电科技|零碳园区光伏太阳花绽放零碳绿色未来
人工智能·科技·能源