首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解scipy.optimize.basinhopping的输出

理解scipy.optimize.basinhopping的输出
EN

Stack Overflow用户
提问于 2015-01-01 05:25:01
回答 1查看 2.4K关注 0票数 3

我使用scipy.optimize.basinhopping来最小化一个函数。我得到的是:

代码语言:javascript
复制
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
  • minimization_failures
  • njev
  • nit

我猜nfev =函数求值的数目,nit应该对应于‘迭代次数’。但是,为什么是nit!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-01 08:38:06

一些输出记录在scipy.optimize.OptimizeResult中。

  • nfev:功能评估的数量
  • njev:雅可比评价的数量
  • nit:算法的迭代次数

其他选项没有很好的文档记录,但是您可以始终查看Github源来理解。minimization_failures指的是本地优化器无法收敛的次数(如果Monte步骤为本地优化器提议一个离本地最小值太远的起始位置,则可能会发生这种情况)。

nit,即跳盆算法的迭代次数,预计要比nfev函数求值的次数少得多。迭代对应于以下步骤:

  • 在当前位置周围随机替换,提出一个新的位置,
  • 最小化函数(使用局部优化器)以找到盆地最小值,
  • 要么接受,要么拒绝新的盆地。

作为局部最小化过程的一部分,将有许多函数计算,因此我们期望nfevnit大得多。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27728483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档