gpt4 book ai didi

python - 使用 PyMC3 进行增量模型更新

转载 作者:太空狗 更新时间:2023-10-29 22:18:11 28 4
gpt4 key购买 nike

是否可以在 pyMC3 中增量更新模型。我目前找不到这方面的信息。所有文档始终使用先验已知数据。

但在我看来,贝叶斯模型还意味着能够更新信念。这在 pyMC3 中可能吗?我在哪里可以找到这方面的信息?

谢谢你:)

最佳答案

按照@ChrisFonnesbeck 的建议,我写了一个关于增量先验更新的小教程笔记本。它可以在这里找到:

https://github.com/pymc-devs/pymc3/blob/master/docs/source/notebooks/updating_priors.ipynb

基本上,您需要将后验样本包装在一个自定义的 Continuous 类中,该类根据它们计算 KDE。以下代码就是这样做的:

def from_posterior(param, samples):

class FromPosterior(Continuous):

def __init__(self, *args, **kwargs):
self.logp = logp
super(FromPosterior, self).__init__(*args, **kwargs)

smin, smax = np.min(samples), np.max(samples)
x = np.linspace(smin, smax, 100)
y = stats.gaussian_kde(samples)(x)
y0 = np.min(y) / 10 # what was never sampled should have a small probability but not 0

@as_op(itypes=[tt.dscalar], otypes=[tt.dscalar])
def logp(value):
# Interpolates from observed values
return np.array(np.log(np.interp(value, x, y, left=y0, right=y0)))

return FromPosterior(param, testval=np.median(samples))

然后您通过调用带有参数名称的from_posterior 函数和前一次迭代后验的跟踪样本来定义模型参数的先验(例如alpha) :

alpha = from_posterior('alpha', trace['alpha'])

关于python - 使用 PyMC3 进行增量模型更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870840/

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