NumPy 均匀分布模拟及 Seaborn 可视化教程

均匀分布

简介

均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。它常用于模拟随机事件,例如生成随机数或选择随机样本。

参数

均匀分布用两个参数来定义:

a:下限,表示分布的最小值。 b:上限,表示分布的最大值。

公式

均匀分布的概率密度函数 (PDF) 为:

 

python

复制代码

f(x) = 1 / (b - a) for a <= x <= b

其中:

f(x):表示在区间 [a, b] 内 x 点的概率密度。 a:分布的下限。 b:分布的上限。

生成均匀分布数据

NumPy 提供了 random.uniform() 函数来生成服从均匀分布的随机数。该函数接受以下参数:

low:分布的下限,默认为 0。 high:分布的上限,默认为 1。 size:输出数组的形状。

示例:生成 10 个介于 0 到 1 之间的均匀分布随机数:

 

python

复制代码

import numpy as np data = np.random.uniform(low=0, high=1, size=10) print(data)

可视化均匀分布

Seaborn 库提供了便捷的函数来可视化分布,包括均匀分布。

示例:绘制 1000 个介于 0 到 1 之间的均匀分布随机数的分布图:

 

python

复制代码

import seaborn as sns import numpy as np data = np.random.uniform(low=0, high=1, size=1000) sns.distplot(data) plt.show()

练习

  1. 生成 500 个介于 -10 到 10 之间的均匀分布随机数,并绘制它们的分布图。
  2. 比较不同范围下均匀分布形状的变化。
  3. 利用均匀分布来模拟 100 次抛硬币的结果,并计算正面朝上的次数的概率。

解决方案

 

python

复制代码

import seaborn as sns import numpy as np import matplotlib.pyplot as plt # 1. 生成随机数并绘制分布图 data = np.random.uniform(low=-10, high=10, size=500) sns.distplot(data) plt.show() # 2. 比较不同范围下分布形状的变化 low_values = [-10, 0, 10] high_values = [10, 20, 30] for low, high in zip(low_values, high_values): data = np.random.uniform(low=low, high=high, size=1000) sns.distplot(data, label=f"[{low},{high}]") plt.legend() plt.show() # 3. 模拟抛硬币结果并计算正面朝上的次数概率 heads = np.random.uniform(low=0, high=1, size=100) > 0.5 print("正面朝上的次数:", heads.sum()) print("正面朝上的概率:", heads.mean())

逻辑分布

简介

逻辑分布,也称为Logistic分布,是一种连续概率分布,常用于建模具有 S 形增长特征的现象,例如生物种群增长、疫情发展等。它在机器学习中也具有广泛的应用,例如逻辑回归、神经网络等。

参数

逻辑分布用两个参数来定义:

loc:位置参数,表示分布的中心位置。默认为 0。 scale:尺度参数,控制分布的平坦程度。较大的尺度参数使分布更加平坦,两侧尾部更加分散。默认为 1。

公式

逻辑分布的概率密度函数 (PDF) 为:

 

scss

复制代码

f(x) = (scale / (π (1 + (x - loc) / scale)^2)) for all x

其中:

f(x):表示在所有实数 x 点的概率密度。 loc:分布的位置参数。 scale:分布的尺度参数。

生成逻辑分布数据

NumPy 提供了 random.logistic() 函数来生成服从逻辑分布的随机数。该函数接受以下参数:

loc:位置参数,默认为 0。 scale:尺度参数,默认为

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值