Python 了解scipy.optimize.basinhopping的输出
我正在使用scipy.optimize.basinhoing最小化函数。以下是我得到的:Python 了解scipy.optimize.basinhopping的输出,python,optimization,scipy,Python,Optimization,Scipy,我正在使用scipy.optimize.basinhoing最小化函数。以下是我得到的: Out[96]: nfev: 162178 minimization_failures: 2501 fun: 4.4702905615653705 x: array([-194.7754468]) message: ['requested number of
Out[96]:
nfev: 162178
minimization_failures: 2501
fun: 4.4702905615653705
x: array([-194.7754468])
message: ['requested number of basinhopping iterations completed successfully']
njev: 44057
nit: 2500
但是,我很难理解输出。这些返回参数的含义是什么:
- nfev
- 最小化故障
- njev
- 尼特
我猜nfev=函数求值的次数,nit应该对应于“迭代次数”。但是你为什么不呢!=nfev 一些输出记录在:
:功能评估的数量nfev
:雅可比求值次数njev
:算法的迭代次数nit
nit
,远小于功能评估次数nfev
。迭代对应于以下步骤:
- 通过在当前位置周围随机替换来提出新位置
- 最小化函数(使用本地优化器)以找到流域最小值
- 接受或拒绝新的盆地
作为局部最小化程序的一部分,将有许多功能评估,因此我们希望
nfev
比nit
大得多,非常有用!非常感谢您如此详细的答复。