如何使用 Scipy 最小化函数的一个参数?

How to minimize one argument of a function using Scipy?

我有以下功能

def fun(X, alpha, y):
    #some stuff
    return J, gradient

我正试图用它来最小化 alpha,但没有任何反应。

optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True)

您可以使用 functools.partial 将您的函数转换为只有一个参数的部分函数。为了使其与 scipy.optimize.minimize 一起使用,您需要将变量参数保留在最后一个位置:

def fun(X, y, alpha):
    #some stuff
    return J, gradient

然后:

from functools import partial

optfunc = partial(func, X, y)
optimized_alpha = sp.optimize.minimize(optfunc, alpha, method="Newton-CG", jac=True)