从http://ecolego.facilia.se/ecolego/show/Log- Uni??form%20Distribution:
在对数均匀分布中,假设对数转换后的随机变量是均匀分布的。
从而
logU(a, b) ~ exp(U(log(a), log(b))
因此,我们可以使用以下命令创建对数均匀分布numpy
:
def loguniform(low=0, high=1, size=None):
return np.exp(np.random.uniform(low, high, size))
def lognuniform(low=0, high=1, size=None, base=np.e):
return np.power(base, np.random.uniform(low, high, size))
编辑:@joaoFaria的答案也是正确的。
def loguniform(low=0, high=1, size=None):
return scipy.stats.reciprocal(np.exp(low), np.exp(high)).rvs(size)