scipy 优化中的位置参数缺失错误
Positional argument missing error in scipy optimize
我想使用 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() missing 1 required positional argument: 'sigma'
我不确定这里发生了什么
您需要将参数作为向量传递给 f
:
def f(z):
mu, sigma = z
x = norm.pdf(s,mu,sigma)
x = np.prod(x)
x = np.log(x)
return x
我想使用 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() missing 1 required positional argument: 'sigma'
我不确定这里发生了什么
您需要将参数作为向量传递给 f
:
def f(z):
mu, sigma = z
x = norm.pdf(s,mu,sigma)
x = np.prod(x)
x = np.log(x)
return x