Undirected Graphical Model
- class pyAgrum.MarkovRandomField(*args)
MarkovRandomField represents a Markov random field.
- MarkovRandomField(name=’’) -> MarkovRandomField
- Parameters:
name (str) – the name of the Bayes Net
- MarkovRandomField(source) -> MarkovRandomField
- Parameters:
source (pyAgrum.MarkovRandomField) – the Markov random field to copy
- add(*args)
Add a variable to the pyAgrum.MarkovRandomField.
- Parameters:
variable (pyAgrum.DiscreteVariable) – the variable added
name (str) – the variable name
nbrmod (int) – the number of modalities for the new variable
id (int) – the variable forced id in the pyAgrum.MarkovRandomField
- Returns:
the id of the new node
- Return type:
int
- Raises:
pyAgrum.DuplicateLabel – If variable.name() is already used in this pyAgrum.MarkovRandomField.
pyAgrum.OperationNotAllowed – If nbrmod is less than 2
pyAgrum.DuplicateElement – If id is already used.
- addFactor(*args)
Add a factor from a list or a set of id or str. If the argument is a set, the order is the order of the IDs of the variables
- Parameters:
seq (sequence (list or set) of int or string) – The sequence (ordered or not) of node id or names
- Return type:
- addStructureListener(whenNodeAdded=None, whenNodeDeleted=None, whenEdgeAdded=None, whenedgeDeleted=None)
Add the listeners in parameters to the list of existing ones.
- Parameters:
whenNodeAdded (lambda expression) – a function for when a node is added
whenNodeDeleted (lambda expression) – a function for when a node is removed
whenEdgeAdded (lambda expression) – a function for when an edge is added
whenEdgeDeleted (lambda expression) – a function for when an edge is removed
- addVariables(listFastVariables, default_nbr_mod=2)
Add a list of variable in the form of ‘fast’ syntax.
- Parameters:
listFastVariables (List[str]) – the list of variables in ‘fast’ syntax.
default_nbr_mod (int) – the number of modalities for the variable if not specified following fast syntax. Note that default_nbr_mod=1 is mandatory to create variables with only one modality (for utility for instance).
- Returns:
the list of created ids.
- Return type:
List[int]
- adjacencyMatrix()
adjacency matrix from a graph/graphical models
Compute the adjacency matrix of a pyAgrum’s graph or graphical models (more generally an object that has nodes, children/parents or neighbours methods)
- Returns:
adjacency matrix (as numpy.ndarray) with nodeId as key.
- Return type:
numpy.ndarray
- beginTopologyTransformation()
- Return type:
None
- changeVariableLabel(*args)
change the label of the variable associated to nodeId to the new value.
- Parameters:
var (Union[int,str]) – a variable’s id (int) or name
old_label (str) – the old label
new_label (str) – the new label
- Raises:
pyAgrum.NotFound – if id/name is not a variable or if old_label does not exist.
- Return type:
None
- changeVariableName(*args)
Changes a variable’s name in the pyAgrum.MarkovRandomField.
This will change the “pyAgrum.DiscreteVariable” names in the pyAgrum.MarkovRandomField.
- Parameters:
car (Union[int,str]) – a variable’s id (int) or name
new_name (str) – the new name of the variable
- Raises:
pyAgrum.DuplicateLabel – If new_name is already used in this MarkovRandomField.
pyAgrum.NotFound – If no variable matches id.
- Return type:
None
- clear()
Clear the whole MarkovRandomField
- Return type:
None
- completeInstantiation()
Give an instantiation over all the variables of the model
- Returns:
a complete Instantiation for the model
- Return type:
- connectedComponents()
connected components from a graph/graphical models
Compute the connected components of a pyAgrum’s graph or graphical models (more generally an object that has nodes, children/parents or neighbours methods)
The firstly visited node for each component is called a ‘root’ and is used as a key for the component. This root has been arbitrarily chosen during the algorithm.
- Returns:
dict of connected components (as set of nodeIds (int)) with a nodeId (root) of each component as key.
- Return type:
dict(int,Set[int])
- dim()
- Return type:
int
- edges()
- Return type:
object
- empty()
Check if there are some variables in the model.
- Returns:
True if there is no variable in the model.
- Return type:
bool
- endTopologyTransformation()
Terminates a sequence of insertions/deletions of arcs by adjusting all CPTs dimensions. End Multiple Change for all CPTs.
- Return type:
- erase(*args)
Remove a variable from the pyAgrum.MarkovRandomField.
Removes the corresponding variable from the pyAgrum.MarkovRandomField and from all of it’s children pyAgrum.Potential.
If no variable matches the given id, then nothing is done.
- Parameters:
var (Union[int,str,pyAgrum.DiscreteVariable]) – a variable’s id (int) or name of variable or a reference of this variable to remove.
- Return type:
None
- eraseFactor(*args)
- Return type:
None
- exists(*args)
Check if a node with this name or id exists
- Parameters:
norid (str|int) – name or id of the searched node
- Returns:
True if there is a node with such a name or id
- Return type:
bool
- existsEdge(*args)
- Return type:
bool
- factor(*args)
Returns the factor of a set of variables (if existing).
- Parameters:
vars (Union[Set[int],Set[str]]) – A set of ids or names of variable the pyAgrum.MarkovRandomField.
- Returns:
The factor of the set of nodes.
- Return type:
- Raises:
pyAgrum.NotFound – If no variable’s id matches varId.
- factors()
- Return type:
List
[Set
[int
]]
- family(*args)
- Return type:
List
[int
]
- static fastPrototype(*args)
- Create a Markov random field with a modified dot-like syntax which specifies:
the structure
a-b-c;b-d-e;
. The substringa-b-c
indicates a factor with the scope (a,b,c).the type of the variables with different syntax (cf documentation).
Examples
>>> import pyAgrum as gum >>> bn=pyAgrum.MarkovRandomField.fastPrototype('A--B[1,3]-C{yes|No}--D[2,4]--E[1,2.5,3.9]',6)
- Parameters:
dotlike (str) – the string containing the specification
domainSize (int or str) – the default domain size or the default domain for variables
- Returns:
the resulting Markov random field
- Return type:
- generateFactor(vars)
Randomly generate factor parameters for a given factor in a given structure.
- Parameters:
node (Union[int,str]) – a variable’s id (int) or name
vars (
List
[int
])
- Return type:
None
- generateFactors()
Randomly generates factors parameters for a given structure.
- Return type:
None
- hasSameStructure(other)
- idFromName(name)
- Parameters:
name (
str
)- Return type:
int
- ids(names)
List of ids for a list of names of variables in the model
- Parameters:
lov (List[str]) – List of variable names
names (
List
[str
])
- Returns:
The ids for the list of names of the graph variables
- Return type:
List[int]
- isIndependent(*args)
check if nodes X and nodes Y are independent given nodes Z
- Parameters:
X (str|intList[str|int]) – a list of of nodeIds or names
Y (str|intList[str|int]) – a list of of nodeIds or names
Z (str|intList[str|int]) – a list of of nodeIds or names
- Raises:
InvalidArgument – if X and Y share variables
- Returns:
True if X and Y are independent given Z in the model
- Return type:
bool
- loadUAI(*args)
Load an UAI file.
- Parameters:
name (str) – the name’s file
l (list) – list of functions to execute
- Raises:
pyAgrum.IOError – If file not found
pyAgrum.FatalError – If file is not valid
- Return type:
str
- log10DomainSize()
returns the log10 of the domain size of the model defined as the product of the domain sizes of the variables in the model.
- Returns:
the log10 domain size.
- Return type:
float
- maxNonOneParam()
- Return type:
float
- maxParam()
- Return type:
float
- maxVarDomainSize()
- Return type:
int
- minNonZeroParam()
- Return type:
float
- minParam()
- Return type:
float
- minimalCondSet(*args)
- Return type:
object
- names()
Set of names of variables in the model
- Returns:
The names of the graph variables
- Return type:
Set[str]
- neighbours(norid)
- Parameters:
norid (
object
)- Return type:
object
- nodeId(var)
- Parameters:
var (
DiscreteVariable
)- Return type:
int
- nodes()
- Return type:
object
- nodeset(names)
Set of ids for a list of names of variables in the model
- Parameters:
lov (List[str]) – List of variable names
names (
List
[str
])
- Returns:
The set of ids for the list of names of the graph variables
- Return type:
Set[int]
- properties()
- Return type:
List
[str
]
- saveUAI(name)
Save the MarkovRandomField in an UAI file.
- Parameters:
name (str) – the file’s name
- Return type:
None
- size()
- Return type:
int
- sizeEdges()
- Return type:
int
- smallestFactorFromNode(node)
- Parameters:
node (
int
)- Return type:
List
[int
]
- property thisown
The membership flag
- toDot()
- Return type:
str
- toDotAsFactorGraph()
- Return type:
str
- toFast(filename=None)
Export the MRF as fast syntax (in a string or in a python file)
- Parameters:
filename (Optional[str]) – the name of the file (including the prefix), if None , use sys.stdout
- Return type:
str
- variable(*args)
- Return type:
- variableFromName(name)
- Parameters:
name (
str
)- Return type:
- variableNodeMap()