问题标签 [pymc3]
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.
python - Theano 扫描和重复
在 Theano 中,有一个选项可以使用 repeat 函数T.repeat(A,B)
并提供一对向量,这样 的每个元素A[i]
都是重复的B[i]
次数。
不幸的是,这个操作没有定义梯度(它抛出一个未实现的异常),这是一个问题,因为我试图将它与Pymc3
基于梯度的采样器一起使用。
我想我可以使用scan
函数来解决这个问题,并为两个向量的每个元素递归调用重复,但是我的代码不起作用,可能是因为我调用scan
不正确。谁能帮我理解为什么下面的代码不起作用?
我希望这会返回 [1,1,1,1] 但它会返回以下错误。
我在 Pymc3 github 上提出了一个问题,看看这是否应该更永久地修复,但我认为这是一个很好的机会,可以为我了解更多关于 Theano 的信息,如果我能解决这个问题,也许我可以贡献回到项目。
python - 使用 PyMC3 进行 Softmax 回归(多项 Logistic)
我正在尝试实现逻辑多项式回归(AKA softmax 回归)。在这个例子中,我试图对 iris 数据集进行分类
我在指定模型时遇到问题,我得到一个优化错误find_MAP()
。如果我避免使用find_MAP()
,如果我使用 aCategorical
作为可能性,我会得到一个所有零向量的“样本”,或者如果我使用 ,则后验与先验完全相同Mutinomial(n=1, p=p)
。
python - PyMC3 多元混合模型:将组件约束为非空
我正在实施多元高斯回归的个性化混合,pymc3
并遇到了空组件的问题。在参考了相关的 PyMC3 混合模型示例之后,我尝试使用单变量法线来实现模型,但我也遇到了一些问题。
我尝试了几种策略来限制每个组件为非空,但每个都失败了。这些显示在下面的代码中。我的具体问题是:在使用 的多元高斯混合中,将所有组件限制为非空的最佳方法是什么pymc3
?
请注意,下面代码中的尝试 #1 来自PyMC3 示例中的混合模型,在这里不起作用。
您可以使用此 gist 中的函数复制我正在使用的合成数据。
前两种方法无法确保非空集群;尝试采样会导致LinAlgError
:
...这表明组件是空的,因为精度矩阵有 shape (0, 0)
。
第三种方法实际上解决了空组件问题,但给出了非常奇怪的推理行为。我根据跟踪图选择了老化,每 10 个样本进行稀释。样本仍然是高度自相关的,但比没有细化的要好得多。此时,我对样本中的 Z 值求和,这就是我得到的结果:
因此,出于某种原因,所有用户都被分配到每个样本的最后一个集群。
pymc - 如何在 pymc3 中使用 StudentT 分布?
我不确定这算作问题还是错误报告。我在这里发布了一个 GitHub 要点:https ://gist.github.com/jbwhit/a9012e04b0f48e582c22
我发现这个问题(pymc3:具有多个观察变量的层次模型)是我自己的层次模型的一个很好的起点,但是当我试图以任何实质性的方式修改它时遇到了困难。
首先,有效的模型和设置:
以上所有工作都按预期工作(并且痕迹看起来不错)。下一段代码进行了一次更改(将 T 分布替换为正态分布):
以下是输出:
关于如何让它工作的任何建议?
python - 将 pymc2 代码移植到 pymc3:自定义似然函数
我正在尝试实施 Lee&Wagenmakers 的书(第 5.5 章,第 70 页)中的审查数据示例。在 pymc2 中,我有以下模型:
这涉及到装饰者@pymc.observed
。
我想我需要用 来表达可能性pm.DensityDist
,但是,我不知道该怎么做。
python - pymc3 中的贝叶斯因子
我有兴趣计算贝叶斯因子来比较 PyMC 3 中的两个模型。根据这个网站,在 PyMC 2 中,该过程似乎相对简单:包括一个伯努利随机变量和一个自定义似然函数,它返回第一个模型的似然性当 Bernoulli 变量的值为 0 时,第二个模型的似然值是 1 时。然而,在 PyMC 3 中,事情变得更加复杂,因为随机节点需要是 Theano 变量。
我的两个似然函数是二项式,所以我想我需要重写这个类:
关于从哪里开始的任何建议?
python - PyMC3 高斯混合模型
我一直在关注 PyMC3 的高斯混合模型示例:https ://github.com/pymc-devs/pymc3/blob/master/pymc3/examples/gaussian_mixture_model.ipynb 并让它与人工数据集很好地配合使用。
我已经用真实的数据集进行了尝试,我正在努力让它给出合理的结果:
关于我应该缩小/扩大/改变哪些参数以获得更好的拟合的任何想法?痕迹似乎很稳定。这是我从示例中调整的模型片段:
python - 如何在pymc3中为离散值绘制拟合结果?
我对 pymc3 完全陌生,所以请原谅这可能是微不足道的。我有一个非常简单的模型,我在其中预测二元响应函数。该模型几乎是此示例的逐字复制:https ://github.com/pymc-devs/pymc3/blob/master/pymc3/examples/gelman_bioassay.py
我取回了模型参数(alpha、beta 和 theta),但我似乎无法弄清楚如何将模型的预测与输入数据重叠。我试过这样做(使用生物测定模型的说法):
然后绘制剂量与 pred_death 的关系,但这显然是不正确的,因为我每次都得到不同的二项分布图。
与此相关的是另一个问题,我如何评估拟合优度?在“入门” pymc3 教程中,我似乎找不到任何效果。
非常感谢您的任何建议!