6

如何使用 pymc 参数化概率图形模型?

假设我有一个带有两个节点的 PGMXY. 可以说X->Y是图表。

X取两个值{0,1}Y也取两个值{0,1}

我想使用 pymc 来学习分布的参数并用它填充图形模型以运行推理。

我能想到的方法如下:

X_p = pm.Uniform("X_p", 0, 1)
X = pm.Bernoulli("X", X_p, values=X_Vals, observed=True)
Y0_p = pm.Uniform("Y0_p", 0, 1)
Y0 = pm.Bernoulli("Y0", Y0_p, values=Y0Vals, observed=True)
Y1_p = pm.Uniform("Y1_p", 0, 1)
Y1 = pm.Bernoulli("Y1", Y1_p, values=Y1Vals, observed=True)

这里Y0ValsY对应于Xvalues = 0Y1Vals的值并且是Y对应于Xvalues = 1 的值。

计划是从中抽取 MCMC 样本,并使用Y0_p和的方法Y1_p 填充离散贝叶斯网络的概率......所以概率表为P(X) = (X_p,1-X_p)while 的P(Y/X)

  Y  0       1
X 
0   Y0_p   1-Y0_p
1   Y1_p   1-Y1_p

问题:

  1. 这是这样做的正确方法吗?
  2. 这不会变得笨拙,特别是如果我有X100 个离散值?或者如果一个变量有两个父级X并且Y每个有 10 个离散值?
  3. 有什么更好的我可以做的吗?
  4. 有没有什么好书详细说明我们如何进行这种互连。
4

0 回答 0