mars.tensor.random.logseries#

mars.tensor.random.logseries(p, size=None, chunk_size=None, gpu=None, dtype=None)[来源]#

从对数系列分布中抽样。

样本是从具有指定形状参数的对数系列分布中提取的,0 < p < 1。

Parameters
  • p (floatarray_likefloats) – 分布的形状参数。必须在范围 (0, 1) 内。

  • size (inttupleints, 可选) – 输出形状。如果给定的形状是,例如,(m, n, k),那么 m * n * k 个样本被抽取。如果 size 是 None(默认), 当 p 是标量时,将返回单个值。否则, np.array(p).size 个样本被抽取。

  • chunk_size (inttupleinttupleints, 可选) – 每个维度上所需的块大小

  • 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()