我正在寻找 Python 2.7 上的 miniuit 等价物,我发现了这两个变体:
PyMinuit
iMinuit

我的问题是:它们之间有什么区别?

两者都使用 Seal 1.7.9 Minuit,并且在一些 2D 高斯拟合测试中,我都给出了相同的答案。那么,除了安装方法(iMinuit 更简单)之外,我为什么要选择一种?

谢谢你的帮助! xD

附言我也尝试标记 iminuit 但我无法创建新标记... =/

最佳答案

免责声明:我写了 iminuit。让我给你讲一点历史。

我是 PyMinuit 的骄傲用户。我喜欢它,他想出的语法非常棒。但是,我最终发现我无法真正以编程方式(并且有效地)构建成本函数。例如,如果你想制作一个通用的 chi^2 仿函数,它以数据和 n 参数的 pdf 作为参数并吐出 n-1 参数的 chi^2 函数,则(几乎)不可能做到PyMinuit。

因此,我尝试修改 PyMinuit 以添加该确切功能并修改一些打印输出。我发现 PyMinuit 代码是用 C 语言编写的,修改起来很麻烦。所以,我用cython重写了它。

您会在 iminuit 中发现的夫妇加法:

  • Better integration 与 IPython 笔记本。它将结果打印在一个漂亮的表格中,并且可以免费为您绘制一些图表。
  • Function signature extraction 比 PyMinuit
  • 宽容得多
  • Long parameter name 。并不是真正的PyMinuit Bug,但是Minuit 1.7.x中有一个Bug,其中名称长度是硬编码的。
  • One side limit 我不确定,但我认为 PyMinuit 不会这样做
  • Progress 打印输出有点不同,但这是一个品味问题。我的灵感来自 ROOT,IMO 更有意义。
  • probfit 集成。还记得我提到过获取数据和 pdf 并吐出 chi^2 函数以进行最小化的函数吗?见 tutorial
  • 关于python - PyMinuit 与 IMinuit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18646312/

    10-12 16:53