关于当前np.random.dirichlet
函数的讨论正在进行中,因为它不适用于小参数:
In [1]: import numpy as np
In [2]: np.random.dirichlet(np.ones(3)*.00001)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-2-464b0fe9c6c4> in <module>()
----> 1 np.random.dirichlet(np.ones(3)*.00001)
mtrand.pyx in mtrand.RandomState.dirichlet (numpy/random/mtrand/mtrand.c:25213)()
mtrand.pyx in mtrand.RandomState.dirichlet (numpy/random/mtrand/mtrand.c:25123)()
ZeroDivisionError: float division
可以在此处和此处阅读讨论并指出这是一个规范化错误。目前,出于多种原因,针对小参数切换采样器的提议增强无法合并到 numpy 的 master 中。
问题:有人可以建议一种不同的方法来在 python 中绘制 dirichlets 或者指出一个解决方案来使用新的采样器而不重新编译我的 numpy 和/或在未发布的分支上工作?