【深度学习与大模型基础】第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))
相关推荐
互联网全栈架构28 分钟前
遨游Spring AI:第一盘菜Hello World
java·人工智能·后端·spring
qq_4298796728 分钟前
省略号和可变参数模板
开发语言·c++·算法
m0_4652157928 分钟前
大语言模型解析
人工智能·语言模型·自然语言处理
张较瘦_1 小时前
[论文阅读] 人工智能+软件工程 | 结对编程中的知识转移新图景
人工智能·软件工程·结对编程
飞川撸码1 小时前
【LeetCode 热题100】网格路径类 DP 系列题:不同路径 & 最小路径和(力扣62 / 64 )(Go语言版)
算法·leetcode·golang·动态规划
Neil今天也要学习2 小时前
永磁同步电机参数辨识算法--IPMSM拓展卡尔曼滤波全参数辨识
单片机·嵌入式硬件·算法
小Q小Q2 小时前
cmake编译LASzip和LAStools
人工智能·计算机视觉
yzx9910132 小时前
基于 Q-Learning 算法和 CNN 的强化学习实现方案
人工智能·算法·cnn
token-go3 小时前
[特殊字符] 革命性AI提示词优化平台正式开源!
人工智能·开源
亮亮爱刷题3 小时前
算法练习-回溯
算法