栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用PyMC3进行增量模型更新

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用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))

然后,

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

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号