问题标签 [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.
python - 主持人对简单的最小化表现不佳
我正在尝试为几种优化算法设置基准。我目前失败的一个是“MCMC Hammer”司仪。我不知道我是否没有正确设置它,或者我的情节是否无法正常工作。目标是最小化一个测试函数,例如 Rosenbrock,并根据函数调用绘制接受的函数值。我不确定,因为性能和最终结果很差,而且情节没有“毛毛虫”的样子。也许有人对司仪有一些经验,可以给我一个提示。提前致谢!
这是一些代码,前半部分是设置和绘图例程,后半部分是实际的司仪:
python - 使用 emcee 和 Gaussian Priors
我正在尝试在使用 emcee 之前使用高斯,但似乎无法完全弄清楚。基本上我想更换
使用可以从具有 mu 和 sigma 的高斯分布中采样“a”的东西。我该怎么做?像这样?
但这似乎不对?
python - 主持人步行者烧毁,但随后保持不变
我在使用 emcee 时遇到问题。它是一个足够简单的 3 参数拟合,但偶尔(尽管使用很多,但仅在两种情况下发生)我的助行器烧得很好,但然后不动(见下图)。报告的接受分数为 0。
以前有没有其他人遇到过这个问题?我尝试改变我的初始条件以及步行者和迭代的数量等。这段代码在非常相似的数据集上运行良好。它不是一个具有挑战性的参数空间,步行者似乎不太可能“卡住”。
有任何想法吗?我被难住了...我的步行者似乎很懒惰...
下面的示例代码(和示例数据文件)。这个代码+数据文件在我运行时失败。
python - 在给定收敛标准的情况下实现主持人提前停止
我emcee.EnsembleSampler
用来抽样一些可能性。我在数百万个不同的数据集上执行此操作,因此性能很重要。
一旦满足自相关时间的某些收敛标准,如果能够让一个链停止采样,那就太好了。
我在文档中或通过我的搜索找不到任何这样做的方法,所以希望有人有一个食谱。
performance - 使用 emcee 的 MCMC 采样在英特尔至强 phi 处理器上运行非常缓慢
因此,对于高斯过程的参数,我有以下 MCMC 代码
代码:
函数是self.lnprob在下面的代码段中定义
代码
该代码在我的笔记本电脑(即英特尔酷睿 i5 第 7 代)上需要 30 秒。theta 数组的大小为 4,Self.Xi 的大小为 2。
在具有 64 个内核的英特尔至强 phi 处理器上,相同的代码需要 400 多秒。
另外,我注意到随着多处理池中池数量的增加,时间似乎也在增加。
有什么理由为什么在英特尔至强 phi 处理器上花费这么多时间?我能做些什么来加快它在英特尔至强 phi 处理器上的速度?
bayesian - 如何使用司仪进行错误传播
我正在使用emcee来分析一些与 SN 1a 相关的数据。在处理真实数据之前,我从模拟数据开始。我得到的结果似乎很好:
现在,我想计算一些量的后验,例如
f(q,j) = j - q^2
使用我为q和j获得的后验。谁能帮我?
python - Python 在 IDLE 中重新启动 shell
我使用的是 MCMC 方法的EMCEE Python 包。当我选择500
台阶和300
步行者时,一切都很好,几个小时后我得到了结果和输出。但是当我在几个小时后将它们更改为更高的步骤(800)
和更高的步行者(400)
时,python 重新启动了 shell,没有任何输出和结果。
我在stackoverflow中阅读了关于这个问题的问题,但我不明白我应该怎么做这个问题。因为对于较低的台阶和步行者,我有答案。
我想知道内存是否有问题?与空闲?或者是什么?
谢谢
python - 在 Python 中传递返回 NaN 的函数的输入
我正在使用EMCEE。我在下面写了从那里出现问题的部分。我遇到了这个错误
ValueError: lnprob returned NaN.
这个错误会中断计算,我不知道如何克服。所以,我应该做一些事情来传递这个错误,以便继续剩下的计算。
我想到的唯一事情是在lnprob
函数中添加一行,例如:
但这是不正确的
代码是:
我感谢您的帮助。
python - 主持人 MCMC 采样未收敛到适当的参数值
我正在尝试emcee
使用预定义的似然函数在 Python 中实现 MCMC 采样,以找到两个数据群之间的最佳边界。
参见emcee
:http ://dfm.io/emcee/current/user/line/
似然函数计算真阳性和真阴性分类,给定一些线性边界线,并用于最小化两个值之间的差异,同时最大化它们的总和。
这样,您可以想象 TP 和 TN 比率分别为 1 将给出似然值 1,而 TP 和 TN 比率为 0 将返回似然值 0。
但是,当我尝试对边界线的m
和b
、梯度和偏移(或偏差)的参数空间进行采样时,我得到了一些非常大和/或非常小的步行值。
我在下面放置了一个示例代码,它生成了一些很好划分的种群,然后围绕参数值的初始猜测生成了 MCMC。我不确定为什么 MCMC 链在这里不能很好地收敛到适当的值,所以任何帮助都将不胜感激。
以下代码应该开箱即用。
初始测试数据,显示给定 xy 数据的明显边界线(由二进制类标签着色):
样本行走,显示梯度参数(顶部)和偏移参数(底部)的奇怪采样。x 轴表示 MCMC 步行步数,y 轴表示给定步的 MCMC 参数值:
python - 如何强制 Python (EMCEE) 在先前定义的范围之间精确移动
我使用 EMCEE Python 包为 MCMC 编写了以下代码
在log_prior
函数中,我定义了 EMCEE 的参数范围在它们之间而不是在它们之外移动。但问题是,在结果中我看到例如od0
具有类似的值,即使0.64
在0.68 < od0 < 0.70
我也有这个问题b
。
我想知道如何强制 EMCEE 恰好在我定义的范围之间。该模型对值非常敏感,我只想在 0.68 < od0 < 0.70
不大于或小于此值之间进行探索。
没有Gaussian prior
代码是: