optimization - How to minimize with BFGS in Python? -
i have following code in r:
loglikelihood <- function(c, x, y) { p <- 1 / (1 + exp(-(c[1] + c[2] * x))) log_likelihood <- sum(log(p[y == 1])) + sum(log(1 - p[y == 0])) return(-log_likelihood) # minus ll because minimize in r } start_params <- c(1, 1) optim_log_regression = optim( start_params, loglikelihood, x = x, y = y, method = 'bfgs' )
i need equivalent code minimization in python. far, think might this:
start_params = np.array([1, 1]) res = minimize(log_likelihood, start_params, method='bfgs', options={'gtol': 1e-6, 'disp': true})
how tell minimize function optimize argument "c" , somehow need provide "x" , "y". can please help?
use args
keyword in scipy.optimize.minimize(fun, x0, args=()...
args : tuple, optional
extra arguments passed objective function , derivatives (jacobian, hessian).
the objective function may take several parameters, first 1 scalar one-dimensional optimization or numpy array / list if optimization multi-dimensional.
you can call optimization function like
res = minimize(log_likelihood, start_params, args=(x, y), method='bfgs', ...
Comments
Post a Comment