maxframe.tensor.random.pareto#
- maxframe.tensor.random.pareto(a, size=None, chunk_size=None, gpu=None, dtype=None)[源代码]#
从具有指定形状的帕累托 II 或 Lomax 分布中抽取样本。
Lomax 或帕累托 II 分布是帕累托分布的平移版本。通过将 Lomax 分布加 1 并乘以尺度参数
m(见注释) 可以得到经典的帕累托分布。Lomax 分布的最小值为零,而经典帕累托分布的最小值为mu,其中标准帕累托分布的位置参数为mu = 1。Lomax 也可以看作是广义帕累托分布 (在 SciPy 中可用) 的简化版本,其尺度设为 1,位置设为 0。帕累托分布必须大于零,并且无上界。它也被称为“80-20法则”。在此分布中,80% 的权重分布在最低 20% 的范围内,而其余 20% 则填满了剩余的 80% 范围。
- 参数:
a (float or array_like of floats) -- 分布的形状参数。应大于零。
size (int or tuple of ints, optional) -- 输出形状。如果给定的形状是,例如
(m, n, k),那么会抽取m * n * k个样本。如果 size 是None(默认),当a是标量时返回单个值。否则,抽取mt.array(a).size个样本。chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的块大小
gpu (bool, optional) -- 如果为 True,则将张量分配在 GPU 上,默认为 False
dtype (data-type, optional) -- 返回张量的数据类型。
- 返回:
out -- 从参数化的帕累托分布中抽取的样本。
- 返回类型:
Tensor or scalar
参见
scipy.stats.lomax概率密度函数、分布或累积密度函数等。
scipy.stats.genpareto概率密度函数、分布或累积密度函数等。
备注
帕累托分布的概率密度为
\[p(x) = \frac{am^a}{x^{a+1}}\]其中 \(a\) 是形状参数,\(m\) 是尺度参数。
帕累托分布以意大利经济学家维尔弗雷多·帕累托命名,是一种幂律概率分布在许多现实世界问题中都有用。经济学领域之外,它通常被称为布拉德福分布。帕累托提出该分布是为了描述经济中的财富分布。它还被应用于保险、网页访问统计、油田规模以及许多其他问题中,包括 Sourceforge 项目下载频率 [1]。它是所谓的“厚尾”分布之一。
引用
示例
从分布中抽取样本:
>>> import maxframe.tensor as mt
>>> a, m = 3., 2. # shape and mode >>> s = (mt.random.pareto(a, 1000) + 1) * m
显示样本的直方图以及概率密度函数:
>>> import matplotlib.pyplot as plt >>> count, bins, _ = plt.hist(s.execute(), 100, normed=True) >>> fit = a*m**a / bins**(a+1) >>> plt.plot(bins, max(count)*fit/max(fit), linewidth=2, color='r') >>> plt.show()