问题标签 [iminuit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
33 浏览

python - 使用多处理将特殊对象附加到来自不同进程的相同列表

我正在尝试使用 python 多处理并行化任务,但结果是当我需要将对象附加到列表时(具体来说是来自 iminuit 库的一个 minuit 对象),它会给出错误“......无法转换为 Python酸洗对象”。我在这里展示了一个通常可以工作但不适用于这些对象的代码。

阅读多处理的文档我没有找到正确的方法。提前致谢。

pd:在非并行的情况下,很容易制作一个列表并附加这些对象,所以我不明白为什么通常你可以附加它但它在这里不起作用。

0 投票
0 回答
130 浏览

memory-leaks - 调查使用 TMinuit ROOT 和 valgrind 时的内存泄漏

我在循环中使用 TMinuit 来扫描一些上限图,但我遇到了内存问题。唯一在循环中创建的是使用“TMinuit * minuit = new TMinuit(n_params);”的 TMinuit 对象。在循环结束时使用“delete minuit”将其删除。我使用了 valgrind,它说了一些关于 Minuit 的内容(这里只是一个片段),但老实说,我不明白那个输出。我的猜测是,“删除minuit”可以释放内存。显然,这还不是全部.. 一些建议?:-)

Valgrind 输出在这里:

0 投票
1 回答
80 浏览

minimization - 限制负对数似然最小化的参数

我正在尝试拟合一个 5 参数(a、b、c、d、e)模型,其中一个参数受另一个参数的约束,比方说,

0< d < 1

e < |d|

我目前正在使用zfit,据我所知,使用iMinuit

我只创建zfit.Parameters并设置了限制,以便它们可以访问的范围是有效的,再一次,让我们说:

d = zfit.Parameter('d', value=0.5, lower_limit=0.3, upper_limit=1.0, step_size=0.01)

e = zfit.Parameter('e', value=0.1, lower_limit=0.0, upper_limit=0.3, step_size=0.01)

到目前为止它一直运作良好,但我认为这不是正确的方法。

所以我的问题是,处理这种约束的正确方法是什么?

干杯

0 投票
1 回答
30 浏览

python - 使用 iminuit 时,python 程序具有相同输入的不同输出:未定义的行为?

我遇到了 iminuit 无法收敛于简单线性模型的这种奇怪的错误。然而,真正的问题是,如果我取消注释“#bins = np.linspace(0,4,25)”这行,程序的结果是不同的,它可以收敛。

如果“相同的输入”不产生“相同的输出”,则意味着存在未定义的行为或分段错误。有任何想法吗?

输出: 输出

测试输入

test.feather.zip

0 投票
0 回答
369 浏览

python - 用 iminuit 指定(多)参数限制

我尝试使用带有示例代码的iminuit设置参数限制:

我得到的是错误信息

这很奇怪,因为文档显示以这种方式包含限制。

我对具有 6 个或更多参数的更复杂函数的最小化特别感兴趣,指定其中 2 个参数的空间很重要。

0 投票
0 回答
44 浏览

python - 可能性适合使用 scipy.stats 和 iminuit

我需要用似然法拟合一些实验数据,并生成一些随机数据来检查该技术。我对(v 2.7.0)有一些经验,iminuit看起来scipy.stats有许多应该有用的现有发行版,提供 pdf/cds 和随机变量(我使用 scipy 1.5.2)。通常,我需要现有分布的组合,例如平坦分布、指数分布和三个高斯分布,全部截断。到目前为止,我正在做的是:

  • 创建truncFEGGG_gen,一个子类scipy.stats.rv_continuous(有 13 个参数,包括边缘,因为我觉得locscale混乱),覆盖_argcheck, _get_support, _pdf,_cdf_rvs, 和truncFEGGG = truncFEGGG_gen

  • 然后我定义我的开始参数:数据pars = {'nu': 6758, 'a': 0.1, 'b': 3.6, 'c': -87.5, ...}中的总计数在哪里nu,其他参数是 cdf 的那些

  • 我定义了iminuit扩展分箱似然拟合的实例,并将分布的累积计数传递给它:

这最后一步是目前给我带来麻烦的一步;因为我需要使用几种不同的模型,所以我lambda每次都需要编写一个不同的函数(一个容易出错的过程),如果我可以scipy.stats一劳永逸地将累积计数添加到所有分布中,那就容易多了通过该功能:truncFEGGG.cntsCumul(x, nu, a, b, c, d...). 这似乎不可行(向 scipy.stats.rv_continuous 添加方法,rv_frozen 存在问题),所以我想知道其他人将如何解决这个问题。有什么建议么?

  • 之后,我运行最小化器,使用开始参数,迭代直到事情收敛
0 投票
2 回答
68 浏览

pandas - 在我的数据中没有零的情况下遇到 true_divide 错误除以零

这是我的代码,这是我的数据,这是代码的输出。我尝试在 x 轴上添加一个值,认为也许值这么少可以解释为零。我不知道 true_divide 可能是什么,我无法解释这个除以零错误,因为我的数据中没有一个零,检查了我所有的 2500 个数据点。希望你们中的一些人可以提供一些澄清。提前致谢。

输入

输出和数据示例

0 投票
0 回答
29 浏览

python - 使用 iminuit 从直方图 PDF 中最小化

我正在尝试使用由直方图制作的 PDF 将 iminuit 用于 UnbinnedNLL(对于说 ROOT 的人,我正在尝试做与 RooHistPDF 等效的事情)。到目前为止,我想出了这个:

但是,我得到了糟糕的结果。根据我得到的起始值INVALID MinimumABOVE EDM threshold (goal x 10)/或非常接近起始数字的值。然而,收敛并不难,我的愚蠢循环检查最小化 NLL 的数字,我很快就得到了正确的值(4.458,离 4.3 不远)。

我不明白我做错了什么,理论上migrad应该给我与我的愚蠢循环相同的结果......我是否以错误的方式使用它?我也尝试了UnbinnedNLLLeastSquares成本函数(使用 PDF 而不是 CDF),但同样的问题。

谢谢!

0 投票
0 回答
36 浏览

python - Python:在 iminuit 中初始化参数的方法

在 iminuit 中设置初始参数、错误和步长的正确方法是什么?在 PyRoot 中编写时,我使用来自 ROOT 框架的 mnparm 设置了限制,它是这样的:

以及我不在这里写的其他命令。我想在没有 ROOT 命令的情况下编写程序,但是在 iminuit 的引用中我找不到像 mnparm 这样的类似命令。我应该以字典形式编写初始参数吗?我想知道 minuit 如何获取参数和步长以便我正确编写它们。