如何使用pymc参数化概率图形模型?
假设我有一个包含两个节点X
和Y
的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_p
和Y1_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
问题:
X
有100个离散值吗?
或者,如果变量有两个父项X
和Y
,每个父项有10个离散值?