Fragment of Bayesian networks¶
This class proposes a shallow copy of a part of Bayesian network. It can be used as a Bayesian network for inference algorithms (for instance).
- class pyAgrum.BayesNetFragment(bn)¶
BayesNetFragment represents a part of a Bayesian network (subset of nodes). By default, the arcs and the CPTs are the same as the BN but local CPTs can be build to express different local dependencies. All the non local CPTs are not copied. Therefore a BayesNetFragment is a light object.
- BayesNetFragment(BayesNet bn) -> BayesNetFragment
- Parameters:
bn (pyAgrum.BayesNet) – the bn refered by the fragment
- Parameters
bn (
IBayesNet
) –
- addStructureListener(whenNodeAdded=None, whenNodeDeleted=None, whenArcAdded=None, whenArcDeleted=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
whenArcAdded (lambda expression) – a function for when an arc is added
whenArcDeleted (lambda expression) – a function for when an arc is removed
- ancestors(norid)¶
- Parameters
norid (
object
) –- Return type
object
- arcs()¶
- Returns
The lisf of arcs in the IBayesNet
- Return type
list
- checkConsistency(*args)¶
If a variable is added to the fragment but not its parents, there is no CPT consistant for this variable. This function checks the consistency for a variable of for all.
- Parameters
n (int, str (optional)) – the id or the name of the variable. If no argument, the function checks all the variables.
- Returns
True if the variable(s) is consistant.
- Return type
boolean
- Raises
pyAgrum.NotFound – if the node is not found.
- children(norid)¶
- Parameters
id (int) – the id of the parent
norid (
object
) –
- Returns
the set of all the children
- Return type
Set
- completeInstantiation()¶
- Return type
- connectedComponents()¶
connected components from a graph/BN
Compute the connected components of a pyAgrum’s graph or Bayesian Network (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])
- cpt(*args)¶
Returns the CPT of a variable.
- Parameters
VarId (int) – A variable’s id in the pyAgrum.IBayesNet.
name (str) – A variable’s name in the pyAgrum.IBayesNet.
- Returns
The variable’s CPT.
- Return type
- Raises
pyAgrum.NotFound – If no variable’s id matches varId.
- dag()¶
- Returns
a constant reference to the dag of this BayesNet.
- Return type
- descendants(norid)¶
- Parameters
norid (
object
) –- Return type
object
- dim()¶
Returns the dimension (the number of free parameters) in this BayesNet.
- Returns
the dimension of the BayesNet
- Return type
int
- empty()¶
- Return type
bool
- exists(node)¶
- Parameters
node (
int
) –- Return type
bool
- existsArc(*args)¶
- Return type
bool
- family(norid)¶
- Parameters
norid (
object
) –- Return type
object
- hasSameStructure(other)¶
- Parameters
pyAgrum.DAGmodel – a direct acyclic model
other (pyAgrum.DAGmodel) –
- Returns
True if all the named node are the same and all the named arcs are the same
- Return type
bool
- idFromName(name)¶
Returns a variable’s id given its name in the graph.
- Parameters
name (str) – The variable’s name from which the id is returned.
- Returns
The variable’s node id.
- Return type
int
- Raises
pyAgrum.NotFound – If name does not match a variable in the graph
- ids(names)¶
- Parameters
names (Vector_string) –
- Return type
pyAgrum.YetUnWrapped
- installAscendants(*args)¶
Add the variable and all its ascendants in the fragment. No inconsistant node are created.
- Parameters
n (int, str) – the id or the name of the variable.
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- installCPT(*args)¶
Install a local CPT for a node. Doing so, it changes the parents of the node in the fragment.
- Parameters
n (int, str) – the id or the name of the variable.
pot (Potential) – the Potential to install
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- installMarginal(*args)¶
Install a local marginal for a node. Doing so, it removes the parents of the node in the fragment.
- Parameters
n (int, str) – the id or the name of the variable.
pot (Potential) – the Potential (marginal) to install
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- installNode(*args)¶
Add a node to the fragment. The arcs that can be added between installed nodes are created. No specific CPT are created. Then either the parents of the node are already in the fragment and the node is consistant, or the parents are not in the fragment and the node is not consistant.
- Parameters
n (int, str) – the id or the name of the variable.
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- isIndependent(*args)¶
- Return type
bool
- isInstalledNode(*args)¶
Check if a node is in the fragment
- Parameters
n (int, str) – the id or the name of the variable.
- Return type
bool
- jointProbability(i)¶
- Parameters
i (pyAgrum.instantiation) – an instantiation of the variables
- Returns
a parameter of the joint probability for the BayesNet
- Return type
float
Warning
a variable not present in the instantiation is assumed to be instantiated to 0
- log10DomainSize()¶
- Return type
float
- log2JointProbability(i)¶
- Parameters
i (pyAgrum.instantiation) – an instantiation of the variables
- Returns
a parameter of the log joint probability for the BayesNet
- Return type
float
Warning
a variable not present in the instantiation is assumed to be instantiated to 0
- maxNonOneParam()¶
- Returns
The biggest value (not equal to 1) in the CPTs of the BayesNet
- Return type
float
- maxParam()¶
- Returns
the biggest value in the CPTs of the BayesNet
- Return type
float
- maxVarDomainSize()¶
- Returns
the biggest domain size among the variables of the BayesNet
- Return type
int
- minNonZeroParam()¶
- Returns
the smallest value (not equal to 0) in the CPTs of the IBayesNet
- Return type
float
- minParam()¶
- Returns
the smallest value in the CPTs of the IBayesNet
- Return type
float
- minimalCondSet(*args)¶
Returns, given one or many targets and a list of variables, the minimal set of those needed to calculate the target/targets.
- Parameters
target (int) – The id of the target
targets (list) – The ids of the targets
list (list) – The list of available variables
- Returns
The minimal set of variables
- Return type
Set
- moralGraph(clear=True)¶
Returns the moral graph of the BayesNet, formed by adding edges between all pairs of nodes that have a common child, and then making all edges in the graph undirected.
- Returns
The moral graph
- Return type
- Parameters
clear (
bool
) –
- moralizedAncestralGraph(nodes)¶
- Parameters
nodes (
object
) –- Return type
- names()¶
- Returns
The names of the graph variables
- Return type
list
- nodeId(var)¶
- Parameters
var (pyAgrum.DiscreteVariable) – a variable
- Returns
the id of the variable
- Return type
int
- Raises
pyAgrum.IndexError – If the graph does not contain the variable
- nodes()¶
- Returns
the set of ids
- Return type
set
- nodeset(names)¶
- Parameters
names (
Vector_string
) –- Return type
List
[int
]
- parents(norid)¶
- Parameters
id – The id of the child node
norid (
object
) –
- Returns
the set of the parents ids.
- Return type
Set
- property(name)¶
- Parameters
name (
str
) –- Return type
str
- propertyWithDefault(name, byDefault)¶
- Parameters
name (
str
) –byDefault (
str
) –
- Return type
str
- setProperty(name, value)¶
- Parameters
name (
str
) –value (
str
) –
- Return type
None
- size()¶
- Returns
the number of nodes in the graph
- Return type
int
- sizeArcs()¶
- Returns
the number of arcs in the graph
- Return type
int
- toBN()¶
Create a BayesNet from a fragment.
- Raises
pyAgrum.OperationNotAllowed – if the fragment is not consistent.
- Return type
- toDot()¶
- Returns
a friendly display of the graph in DOT format
- Return type
str
- topologicalOrder(clear=True)¶
- Returns
the list of the nodes Ids in a topological order
- Return type
List
- Raises
pyAgrum.InvalidDirectedCycle – If this graph contains cycles
- Parameters
clear (
bool
) –
- uninstallCPT(*args)¶
Remove a local CPT. The fragment can become inconsistant.
- Parameters
n (int, str) – the id or the name of the variable.
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- uninstallNode(*args)¶
Remove a node from the fragment. The fragment can become inconsistant.
- Parameters
n (int, str) – the id or the name of the variable.
- Raises
pyAgrum.NotFound – if the node is not found.
- Return type
None
- variable(*args)¶
- Parameters
id (int) – a variable’s id
name (str) – a variable’s name
- Returns
the variable
- Return type
- Raises
pyAgrum.IndexError – If the graph does not contain the variable
- variableFromName(name)¶
- Parameters
name (str) – a variable’s name
- Returns
the variable
- Return type
- Raises
pyAgrum.IndexError – If the graph does not contain the variable
- variableNodeMap()¶
- Returns
the variable node map
- Return type
pyAgrum.variableNodeMap
- whenArcAdded(src, _from, to)¶
- Parameters
src (
object
) –_from (
int
) –to (
int
) –
- Return type
None
- whenArcDeleted(src, _from, to)¶
- Parameters
src (
object
) –_from (
int
) –to (
int
) –
- Return type
None
- whenNodeAdded(src, id)¶
- Parameters
src (
object
) –id (
int
) –
- Return type
None
- whenNodeDeleted(src, id)¶
- Parameters
src (
object
) –id (
int
) –
- Return type
None