gpt4 book ai didi

python - scipy.optimize.minimize -- 当一个是 numpy 数组时如何指定边界

转载 作者:行者123 更新时间:2023-12-05 06:34:29 24 4
gpt4 key购买 nike

我正在使用 scipy.optimize.minimize 运行优化

sig_init = 2
b_init = np.array([0.2,0.01,0.5,-0.02])
params_init = np.array([b_init, sig_init])
mle_args = (y,x)
results = opt.minimize(crit, params_init, args=(mle_args))

问题是,我需要在 sig_init 上设置一个界限。但是 opt.minimize() 要求我为每个输入参数指定界限。但是我的输入之一是一个 numpy 数组。

如果我的输入之一是 numpy 数组,我如何指定边界?

最佳答案

首先,scipy.optimize.minimize 期望平面数组作为其第二个参数 x0 ( documentation )(这意味着它优化的函数也采用平面数组和可选的附加参数)。因此,据我了解,您必须给它类似的内容:

 b_init = [0.2,0.01,0.5,-0.02]
sig_init = [2]
params_init = np.array(b_init + sig_init])

优化工作。然后,如果您必须为数组中的每个标量给出界限。一个基本的例子,如果你想要 [-1, 1] 限制在 sig 上而不想要限制在 b 上:

bounds = [(-np.inf, np.inf) for _ in b_init] + [(-1, 1)]

关于python - scipy.optimize.minimize -- 当一个是 numpy 数组时如何指定边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com