mars.tensor.random.triangular#

mars.tensor.random.triangular(left, mode, right, size=None, chunk_size=None, gpu=None, dtype=None)[来源]#

从三角分布中抽取样本,区间为 [left, right]

三角分布是一种连续概率分布,具有下限left、峰值mode和上限right。与其他分布不同,这些参数直接定义了概率密度函数的形状。

Parameters
  • left (浮点数类似数组浮点数) – 下限。

  • mode (floatarray_like 类型的 floats) – 分布峰值所在的值。 该值应满足条件 left <= mode <= right

  • right (浮点数类似数组浮点数) – 上限,应该大于 left

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

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

  • gpu (bool, 可选) – 如果为True,则在GPU上分配张量,默认为False

  • dtype (数据类型, 可选) – 返回的张量的数据类型。

Returns

out – 从参数化的三角分布中提取的样本。

Return type

张量或标量

备注

三角分布的概率密度函数是

\[\begin{split}P(x;l, m, r) = \begin{cases} \frac{2(x-l)}{(r-l)(m-l)}& \text{当 $l \leq x \leq m$ 时},\\ \frac{2(r-x)}{(r-l)(r-m)}& \text{当 $m \leq x \leq r$ 时},\\ 0& \text{其他情况}. \end{cases}\end{split}\]

三角分布通常用于不明确的问题,其中基础分布未知,但对限制和众数有一些了解。它常用于模拟中。

参考文献

1

维基百科,“三角分布” http://en.wikipedia.org/wiki/Triangular_distribution

示例

从分布中绘制值并绘制直方图:

>>> import matplotlib.pyplot as plt
>>> import mars.tensor as mt
>>> h = plt.hist(mt.random.triangular(-3, 0, 8, 100000).execute(), bins=200,
...              normed=True)
>>> plt.show()