【问题标题】:Positional argument missing error in scipy optimizescipy优化中的位置参数丢失错误
【发布时间】:2022-01-11 20:16:31
【问题描述】:

我想使用 scipy 在 mu 和 sigma 中获得以下函数的最大估计值,其中 s 被定义为样本

s = np.random.normal(mu, sigma, 100)

def f(mu, sigma):
  x = norm.pdf(s,mu,sigma)
  x = np.prod(x)
  x = np.log(x)
  return x

我试过了

x0 = [0,1]


bounds = [(-5,5),(-5,5)]

print(optimize.minimize(f, x0, method='SLSQP', bounds=bounds))

但不断收到错误:

f() 缺少 1 个必需的位置参数:'sigma'

我不确定这里发生了什么

【问题讨论】:

    标签: scipy scipy-optimize


    【解决方案1】:

    您需要将参数作为向量传递给f

    def f(z):
      mu, sigma = z
      x = norm.pdf(s,mu,sigma)
      x = np.prod(x)
      x = np.log(x)
      return x
    

    【讨论】:

    • 成功了,谢谢!
    • 很高兴,如果主题已关闭,请批准答案。 @user135520
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多