四、概率论

一、基本概率论

导入必要的软件包

%matplotlib inline
import torch
from torch.distributions import multinomial
from d2l import torch as d2l

从概率分布中抽取样本的过程称为抽样
传入一个概率向量,即掷骰子
输出是另一个相同长度的向量:它在索引i处的值是采样结果中出现的次数

fair_probs = torch.ones([6]) / 6
multinomial.Multinomial(1, fair_probs).sample()
"""
tensor([1., 0., 0., 0., 0., 0.])
"""

使用深度学习框架的函数同时抽取多个样本,得到想要的任意形状的独立样本数组

multinomial.Multinomial(10, fair_probs).sample()
"""
tensor([2., 2., 0., 1., 3., 2.])
"""

模拟1000次投掷,统计1000次投掷后,每个数字被投中了多少次
也就是:计算相对频率,以作为真实概率的估计

# 将结果存储为32位浮点数以进行除法
counts = multinomial.Multinomial(1000, fair_probs).sample()
counts / 1000  # 相对频率作为估计值
"""
tensor([0.1660, 0.1810, 0.1730, 0.1700, 0.1620, 0.1480])
"""

从一个公平的骰子中生成的数据,每个结果都有真实的概率1/6,大约是0.167,上面输出的估计值看起来不错

进行500组实验,每组抽取10个样本
看这些概率如何随着时间的推移收敛到真实概率

counts = multinomial.Multinomial(10, fair_probs).sample((500,))
cum_counts = counts.cumsum(dim=0)
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)

d2l.set_figsize((6, 4.5))
for i in range(6):
    d2l.plt.plot(estimates[:, i].numpy(),
                 label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend()

在这里插入图片描述
每条实线对应于骰子的6个值中的一个,并给出骰子在每组实验后出现值的估计概率
通过更多的实验获得更多的数据时,这6条实体曲线向真实概率收敛

二、随机变量

在这里插入图片描述

1,处理多个随机变量

在这里插入图片描述

2,联合概率

在这里插入图片描述

3,条件概率

在这里插入图片描述

4,贝叶斯定理

在这里插入图片描述

5,边际化

在这里插入图片描述

6,独立性

在这里插入图片描述

三、期望和方差

# 四、方差

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/126610343