【问题标题】:What are the arguments for scipy.stats.uniform?scipy.stats.uniform 的论据是什么?
【发布时间】:2017-11-18 05:16:04
【问题描述】:

我正在尝试在两个数字(下限和上限)之间创建均匀分布,以便将其提供给 sklearn 的ParameterSampler。我使用scipy.stats.uniform,格式如下:

from scipy.stats import uniform    
params = ParameterSampler({'bandwidth':uniform(5,50)}, 20)

但是当我随机选择“带宽”参数时,它们并不都在 5 到 50 之间。其中一些比 50 大一点。所以我的问题是 scipy.stats.uniform 中的参数代表什么?它们不是下限和上限吗?文档没有显示任何参数,所以我无法从中弄清楚。

【问题讨论】:

    标签: python scipy scikit-learn


    【解决方案1】:

    第一个参数是下限,第二个参数是分布的范围。因此,您问题中的示例分布在 5 到 55 之间是均匀的。

    引用您问题中链接的documentation

    一个均匀的连续随机变量。

    这种分布在locloc + scale 之间是恒定的。

    loc 是第一个参数,scale 是第二个参数。

    【讨论】:

    • 感谢您的彻底和及时的回复。非常有帮助。你怎么知道 loc 和 scale 是两个参数?
    • 基本上,之前有使用uniform和其他各种scipy概率分布的经验,它们都采用locscale参数。如果没有以前的经验,我会很不清楚该文档。
    【解决方案2】:

    在给定的情况下,调用应该如下所示:

    uniform.rvs(loc=5, scale=45)
    

    虽然可以直接带参数调用分布,scipy.stats有如下逻辑:

    <dist_name>.rvs(loc=<param1>, scale=<param2>, size=(Nx, Ny))
    

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2017-09-27
      • 2015-02-09
      • 2011-03-29
      • 1970-01-01
      相关资源
      最近更新 更多