Numpy 使用scipy库的有界优化
让我们假设一个对数似然函数Numpy 使用scipy库的有界优化,numpy,optimization,mathematical-optimization,expectation-maximization,Numpy,Optimization,Mathematical Optimization,Expectation Maximization,让我们假设一个对数似然函数f(x,y,z)=prob(k0)*log((1-x)^(1-y))+prob(k1)*log((1-x)^(1-z)),并且存在约束,使得x,y和z的可能值应该在0和1之间。 目标是最小化函数,并在该最小值处返回x、y和z的值 我尝试使用共轭梯度法scipy库 params = sp.optimize.minimize(fun=f, x0=initial_params, args=(data,), method='CG',
f(x,y,z)=prob(k0)*log((1-x)^(1-y))+prob(k1)*log((1-x)^(1-z))
,并且存在约束,使得x,y和z的可能值应该在0和1之间。
目标是最小化函数,并在该最小值处返回x、y和z的值
我尝试使用共轭梯度法scipy库
params = sp.optimize.minimize(fun=f, x0=initial_params, args=(data,), method='CG',
jac=df,options={'gtol': 1e-05,'disp': True})
该方法在第一次迭代中失败
Warning: Desired error not necessarily achieved due to precision loss.
我是否需要提供Hessian矩阵,因为有两个以上的变量
我也尝试过内尔德-米德法,但这需要很多时间
params = sp.optimize.minimize(fun=f, x0=initial_params, method='Nelder-Mead', args=(data,), options={'disp': True})
更重要的是,在某些情况下,该方法不考虑变量的界和X、Y和Z的返回值。我
scipy或任何其他软件包中是否有考虑此类有界优化的其他方法。请提供帮助。根据(查找“界限”参数),界限仅由L-BFGS-B、TNC、SLSQP和trust constr方法支持。L-BFGS-B可能是您的首选,它通常能很好地解决大多数问题