mars.tensor.random.logseries#
- mars.tensor.random.logseries(p, size=None, chunk_size=None, gpu=None, dtype=None)[来源]#
从对数系列分布中抽样。
样本是从具有指定形状参数的对数系列分布中提取的,0 <
p< 1。- Parameters
p (float 或 array_like 的 floats) – 分布的形状参数。必须在范围 (0, 1) 内。
size (int 或 tuple 的 ints, 可选) – 输出形状。如果给定的形状是,例如,
(m, n, k),那么m * n * k个样本被抽取。如果 size 是None(默认), 当p是标量时,将返回单个值。否则,np.array(p).size个样本被抽取。chunk_size (int 或 tuple 的 int 或 tuple 的 ints, 可选) – 每个维度上所需的块大小
gpu (bool, 可选) – 如果为True,则在GPU上分配张量,默认为False
dtype (数据类型, 可选) – 返回的张量的数据类型。
- Returns
out – 从参数化的对数级数分布中抽取的样本。
- Return type
张量或标量
另请参阅
scipy.stats.logser概率密度函数,分布或累积分布函数等。
备注
对数序列分布的概率密度是
\[P(k) = \frac{-p^k}{k \ln(1-p)},\]其中 p = 概率。
对数系列分布常用于表示物种丰富性和出现频率,首次由Fisher、Corbet和Williams在1943年提出[2]。它也可以用来模拟在汽车中看到的乘员数量[3]。
参考文献
- 1
Buzas, Martin A.; Culver, Stephen J., 通过事件的对数级数分布理解区域物种多样性:生物多样性研究 多样性与分布,卷 5,号 5,1999年9月,页码 187-195(9)。
- 2
Fisher, R.A,, A.S. Corbet, 和 C.B. Williams. 1943. 物种数量与随机样本中动物种群个体数量之间的关系。动物生态学杂志, 12:42-58.
- 3
D. J. Hand, F. Daly, D. Lunn, E. Ostrowski,《小数据集手册》,CRC出版社,1994年。
- 4
维基百科,“对数分布”, http://en.wikipedia.org/wiki/Logarithmic_distribution
示例
从分布中抽样:
>>> import mars.tensor as mt >>> import matplotlib.pyplot as plt
>>> a = .6 >>> s = mt.random.logseries(a, 10000) >>> count, bins, ignored = plt.hist(s.execute())
# 绘制与分布的对比
>>> def logseries(k, p): ... return -p**k/(k*mt.log(1-p)) >>> plt.plot(bins, (logseries(bins, a)*count.max()/ ... logseries(bins, a).max()).execute(), 'r') >>> plt.show()