【发布时间】:2018-09-07 08:27:00
【问题描述】:
我不明白如何在 Scipy 中实现对数均匀概率分布。根据this post 的cmets,可以通过只定义_pdf 来实现。另外,我从this source 知道 pdf 的实际推导。
但是,我不知道将a 和b 参数放在哪里,以及如何设置a 这样a>0。另外,请注意,我希望 a 和 b 成为该范围的实际最小值和最大值。另请注意,最后,我真的只是希望能够使用.rvs() 方法,因此任何具有均匀分布的技巧都是可以接受的。
这是我的当前(非工作)代码:
from scipy.stats import rv_continuous
import numpy as np
class log_uniform_gen(rv_continuous):
"Log-uniform distribution"
def _pdf(self, x):
if np.exp(self.a) <= x <= np.exp(self.b):
temp = x / (self.b - self.a)
else:
temp = 0.
return temp
log_uniform = log_uniform_gen(a=0.1, b=1.0, name='log-uniform')
【问题讨论】:
标签: python python-3.x scipy scikit-learn