问题标签 [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 投票
2 回答
223 浏览

python - 解包模拟参数

我做了很多 ODE 模拟,并使用了一些需要作为列表传入参数的 Python 参数优化工具(例如 scipy.optimize.minimize、 emcee )。这使它们非常麻烦,因为我必须将参数称为params[0]params[1]等,而不是更直观的名称,这些名称实际上描述了它们在模拟中的作用。到目前为止,我对此的解决方案是这样的:

这真的很笨拙,并且由于多种原因而不能令人满意。每当我需要向模拟添加新参数时,我都必须修改参数列表并更改我在模拟函数中手动解包列表的方式;浪费一些时间在每一轮模拟中建立新的参考,等等。

我想知道是否有一个理智的、非笨拙的解决方案来定义带有名称的参数,将它们作为列表传递给函数,然后通过列表中的相同名称来引用它们。

0 投票
5 回答
572 浏览

python - 创建单个列表项的列表乘以 n 次

我对 Python 很陌生,认为这应该是一个相当普遍的问题,但找不到解决方案。我已经看过这个页面,发现它对一个项目很有帮助,但我正在努力将示例扩展到多个项目而不使用“for”循环。我正在通过 Emcee 为 250 名步行者运行这段代码,所以我正在寻找可能的最快方式。

我有一个数字列表,a = [x,y,z]我想重复b = [1,2,3]几次(例如),所以我最终得到了一个列表列表:

我拥有的“for”循环是:

这正是我想要的,但这意味着我的代码非常慢。我还尝试天真地将 a 和 b 转换为数组,并[a]*b希望它可以逐个元素地相乘,但没有乐趣。

0 投票
1 回答
2044 浏览

python - 步行者在使用 MCMC 的模型拟合中不“行走”

我在执行模型的 MCMC 分析时遇到困难。我相信这与我在模型中的伽玛函数不完整有关。

我试图最小化高斯对数似然,但看起来步行者被困在他们的井里,而不是试图最小化似然函数。如下图所示,其中 y 轴是模型的参数,x 轴是步数。该图显示了步行者如何不探索参数空间。我添加了另一张图片来演示对参数空间的正确探索是什么样的。

参数空间的错误探索和参数空间正确探索

我在下面添加了一些代码来演示我在做什么,其中 x、y 和 yerr 是大约 4000 个点的数组。该代码适用于其他模型,但仅在此模型上中断,因此它必须是其他模型所固有的。其他模型最明显的变化是增加了不完全伽马函数,否则它的函数形式与其他模型非常相似。

我正在拟合的模型具有以下形式:

注意我使用的是python包emcee(我会发布链接但据说我没有足够的声誉......)。我真的不明白为什么步行者拒绝为这个模型“走路”,而他们为其他模型做。非常感谢任何帮助,但我知道这是合理的利基领域。

0 投票
1 回答
2584 浏览

python - ValueError:操作数无法与形状一起广播 (1,2) (20,100)

我正在使用 emcee mcmc 锤子从 20 个具有随机标准偏差的样本中重建一维高斯。这是我的代码的相关部分:

但我不断收到错误消息“ValueError:操作数无法与形状 (1,2) (20,100) 一起广播。” 这是怎么回事?

0 投票
1 回答
208 浏览

python - 使用 emcee 时函数定义的语法错误

我正在尝试使用 emcee 模块重新创建分发。这是我的代码:

当我定义 lnpop 时,它给了我一个语法错误。任何想法可能是什么问题?我认为这是定义函数的正确方法.....

0 投票
1 回答
3314 浏览

python - 数组的总大小必须不变

我正在使用一个名为 emcee 的 Python 模块来对分发进行采样。我需要将一个 (37,100)(我分别命名为 Ntrig 和 Nsamp)数组events传递给下面的函数。

我不断收到错误:

据我了解,*events会将events数组分解为 37*100 个单独的参数。不应该在我重塑数组的下一行将其放回 37 x 100 数组吗?

PS 在你问我为什么还要费心分解events成单独的参数之前 PS——模块需要这个才能工作,它不能接受一个数组。

完整回溯错误:

0 投票
1 回答
6672 浏览

python - TypeError:“numpy.ndarray”对象不可调用

我不知道是否有人熟悉 Dan Foreman-Mackley 的“emcee”Python 模块,但我正在使用它来对分布进行抽样。我正在使用 Parallel Tempering 采样器,因为我的发行版看起来很时髦。以下是相关代码:

我不断收到“numpy.ndarray”对象不可调用的错误。这是完整的错误:

更新:这里是 lnlike 和 lnprior 函数:

0 投票
1 回答
1454 浏览

python - Closing the multiprocessing after each parallel job

I am using multiprocessing library of python and also emcee which also uses different threads to implement MCMC. The problem is that even when I close the pool still it seems python uses the processors and slows down the cores and I have no idea what is the efficient way to release the cores after the job is done. Could anybody give me an idea of what I should do?
Update: My code has been already posted here.

0 投票
2 回答
1362 浏览

python - 在类内的 emcee 库中使用多处理

我曾尝试使用emcee库在一个类中实现 Monte Carlo Markov Chain,并使多处理模块工作,但在运行这样的测试代码之后:

我收到此错误消息:

我认为这与我在课堂上使用多处理的方式有关,但我不知道如何保持课堂结构的原样,同时也使用多处理??!!

我会很感激任何提示。

PS我不得不提到,如果我threads=10从最后一个函数中删除,代码可以完美运行。

0 投票
1 回答
1171 浏览

python - 在 python 中拟合 monte carlo

我使用一个调用emcee来将函数拟合到某些数据点的 python 包。拟合看起来很棒,但是当我想在每一步绘制每个参数的值时,我得到了这个:

在此处输入图像描述

在他们的示例中(具有不同的功能和数据点),他们得到了:

在此处输入图像描述

为什么我的函数收敛得这么快,为什么一开始的形状那么奇怪。我使用可能性和后验概率应用 MCMC。即使拟合看起来非常好,函数参数的误差也非常小(比实际值小 10^10),我认为这是因为随机游走。知道如何解决吗?这是他们的拟合代码: http: //dan.iel.fm/emcee/current/user/line/我使用了相同的代码,对我的数据点和拟合函数进行了明显的修改。