pgmpy:在不知道边际的情况下如何进行边际化?

时间:2020-04-29 14:10:50

标签: probability pgmpy

在pgmpy中,我们可以定义条件分布:

cpd_G = TabularCPD(variable='G', variable_card=2, values=[[0.5, 0.8, 0.75, 0.45],
                                                          [0.5, 0.2, 0.25, 0.55]],
               evidence=['I', 'D'], evidence_card=[2, 2])

然后在证据变量(例如D)上边缘化:

print(cpd_G.marginalize(variables=['D'], inplace=False))
+------+------+------+
| I    | I(0) | I(1) |
+------+------+------+
| G(0) | 0.65 | 0.6  |
+------+------+------+
| G(1) | 0.35 | 0.4  |
+------+------+------+

这是无效的。执行此边缘化的唯一方法是知道边缘概率p(D | I)。然后

p(G | I)=积分_over_D(P(G | D,I)* p(D | I)

在我们的案例中,我们尚未定义p(D | I),但该包装似乎认为p(D = 0 | I)= 0.5,p(D = 1 | I)= 0.5

有什么我想念的吗?

0 个答案:

没有答案