Markov Network¶

A Markov network is a undirected probabilistic graphical model. It represents a joint distribution over a set of random variables. In pyAgrum, the variables are (for now) only discrete.

A Markov network uses a undirected graph to represent conditional independence in the joint distribution. These conditional independence allow to factorize the joint distribution, thereby allowing to compactly represent very large ones.

$P(X_1,\cdots,X_n)\propto\prod_{i=1}^{n_c} \phi_i(C_i)$

Where the $$\phi_i$$ are potentials over the $$n_c$$ cliques of the undirected graph.

Moreover, inference algorithms can also use this graph to speed up the computations.

Tutorial

Reference