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 (float 或 array_like 类型的 floats) – 分布峰值所在的值。 该值应满足条件
left <= mode <= right。right (浮点数 或 类似数组 的 浮点数) – 上限,应该大于 left。
size (int 或 tuple 的 ints, 可选) – 输出形状。如果给定的形状是,例如,
(m, n, k),那么m * n * k样本被抽取。如果 size 是None(默认),当left、mode和right都是标量时,会返回一个单一的值。否则,将抽取mt.broadcast(left, mode, right).size样本。chunk_size (int 或 tuple 的 int 或 tuple 的 ints, 可选) – 每个维度上所需的块大小
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()