Comparison of Bayesian networks
To compare Bayesian network, one can compare the structure of the BNs (see pyAgrum.lib.bn_vs_vb.GraphicalBNComparator). However BNs can also be compared as probability distributions.
- class pyAgrum.ExactBNdistance(*args)
Class representing exacte computation of divergence and distance between BNs
- ExactBNdistance(P,Q) -> ExactBNdistance
- Parameters:
P (pyAgrum.BayesNet) a Bayesian network
Q (pyAgrum.BayesNet) another Bayesian network to compare with the first one
- ExactBNdistance(ebnd) -> ExactBNdistance
- Parameters:
ebnd (pyAgrum.ExactBNdistance) the exact BNdistance to copy
- Raises:
pyAgrum.OperationNotAllowed – If the 2BNs have not the same domain size of compatible node sets
- compute()
- Returns:
a dictionnary containing the different values after the computation.
- Return type:
Dict[str,float]
- class pyAgrum.GibbsBNdistance(*args)
Class representing a Gibbs-Approximated computation of divergence and distance between BNs
- GibbsBNdistance(P,Q) -> GibbsBNdistance
- Parameters:
P (pyAgrum.BayesNet) – a Bayesian network
Q (pyAgrum.BayesNet) – another Bayesian network to compare with the first one
- GibbsBNdistance(gbnd) -> GibbsBNdistance
- Parameters:
gbnd (pyAgrum.GibbsBNdistance) – the Gibbs BNdistance to copy
- Raises:
pyAgrum.OperationNotAllowed – If the 2BNs have not the same domain size of compatible node sets
- burnIn()
- Returns:
size of burn in on number of iteration
- Return type:
int
- compute()
- Returns:
a dictionnary containing the different values after the computation.
- Return type:
Dict[str,float]
- continueApproximationScheme(error)
Continue the approximation scheme.
- Parameters:
error (float)
- Return type:
bool
- currentTime()
- Returns:
get the current running time in second (float)
- Return type:
float
- disableEpsilon()
Disable epsilon as a stopping criterion.
- Return type:
None
- disableMaxIter()
Disable max iterations as a stopping criterion.
- Return type:
None
- disableMaxTime()
Disable max time as a stopping criterion.
- Return type:
None
- disableMinEpsilonRate()
Disable a min epsilon rate as a stopping criterion.
- Return type:
None
- enableEpsilon()
Enable epsilon as a stopping criterion.
- Return type:
None
- enableMaxIter()
Enable max iterations as a stopping criterion.
- Return type:
None
- enableMaxTime()
Enable max time as a stopping criterion.
- Return type:
None
- enableMinEpsilonRate()
Enable a min epsilon rate as a stopping criterion.
- Return type:
None
- epsilon()
- Returns:
the value of epsilon
- Return type:
float
- history()
- Returns:
the scheme history
- Return type:
tuple
- Raises:
pyAgrum.OperationNotAllowed – If the scheme did not performed or if verbosity is set to false
- initApproximationScheme()
Initiate the approximation scheme.
- Return type:
None
- isDrawnAtRandom()
- Returns:
True if variables are drawn at random
- Return type:
bool
- isEnabledEpsilon()
- Returns:
True if epsilon is used as a stopping criterion.
- Return type:
bool
- isEnabledMaxIter()
- Returns:
True if max iterations is used as a stopping criterion
- Return type:
bool
- isEnabledMaxTime()
- Returns:
True if max time is used as a stopping criterion
- Return type:
bool
- isEnabledMinEpsilonRate()
- Returns:
True if epsilon rate is used as a stopping criterion
- Return type:
bool
- maxIter()
- Returns:
the criterion on number of iterations
- Return type:
int
- maxTime()
- Returns:
the timeout(in seconds)
- Return type:
float
- messageApproximationScheme()
- Returns:
the approximation scheme message
- Return type:
str
- minEpsilonRate()
- Returns:
the value of the minimal epsilon rate
- Return type:
float
- nbrDrawnVar()
- Returns:
the number of variable drawn at each iteration
- Return type:
int
- nbrIterations()
- Returns:
the number of iterations
- Return type:
int
- periodSize()
- Returns:
the number of samples between 2 stopping
- Return type:
int
- Raises:
pyAgrum.OutOfBounds – If p<1
- remainingBurnIn()
- Returns:
the number of remaining burn in
- Return type:
int
- setBurnIn(b)
- Parameters:
b (int) – size of burn in on number of iteration
- Return type:
None
- setDrawnAtRandom(_atRandom)
- Parameters:
_atRandom (bool) – indicates if variables should be drawn at random
- Return type:
None
- setEpsilon(eps)
- Parameters:
eps (float) – the epsilon we want to use
- Raises:
pyAgrum.OutOfBounds – If eps<0
- Return type:
None
- setMaxIter(max)
- Parameters:
max (int) – the maximum number of iteration
- Raises:
pyAgrum.OutOfBounds – If max <= 1
- Return type:
None
- setMaxTime(timeout)
- Parameters:
tiemout (float) – stopping criterion on timeout (in seconds)
timeout (
float
)
- Raises:
pyAgrum.OutOfBounds – If timeout<=0.0
- Return type:
None
- setMinEpsilonRate(rate)
- Parameters:
rate (float) – the minimal epsilon rate
- Return type:
None
- setNbrDrawnVar(_nbr)
- Parameters:
_nbr (int) – the number of variables to be drawn at each iteration
- Return type:
None
- setPeriodSize(p)
- Parameters:
p (int) – number of samples between 2 stopping
- Raises:
pyAgrum.OutOfBounds – If p<1
- Return type:
None
- setVerbosity(v)
- Parameters:
v (bool) – verbosity
- Return type:
None
- startOfPeriod()
- Returns:
True if it is a start of a period
- Return type:
bool
- stateApproximationScheme()
- Returns:
the state of the approximation scheme
- Return type:
int
- stopApproximationScheme()
Stop the approximation scheme.
- Return type:
None
- updateApproximationScheme(incr=1)
Update the approximation scheme.
- Parameters:
incr (
int
)- Return type:
None
- verbosity()
- Returns:
True if the verbosity is enabled
- Return type:
bool