gpt4 book ai didi

bayesian - pymc MAP警告: Stochastic tau's value is neither numerical nor array with floating-point dtype.推荐拟合方法fmin(默认)

转载 作者:行者123 更新时间:2023-12-02 09:04:00 25 4
gpt4 key购买 nike

我在这里看过类似的问题

pymc warning: value is neither numerical nor array with floating-point dtype

但没有答案,有人可以告诉我我是否应该忽略此警告或该怎么做?

模型有一个随机变量(除其他外)tau,它是DiscreteUniform

以下是该模型的相关代码:

tau = pm.DiscreteUniform("tau", lower = 0, upper = n_count_data)
lambda_1 = pm.Exponential("lambda_1", alpha)
lambda_2 = pm.Exponential("lambda_2", alpha)
print "Initial values: ", tau.value, lambda_1.value, lambda_2.value

@pm.deterministic
def lambda_(tau = tau, lambda_1 = lambda_1, lambda_2 = lambda_2):
out = np.zeros(n_count_data)
out[:tau] = lambda_1
out[tau:] = lambda_2
return out

observation = pm.Poisson("obs", lambda_, value = count_data, observed = True)
model = pm.Model([observation, lambda_1, lambda_2, tau]);
m = pm.MAP(model) # **This line caueses error**
print "Output after using MAP: ", tau.value, lambda_1.value, lambda_2.value

最佳答案

pymc 文档显示“MAP can only handle variables whose dtype is float”。您的 tau 来自离散分布,因此它应该具有类似 int 的数据类型。如果您调用 fit 方法来估计参数的最大后验值,tau 将被假定为 float 。如果这有意义,那么是否可以忽略此警告取决于当前的问题。如果您的可能性表现良好,您最终可能会得到一个浮点值 tau,该值接近您实际想要估计的整数值。但是,如果您想象一种情况,所有非整数值的可能性均为 0,则像 fmin 这样的梯度方法将不起作用,并且您的最大后验值也不会产生任何意义。在这种情况下,您必须找到一种不同的方法来计算最大后验值(同样,取决于当前的问题)。

关于bayesian - pymc MAP警告: Stochastic tau's value is neither numerical nor array with floating-point dtype.推荐拟合方法fmin(默认),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24442242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com