Pymc MAP - 如何提取最终值?

时间:2016-12-15 22:28:45

标签: python pymc

我有一个非常适合pymc.MAP的模型:

M = pymc.MAP(model)
M.fit(iterlim=1000)

其中model是一个包含许多pymc对象的大型列表,在MCMC采样器中可以正常工作。但是,我的问题是,当我尝试拟合上面的MAP时,我不知道如何提取结果。该模型非常大,所以我不会发布整个文件,但例如,它肯定包含:

arctanA = np.empty(numbins, dtype=object)
C = np.empty(numbins, dtype=object)
for i in range(numbins):
    arctanA[i] = pymc.Uniform('arctanA_%i' %i, -math.pi/2, math.pi/2)
    C[i] = pymc.Uniform('C_%i' %i, 0, 2)

但是,当我尝试使用M.C.valueM.C_0.value提取上述值时,它会给我一个AttributeError: 'MAP' object has no attribute 'C_0',依此类推。那么我在这里做错了什么?我需要一些特殊的方法来定义对象以便以后提取它们吗?

1 个答案:

答案 0 :(得分:0)

最佳值位于您指定的变量集合的元素中。例如,尝试C[0].value