zel*_*ell 2 python optimization scipy
我正在使用 scipy.optimize.basinhopping 来最小化函数。这是我得到的:
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
Run Code Online (Sandbox Code Playgroud)
但是,我很难理解输出。这些返回参数的含义是什么:
非传染性疾病
最小化_失败
涅夫
尼特
我猜 nfev = 函数评估次数,而 nit 应该对应于“迭代次数”。但是为什么 nit != nfev?
一些输出记录在scipy.optimize.OptimizeResult:
nfev : 函数求值次数njev :雅可比评估的数量nit :算法的迭代次数其他选项的文档较少,但您可以随时查看Github 源以了解。minimization_failures指的是局部优化器未能收敛的次数(如果蒙特卡罗步骤为局部优化器提出的起始位置离局部最小值太远,则可能会发生这种情况)。
nit,盆地跳跃算法的迭代次数,预计远小于nfev函数评估的次数。一次迭代对应于以下步骤:
作为局部最小化过程的一部分,将有许多函数评估,因此我们期望nfev比 大得多nit。