问题标签 [emcee]

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 回答
171 浏览

python - 主持人对简单的最小化表现不佳

我正在尝试为几种优化算法设置基准。我目前失败的一个是“MCMC Hammer”司仪。我不知道我是否没有正确设置它,或者我的情节是否无法正常工作。目标是最小化一个测试函数,例如 Rosenbrock,并根据函数调用绘制接受的函数值。我不确定,因为性能和最终结果很差,而且情节没有“毛毛虫”的样子。也许有人对司仪有一些经验,可以给我一个提示。提前致谢!

这是一些代码,前半部分是设置和绘图例程,后半部分是实际的司仪:

0 投票
2 回答
3304 浏览

python - 使用 emcee 和 Gaussian Priors

我正在尝试在使用 emcee 之前使用高斯,但似乎无法完全弄清楚。基本上我想更换

使用可以从具有 mu 和 sigma 的高斯分布中采样“a”的东西。我该怎么做?像这样?

但这似乎不对?

0 投票
1 回答
1433 浏览

python - 主持人步行者烧毁,但随后保持不变

我在使用 emcee 时遇到问题。它是一个足够简单的 3 参数拟合,但偶尔(尽管使用很多,但仅在两种情况下发生)我的助行器烧得很好,但然后不动(见下图)。报告的接受分数为 0。

以前有没有其他人遇到过这个问题?我尝试改变我的初始条件以及步行者和迭代的数量等。这段代码在非常相似的数据集上运行良好。它不是一个具有挑战性的参数空间,步行者似乎不太可能“卡住”。

有任何想法吗?我被难住了...我的步行者似乎很懒惰...

在此处输入图像描述

下面的示例代码(和示例数据文件)。这个代码+数据文件在我运行时失败。

0 投票
1 回答
622 浏览

python - 在给定收敛标准的情况下实现主持人提前停止

emcee.EnsembleSampler用来抽样一些可能性。我在数百万个不同的数据集上执行此操作,因此性能很重要。

一旦满足自相关时间的某些收敛标准,如果能够让一个链停止采样,那就太好了。

我在文档中或通过我的搜索找不到任何这样做的方法,所以希望有人有一个食谱。

0 投票
0 回答
373 浏览

performance - 使用 emcee 的 MCMC 采样在英特尔至强 phi 处理器上运行非常缓慢

因此,对于高斯过程的参数,我有以下 MCMC 代码

代码:

函数是self.lnprob在下面的代码段中定义

代码

该代码在我的笔记本电脑(即英特尔酷睿 i5 第 7 代)上需要 30 秒。theta 数组的大小为 4,Self.Xi 的大小为 2。

在具有 64 个内核的英特尔至强 phi 处理器上,相同的代码需要 400 多秒。

另外,我注意到随着多处理池中池数量的增加,时间似乎也在增加。

有什么理由为什么在英特尔至强 phi 处理器上花费这么多时间?我能做些什么来加快它在英特尔至强 phi 处理器上的速度?

0 投票
2 回答
190 浏览

bayesian - 如何使用司仪进行错误传播

我正在使用emcee来分析一些与 SN 1a 相关的数据。在处理真实数据之前,我从模拟数据开始。我得到的结果似乎很好:

角图

现在,我想计算一些量的后验,例如

f(q,j) = j - q^2

使用我为qj获得的后验。谁能帮我?

0 投票
1 回答
50 浏览

python - Python 在 IDLE 中重新启动 shell

我使用的是 MCMC 方法的EMCEE Python 包。当我选择500台阶和300步行者时,一切都很好,几个小时后我得到了结果和输出。但是当我在几个小时后将它们更改为更高的步骤(800)和更高的步行者(400)时,python 重新启动了 shell,没有任何输出和结果。

我在stackoverflow中阅读了关于这个问题的问题,但我不明白我应该怎么做这个问题。因为对于较低的台阶和步行者,我有答案。

我想知道内存是否有问题?与空闲?或者是什么?

谢谢

0 投票
1 回答
1925 浏览

python - 在 Python 中传递返回 NaN 的函数的输入

我正在使用EMCEE。我在下面写了从那里出现问题的部分。我遇到了这个错误 ValueError: lnprob returned NaN.

这个错误会中断计算,我不知道如何克服。所以,我应该做一些事情来传递这个错误,以便继续剩下的计算。

我想到的唯一事情是在lnprob函数中添加一行,例如:

但这是不正确的

代码是:

我感谢您的帮助。

0 投票
0 回答
581 浏览

python - 主持人 MCMC 采样未收敛到适当的参数值

我正在尝试emcee使用预定义的似然函数在 Python 中实现 MCMC 采样,以找到两个数据群之间的最佳边界。

参见emceehttp ://dfm.io/emcee/current/user/line/

似然函数计算真阳性和真阴性分类,给定一些线性边界线,并用于最小化两个值之间的差异,同时最大化它们的总和。

这样,您可以想象 TP 和 TN 比率分别为 1 将给出似然值 1,而 TP 和 TN 比率为 0 将返回似然值 0。

但是,当我尝试对边界线的mb、梯度和偏移(或偏差)的参数空间进行采样时,我得到了一些非常大和/或非常小的步行值。

我在下面放置了一个示例代码,它生成了一些很好划分的种群,然后围绕参数值的初始猜测生成了 MCMC。我不确定为什么 MCMC 链在这里不能很好地收敛到适当的值,所以任何帮助都将不胜感激。

以下代码应该开箱即用。

初始测试数据,显示给定 xy 数据的明显边界线(由二进制类标签着色):

在此处输入图像描述

样本行走,显示梯度参数(顶部)和偏移参数(底部)的奇怪采样。x 轴表示 MCMC 步行步数,y 轴表示给定步的 MCMC 参数值:

在此处输入图像描述

0 投票
2 回答
298 浏览

python - 如何强制 Python (EMCEE) 在先前定义的范围之间精确移动

我使用 EMCEE Python 包为 MCMC 编写了以下代码

log_prior函数中,我定义了 EMCEE 的参数范围在它们之间而不是在它们之外移动。但问题是,在结果中我看到例如od0具有类似的值,即使0.640.68 < od0 < 0.70我也有这个问题b

我想知道如何强制 EMCEE 恰好在我定义的范围之间。该模型对值非常敏感,我只想在 0.68 < od0 < 0.70不大于或小于此值之间进行探索。

没有Gaussian prior代码是: