【发布时间】:2020-09-16 19:47:36
【问题描述】:
我有一个自定义的(离散的)概率分布,在某种程度上定义为:f(x)/(sum(f(x')) for x' in a given离散集X)。此外,0
在计算完这些概率之后,我需要从一个数组中随机抽取一个元素,它的每个索引可以用分布中的相应概率来选择。所以如果我的分布是 [p1,p2,p3,p4],我的数组是 [a1,a2,a3,a4],那么选择 a2 的概率就是 p2,以此类推。
那么我怎样才能以一种优雅而有效的方式实现它呢?
在这种情况下,有什么办法可以使用 np.random.beta() 吗?由于 beta 分布与我的实际分布之间的差异仅在于归一化常数不同,并且域被限制在几个点。
注意:上面定义的概率质量函数实际上是贝叶斯定理和f(x)=x^s*(1-x)^f给出的形式,其中s和f是给定迭代的固定数字。所以确切的问题是,当 s 或 f 变得非常大时,这个东西会变为 0。
【问题讨论】:
标签: python-3.x floating-point precision bayesian probability-distribution