Logistic 分布是一种连续概率分布。其累积分布函数是逻辑函数,出现在逻辑回归和前馈神经网络中。它在形状上类似于逻辑分布,但尾部较重。
逻辑分布的概率密度函数(pdf)定义为:
其中,μ 是分布的平均值或期望, s 是分布的尺度参数。
指数分布的平均值为 μ,方差为 s2𝜋2/ 3.
在x处评估的累积分布函数(cdf)是随机变量(X)取小于的值的概率或等于x。物流分布的cdf定义为:
NumPy random.logistic() 函数从逻辑分布中返回随机样本。
语法
numpy.random.logistic(loc=0.0, scale=1.0, size=None)
参数
loc | 可选。 指定分布的平均值。 float 或 array_like of floats。默认值为 0.0。 |
scale | 可选。 指定分布的尺度参数。 float 或 array_like of floats。必须是非负数。默认值为 1.0。 |
size | 可选。 指定输出形状。 int 或 int 元组。如果给定形状为(m, n, k),则绘制m * n * k个样本。如果 size 为 None(默认),并且 loc 和 scale 均为标量,则返回单个值。否则,将抽取 np.broadcast(loc, scale).size 样本。 |
返回值
从参数化逻辑分布返回样本。 ndarray 或标量。
示例:逻辑分布的值
在下面的示例中,random.logistic() 函数用于创建给定矩阵包含从指定逻辑分布中抽取的随机值的形状。
import numpy as np
size = (5,3)
sample = np.random.logistic(0, 1, size)
print(sample)
上述代码的可能输出可能是:
[[-1.11416732 -0.69983364 -0.28651865]
[-3.05668874 -1.35517427 -3.50476354]
[ 0.78448327 0.2499033 -0.36716532]
[-0.45759849 -1.3434462 0.8690071 ]
[-0.74228078 1.08577009 -2.35079969]]
绘制逻辑分布
示例:密度图
Matplotlib 是一个 Python 绘图库,可用于绘制逻辑分布的概率密度函数 (pdf)使用 hist() 函数。
import matplotlib.pyplot as plt
import numpy as np
#修复种子以提高重现性
#结果
np.random.seed(10)
size = 10000
#抽取10000个样本
#物流配送
sample = np.random.logistic(0, 1, size)
bin = np.arange(-5,5,0.1)
plt.hist(sample, bins=bin, edgecolor='blue')
plt.title("Logistic Distribution")
plt.show()
上述代码的输出将是:
示例:比较 pdf
可以使用 Seaborn kdeplot() 函数以图形方式比较多个概率密度函数。 在下面的示例中,比较了三个 Logistic 分布(每个均值分别为 0 和尺度参数 1、2 和 3)的 pdf。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#修复种子以提高重现性
#结果
np.random.seed(10)
size = 1000
#绘制1000个样本
#不同的物流配送
sns.kdeplot(np.random.logistic(0, 1, size))
sns.kdeplot(np.random.logistic(0, 2, size))
sns.kdeplot(np.random.logistic(0, 3, size))
plt.legend([r"$\mu = 0, s = 1$",
r"$\mu = 0, s = 2$",
r"$\mu = 0, s = 3$"])
plt.show()
上述代码的输出将为:
示例:比较 cdf
可以使用 Seaborn ecdfplot() 函数以图形方式比较多个累积分布函数。在下面的示例中,比较了三个逻辑分布(每个均值分别为 0 且尺度参数分别为 1、2 和 3)的 cdf。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#修复种子以提高重现性
#结果
np.random.seed(10)
size = 1000
#绘制1000个样本
#不同的物流配送
sns.ecdfplot(np.random.logistic(0, 1, size))
sns.ecdfplot(np.random.logistic(0, 2, size))
sns.ecdfplot(np.random.logistic(0, 3, size))
plt.legend([r"$\mu = 0, s = 1$",
r"$\mu = 0, s = 2$",
r"$\mu = 0, s = 3$"])
plt.show()
上述代码的输出将为:
示例:比较 pdf(不同的均值和尺度参数)
在下面的示例中,以图形方式比较了分别具有不同均值和尺度参数的三个逻辑分布。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#修复种子以提高重现性
#结果
np.random.seed(10)
size = 1000
#绘制1000个样本
#不同的物流配送
sns.kdeplot(np.random.logistic(0, 1, size))
sns.kdeplot(np.random.logistic(3, 2, size))
sns.kdeplot(np.random.logistic(6, 3, size))
plt.legend([r"$\mu = 0, s = 1$",
r"$\mu = 3, s = 2$",
r"$\mu = 6, s = 3$"])
plt.show()
上述代码的输出将是: