nat*_*002 5 python optimization scipy scipy-optimize-minimize
我正在使用 scipyminimize函数来查找某些参数的最佳值,H并且Q. 我的目标函数kalman是根据变量 进行评估的log_likelihood。简而言之,我试图找到 的最佳值H和Q最大化变量log_likelihood。
为了做到这一点,scipy 的minimize函数要求这log_likelihood是 my function 的唯一输出kalman。
H我的代码运行良好,我可以找到两个参数和的最佳值Q。然而,我想做的是使用最优值和值运行kalman最后一次(优化后) ,并返回另一个变量。HQkalmanA
我不能这样做,因为如果我设置
return log_likelihood, A
Run Code Online (Sandbox Code Playgroud)
在我的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)
Run Code Online (Sandbox Code Playgroud)