老师能提个意见不,code 可以加注释吗!
这段代码我看不懂,实在是不知道在做什么。。。
model = MarkovModel([('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'A')])
model.add_factors(phi_1, phi_2, phi_3, phi_4)
phi = phi_1 * phi_2 * phi_3 * phi_4
Z = model.get_partition_function()
normalized = phi.values / Z
print(normalized)
展开
作者回复: 因为使用的编辑器不支持中文注释,索性就没有添加了。
这段代码的内容是建立马尔可夫网的模型,并定义网络节点之间的依赖关系,比如AB两个变量之间存在关联,它们之间的因子函数被定义为phi_1。整个网络的因子函数就是每个单独因子的乘积。
因子函数不满足归一化的条件,所以要把它改写成概率的形式,就必须进行额外的归一化,后面两行就是归一化的过程。
至于代码中具体函数的用法,可以参考pgmpy的文档,里面也有说明。