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

时间:2016-06-06 13:18:04

标签: pymc bayesian-networks pymc3

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

假设我有一个包含两个节点XY的PGM。 让我们说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)

此处Y0Vals是与Y值= 0对应的X的值 Y1Vals是与Y值= 1对应的X值。

计划是从这些样本中提取MCMC样本并使用Y0_pY1_p的方法 填充离散贝叶斯网络的概率......所以概率表 对于P(X) = (X_p,1-X_p)P(Y/X)

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

问题:

  1. 这是正确的做法吗?
  2. 这不是很笨拙,特别是如果X有100个离散值吗? 或者,如果变量有两个父项XY,每个父项有10个离散值?
  3. 我能做些什么更好的事吗?
  4. 是否有任何好书详述了我们如何进行这种互连。

0 个答案:

没有答案