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
- Undirected Graphical Model
MarkovNet
MarkovNet.add()
MarkovNet.addFactor()
MarkovNet.addStructureListener()
MarkovNet.addVariables()
MarkovNet.beginTopologyTransformation()
MarkovNet.changeVariableLabel()
MarkovNet.changeVariableName()
MarkovNet.clear()
MarkovNet.completeInstantiation()
MarkovNet.connectedComponents()
MarkovNet.dim()
MarkovNet.edges()
MarkovNet.empty()
MarkovNet.endTopologyTransformation()
MarkovNet.erase()
MarkovNet.eraseFactor()
MarkovNet.exists()
MarkovNet.existsEdge()
MarkovNet.factor()
MarkovNet.factors()
MarkovNet.fastPrototype()
MarkovNet.fromBN()
MarkovNet.generateFactor()
MarkovNet.generateFactors()
MarkovNet.graph()
MarkovNet.hasSameStructure()
MarkovNet.idFromName()
MarkovNet.ids()
MarkovNet.isIndependent()
MarkovNet.loadUAI()
MarkovNet.log10DomainSize()
MarkovNet.maxNonOneParam()
MarkovNet.maxParam()
MarkovNet.maxVarDomainSize()
MarkovNet.minNonZeroParam()
MarkovNet.minParam()
MarkovNet.minimalCondSet()
MarkovNet.names()
MarkovNet.neighbours()
MarkovNet.nodeId()
MarkovNet.nodes()
MarkovNet.nodeset()
MarkovNet.saveUAI()
MarkovNet.size()
MarkovNet.sizeEdges()
MarkovNet.smallestFactorFromNode()
MarkovNet.thisown
MarkovNet.toDot()
MarkovNet.toDotAsFactorGraph()
MarkovNet.variable()
MarkovNet.variableFromName()
MarkovNet.variableNodeMap()
- Inference in Markov Networks