Python 优化最小化:目标函数中的两个输出变量?
我正在使用scipyPython 优化最小化:目标函数中的两个输出变量?,python,optimization,scipy,minimize,Python,Optimization,Scipy,Minimize,我正在使用scipyminimize函数查找一些参数的最佳值,H和Q。我的目标函数,kalman,根据变量log\u似然进行评估。简而言之,我试图找到使变量log\u可能性最大化的H和Q的最佳值 为此,scipy的最小化函数要求log\u似然是我的函数kalman的唯一输出 我的代码运行良好,我可以找到两个参数H和Q的最佳值。然而,我想做的是最后一次运行kalman(优化后),使用最佳H和Q值,让kalman返回另一个变量a 我不能这么做,因为如果我 return log_likelihood,
minimize
函数查找一些参数的最佳值,H
和Q
。我的目标函数,kalman
,根据变量log\u似然
进行评估。简而言之,我试图找到使变量log\u可能性最大化的H
和Q
的最佳值
为此,scipy的最小化
函数要求log\u似然
是我的函数kalman
的唯一输出
我的代码运行良好,我可以找到两个参数H
和Q
的最佳值。然而,我想做的是最后一次运行kalman
(优化后),使用最佳H
和Q
值,让kalman
返回另一个变量a
我不能这么做,因为如果我
return log_likelihood, A
在我的kalman
函数中,minimize
函数不会运行,因为minimize
只能处理目标函数的一个输出
有什么想法吗
这是我的密码:
import numpy as np
from scipy.optimize import minimize
def kalman(x0):
#set parameters values
H = x0[0]
Q = x0[1]
#Do some operations
#use H and Q to compute value for variable log_likelihood
#use H and Q to compute value for variable A
#...
return log_likelihood
#initial parameter values
x0 = np.array([np.log(1),np.log(1)])
#optimizing function
res = minimize(kalman, x0, method='BFGS', options={'disp': True})
#get optimal parameter values
param_values = res.x
#run kalman function final time with optimal values
kalman(param_values)
您可以向函数添加一个额外的可选参数,如kalman(x0,flag=False)
,这会使函数在设置为True
时返回更多信息!!!谢谢工作得很有魅力!