![]() |
aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
|
A pack of learning algorithms that can easily be used. More...
#include <IBNLearner.h>
Classes | |
| class | Database |
| a helper to easily read databases More... | |
Public Types | |
| enum class | ScoreType { AIC , BD , BDeu , BIC , fNML , K2 , LOG2LIKELIHOOD , MDL } |
| an enumeration enabling to select easily the score we wish to use More... | |
| enum class | ParamEstimatorType { ML } |
| an enumeration to select the type of parameter estimation we shall apply More... | |
| enum class | BNLearnerPriorType { NO_prior , SMOOTHING , DIRICHLET_FROM_DATABASE , DIRICHLET_FROM_BAYESNET , BDEU } |
| an enumeration to select the prior More... | |
| enum class | AlgoType { K2 , GREEDY_HILL_CLIMBING , LOCAL_SEARCH_WITH_TABU_LIST , MIIC , PC , FCI , EXTENDED_GREEDY_HILL_CLIMBING , GREEDY_THICK_THINNING } |
| an enumeration to select easily the learning algorithm to use More... | |
| enum class | ApproximationSchemeSTATE : char { Undefined , Continue , Epsilon , Rate , Limit , TimeLimit , Stopped } |
| The different state of an approximation scheme. More... | |
Public Member Functions | |
| void | unsetTotalOrder () |
| removes the current total ordering constraint, if any | |
| void | setForbiddenArcs (const ArcSet &set) |
| removes a total | |
| void | setMandatoryArcs (const ArcSet &set) |
| assign a set of mandatory arcs | |
Constructors / Destructors | |
| IBNLearner (std::string_view filename, const std::vector< std::string > &missingSymbols, bool induceTypes=true) | |
| read the database file for the score / parameter estimation and var names | |
| IBNLearner (const DatabaseTable &db) | |
| read the database file for the score / parameter estimation and var names | |
| template<GUM_Numeric GUM_SCALAR> | |
| IBNLearner (std::string_view filename, const gum::BayesNet< GUM_SCALAR > &src, const std::vector< std::string > &missing_symbols) | |
| read the database file for the score / parameter estimation and var names | |
| IBNLearner (const IBNLearner &) | |
| copy constructor | |
| IBNLearner (IBNLearner &&) | |
| move constructor | |
| ~IBNLearner () override | |
| destructor | |
Operators | |
| IBNLearner & | operator= (const IBNLearner &) |
| copy operator | |
| IBNLearner & | operator= (IBNLearner &&) |
| move operator | |
Accessors / Modifiers | |
| DAG | learnDAG () |
| learn a structure from a file (must have read the db before) | |
| PDAG | learnPDAG () |
| learn a partial structure from a file (must have read the db before and must have selected miic) | |
| PAG | learnPAG () |
| learn a PAG — only valid when useFCI() has been called | |
| void | setInitialDAG (const DAG &) |
| sets an initial DAG structure | |
| DAG | initialDAG () |
| returns the initial DAG structure | |
| const std::vector< std::string > & | names () const |
| returns the names of the variables in the database | |
| const std::vector< std::size_t > & | domainSizes () const |
| returns the domain sizes of the variables in the database | |
| Size | domainSize (NodeId var) const |
| learn a structure from a file (must have read the db before) | |
| Size | domainSize (std::string_view var) const |
| learn a structure from a file (must have read the db before) | |
| NodeId | idFromName (std::string_view var_name) const |
| returns the node id corresponding to a variable name | |
| const DatabaseTable & | database () const |
| returns the database used by the BNLearner | |
| void | setDatabaseWeight (const double new_weight) |
| assign a weight to all the rows of the learning database so that the sum of their weights is equal to new_weight | |
| void | setRecordWeight (const std::size_t i, const double weight) |
| sets the weight of the ith record of the database | |
| double | recordWeight (const std::size_t i) const |
| returns the weight of the ith record | |
| double | databaseWeight () const |
| returns the weight of the whole database | |
| const std::string & | nameFromId (NodeId id) const |
| returns the variable name corresponding to a given node id | |
| void | useDatabaseRanges (const std::vector< std::pair< std::size_t, std::size_t > > &new_ranges) |
| use a new set of database rows' ranges to perform learning | |
| void | clearDatabaseRanges () |
| reset the ranges to the one range corresponding to the whole database | |
| const std::vector< std::pair< std::size_t, std::size_t > > & | databaseRanges () const |
| returns the current database rows' ranges used for learning | |
| std::pair< std::size_t, std::size_t > | useCrossValidationFold (const std::size_t learning_fold, const std::size_t k_fold) |
| sets the ranges of rows to be used for cross-validation learning | |
| std::pair< double, double > | chi2 (NodeId id1, NodeId id2, const std::vector< NodeId > &knowing={}) |
| Return the <statistic,pvalue> pair for chi2 test in the database. | |
| std::pair< double, double > | chi2 (std::string_view name1, std::string_view name2, const std::vector< std::string > &knowing={}) |
| Return the <statistic,pvalue> pair for the BNLearner. | |
| std::pair< double, double > | G2 (NodeId id1, NodeId id2, const std::vector< NodeId > &knowing={}) |
| Return the <statistic,pvalue> pair for for G2 test in the database. | |
| std::pair< double, double > | G2 (std::string_view name1, std::string_view name2, const std::vector< std::string > &knowing={}) |
| Return the <statistic,pvalue> pair for for G2 test in the database. | |
| double | logLikelihood (const std::vector< NodeId > &vars, const std::vector< NodeId > &knowing={}) |
| Return the loglikelihood of vars in the base, conditioned by knowing for the BNLearner. | |
| double | logLikelihood (const std::vector< std::string > &vars, const std::vector< std::string > &knowing={}) |
| Return the loglikelihood of vars in the base, conditioned by knowing for the BNLearner. | |
| double | mutualInformation (NodeId id1, NodeId id2, const std::vector< NodeId > &knowing={}) |
| Return the mutual information of id1 and id2 in the base, conditioned by knowing for the BNLearner. | |
| double | mutualInformation (std::string_view var1, std::string_view var2, const std::vector< std::string > &knowing={}) |
| Return the mutual information of var1 and var2 in the base, conditioned by knowing for the BNLearner. | |
| double | correctedMutualInformation (NodeId id1, NodeId id2, const std::vector< NodeId > &knowing={}) |
| Return the mutual information of id1 and id2 in the base, conditioned by knowing for the BNLearner. | |
| double | correctedMutualInformation (std::string_view var1, std::string_view var2, const std::vector< std::string > &knowing={}) |
| Return the mutual information of var1 and var2 in the base, conditioned by knowing for the BNLearner. | |
| double | score (NodeId vars, const std::vector< NodeId > &knowing={}) |
| Return the value of the score currently in use by the BNLearner of a variable given a set of other variables. | |
| double | score (std::string_view vars, const std::vector< std::string > &knowing={}) |
| Return the value of the score currently in use by the BNLearner of a variable given a set of other variables The score used is the one currently selected in the BNLearner. | |
| std::vector< double > | rawPseudoCount (const std::vector< NodeId > &vars) |
| Return the pseudo-counts of NodeIds vars in the base in a raw array. | |
| std::vector< double > | rawPseudoCount (const std::vector< std::string > &vars) |
| Return the pseudoconts of vars in the base in a raw array. | |
| Size | nbCols () const |
| Size | nbRows () const |
| void | useEM (const double epsilon, const double noise=default_EM_noise) |
| use The EM algorithm to learn parameters | |
| void | useEMWithRateCriterion (const double epsilon, const double noise=default_EM_noise) |
| use The EM algorithm to learn parameters with the rate stopping criterion | |
| void | useEMWithDiffCriterion (const double epsilon, const double noise=default_EM_noise) |
| use The EM algorithm to learn parameters with the diff stopping criterion | |
| void | forbidEM () |
| prevent using the EM algorithm for parameter learning | |
| bool | isUsingEM () const |
| indicates whether we use EM for parameter learning | |
| EMApproximationScheme & | EM () |
| returns the EM parameter learning approximation scheme if EM is enabled | |
| ApproximationSchemeSTATE | EMState () const |
| returns the state of the last EM algorithm executed | |
| std::string | EMStateMessage () const |
| returns the state of the EM algorithm | |
| bool | hasMissingValues () const |
| returns true if the learner's database has missing values | |
Score selection | |
| void | useScoreAIC () |
| indicate that we wish to use an AIC score | |
| void | useScoreBD () |
| indicate that we wish to use a BD score | |
| void | useScoreBDeu () |
| indicate that we wish to use a BDeu score | |
| void | useScoreBIC () |
| indicate that we wish to use a BIC score | |
| void | useScorefNML () |
| indicate that we wish to use a fNML score | |
| void | useScoreK2 () |
| indicate that we wish to use a K2 score | |
| void | useScoreLog2Likelihood () |
| indicate that we wish to use a Log2Likelihood score | |
| void | useScoreMDL () |
| indicate that we wish to use a MDL score | |
a prior selection / parameterization | |
| void | useNoPrior () |
| use no prior | |
| void | useBDeuPrior (double weight=1.0) |
| use the BDeu prior | |
| void | useSmoothingPrior (double weight=1) |
| use the prior smoothing | |
| void | useDirichletPrior (std::string_view filename, double weight=1) |
| use the Dirichlet prior from a database | |
| std::string | checkScorePriorCompatibility () const |
| checks whether the current score and prior are compatible | |
Learning algorithm selection | |
| void | useGreedyHillClimbing () |
| indicate that we wish to use a greedy hill climbing algorithm | |
| void | useExtendedGreedyHillClimbing () |
| indicate that we wish to use the extended greedy hill climbing algorithm | |
| void | useLocalSearchWithTabuList (Size tabu_size=100, Size nb_decrease=2) |
| indicate that we wish to use a local search with tabu list | |
| void | useK2 (const Sequence< NodeId > &order) |
| indicate that we wish to use K2 | |
| void | useK2 (const std::vector< NodeId > &order) |
| indicate that we wish to use K2 | |
| void | useMIIC () |
| indicate that we wish to use MIIC | |
| void | usePC () |
| indicate that we wish to use PC (Chi2 test by default) | |
| void | useFCI () |
| indicate that we wish to use FCI (Chi2 test by default) | |
| void | useGreedyThickThinning () |
| indicate that we wish to use greedy thick-thinning | |
| void | setGreedyThickThinningReversals (bool allow) |
| enable or disable arc reversals in the thin phase of greedy thick-thinning | |
| bool | greedyThickThinningReversals () const |
| returns whether arc reversals are allowed in the thin phase of greedy thick-thinning | |
| bool | isConstraintBased () const |
| indicate if the selected algorithm is constraint-based | |
| bool | isScoreBased () const |
| indicate if the selected algorithm is score-based | |
allow/forbid the graph operations used during learning | |
| void | allowArcAdditions (bool allow=true) |
| allow (true)/forbid (false) to add arcs during learning. | |
| void | allowArcDeletions (bool allow=true) |
| allow (true)/forbid (false) to delete arcs during learning. | |
| void | allowArcReversals (bool allow=true) |
| allow (true)/forbid (false) to reverse arcs during learning. | |
| void | allowArcTriangleDeletions (bool allow=true) |
| allow (true)/forbid (false) to delete arc triangles during learning. | |
MIIC parameterization and specific results | |
| void | useNMLCorrection () |
| indicate that we wish to use the NML correction for and MIIC | |
| void | useMDLCorrection () |
| indicate that we wish to use the MDL correction for MIIC | |
| void | useNoCorrection () |
| indicate that we wish to use the NoCorr correction for MIIC | |
| std::vector< Arc > | latentVariables () const |
| get the list of arcs hiding latent variables | |
PC parameterization | |
| void | useChi2Test () |
| indicate that we wish to use Chi2 independence test for PC | |
| void | useG2Test () |
| indicate that we wish to use G2 independence test for PC | |
| void | setPCAlpha (double alpha) |
| set the significance threshold alpha for PC (default 0.05) | |
| void | setPCStable (bool stable) |
| set stable mode for PC — defer removals to end of each depth level (default true) | |
| void | setPCMaxCondSetSize (Size max_k) |
| set maximum conditioning set size for PC (default Size(-1) = unlimited) | |
| void | setPCUnshieldedColliderSorted (bool sorted) |
| set unshielded-collider ordering for PC: sorted=true uses descending p-value order (strongest evidence first); sorted=false uses natural traversal order (default false) | |
FCI parameterization | |
| void | useFCIChi2Test () |
| indicate that we wish to use Chi2 independence test for FCI | |
| void | useFCIG2Test () |
| indicate that we wish to use G2 independence test for FCI | |
| void | setFCIAlpha (double alpha) |
| set the significance threshold alpha for FCI (default 0.05) | |
| void | setFCIMaxPathLength (Size max_len) |
| set maximum discriminating-path length for FCI R4 (default Size(-1) = unlimited) | |
| void | setFCIExhaustiveSepSet (bool exhaustive) |
| enable exhaustive sepset mode for FCI skeleton learning (default false) | |
| bool | fciExhaustiveSepSet () const |
| return true when FCI uses exhaustive sepset mode | |
Accessors / Modifiers for adding constraints on learning | |
| void | setMaxIndegree (Size max_indegree) |
| sets the max indegree | |
| void | setSliceOrder (const NodeProperty< NodeId > &slice_order) |
| sets a partial order on the nodes | |
| void | setSliceOrder (const std::vector< std::vector< std::string > > &slices) |
| sets a partial order on the nodes | |
| void | unsetSliceOrder () |
| removes the slice order constraint | |
| void | setTotalOrder (const Sequence< NodeId > &order) |
| sets a total order over some nodes | |
| void | setTotalOrder (const std::vector< std::string > &order) |
| sets the max indegree | |
assign a new forbidden arc | |
| void | addForbiddenArc (const Arc &arc) |
| void | addForbiddenArc (NodeId tail, NodeId head) |
| void | addForbiddenArc (std::string_view tail, std::string_view head) |
remove a forbidden arc | |
| void | eraseForbiddenArc (const Arc &arc) |
| void | eraseForbiddenArc (NodeId tail, NodeId head) |
| void | eraseForbiddenArc (std::string_view tail, std::string_view head) |
assign a new mandatory arc | |
| void | addMandatoryArc (const Arc &arc) |
| void | addMandatoryArc (NodeId tail, NodeId head) |
| void | addMandatoryArc (std::string_view tail, std::string_view head) |
remove a mandatory arc | |
| void | eraseMandatoryArc (const Arc &arc) |
| void | eraseMandatoryArc (NodeId tail, NodeId head) |
| void | eraseMandatoryArc (std::string_view tail, std::string_view head) |
add a node with no parent | |
| void | addNoParentNode (NodeId node) |
| void | addNoParentNode (std::string_view node) |
remove a node with no parent | |
| void | eraseNoParentNode (NodeId node) |
| void | eraseNoParentNode (std::string_view node) |
add a node with no children | |
| void | addNoChildrenNode (NodeId node) |
| void | addNoChildrenNode (std::string_view node) |
remove a node with no children | |
| void | eraseNoChildrenNode (NodeId node) |
| void | eraseNoChildrenNode (std::string_view node) |
| void | setPossibleEdges (const EdgeSet &set) |
| assign a set of possible edges | |
| void | setPossibleSkeleton (const UndiGraph &skeleton) |
| assign a set of possible edges | |
assign a new possible edge | |
| |
| void | addPossibleEdge (const Edge &edge) |
| void | addPossibleEdge (NodeId tail, NodeId head) |
| void | addPossibleEdge (std::string_view tail, std::string_view head) |
remove a possible edge | |
| void | erasePossibleEdge (const Edge &edge) |
| void | erasePossibleEdge (NodeId tail, NodeId head) |
| void | erasePossibleEdge (std::string_view tail, std::string_view head) |
Multithreading | |
| void | setNumberOfThreads (Size nb) override |
| sets the number max of threads that can be used | |
redistribute signals AND implementation of interface | |
| void | setCurrentApproximationScheme (const ApproximationScheme *approximationScheme) |
| {@ /// distribute signals | |
| void | distributeProgress (const ApproximationScheme *approximationScheme, Size pourcent, double error, double time) |
| {@ /// distribute signals | |
| void | distributeStop (const ApproximationScheme *approximationScheme, std::string_view message) |
| distribute signals | |
| void | setEpsilon (double eps) override |
| Given that we approximate f(t), stopping criterion on |f(t+1)-f(t)| If the criterion was disabled it will be enabled. | |
| double | epsilon () const override |
| Get the value of epsilon. | |
| void | disableEpsilon () override |
| Disable stopping criterion on epsilon. | |
| void | enableEpsilon () override |
| Enable stopping criterion on epsilon. | |
| bool | isEnabledEpsilon () const override |
| void | setMinEpsilonRate (double rate) override |
| Given that we approximate f(t), stopping criterion on d/dt(|f(t+1)-f(t)|) If the criterion was disabled it will be enabled. | |
| double | minEpsilonRate () const override |
| Get the value of the minimal epsilon rate. | |
| void | disableMinEpsilonRate () override |
| Disable stopping criterion on epsilon rate. | |
| void | enableMinEpsilonRate () override |
| Enable stopping criterion on epsilon rate. | |
| bool | isEnabledMinEpsilonRate () const override |
| void | setMaxIter (Size max) override |
| stopping criterion on number of iterationsIf the criterion was disabled it will be enabled | |
| Size | maxIter () const override |
| void | disableMaxIter () override |
| Disable stopping criterion on max iterations. | |
| void | enableMaxIter () override |
| Enable stopping criterion on max iterations. | |
| bool | isEnabledMaxIter () const override |
| void | setMaxTime (double timeout) override |
| stopping criterion on timeout If the criterion was disabled it will be enabled | |
| double | maxTime () const override |
| returns the timeout (in seconds) | |
| double | currentTime () const override |
| get the current running time in second (double) | |
| void | disableMaxTime () override |
| Disable stopping criterion on timeout. | |
| void | enableMaxTime () override |
| stopping criterion on timeout If the criterion was disabled it will be enabled | |
| bool | isEnabledMaxTime () const override |
| void | setPeriodSize (Size p) override |
| how many samples between 2 stopping isEnableds | |
| Size | periodSize () const override |
| how many samples between 2 stopping isEnableds | |
| void | setVerbosity (bool v) override |
| verbosity | |
| bool | verbosity () const override |
| verbosity | |
| ApproximationSchemeSTATE | stateApproximationScheme () const override |
| history | |
| Size | nbrIterations () const override |
| const std::vector< double > & | history () const override |
EM approximation scheme for parameter learning | |
| void | EMsetEpsilon (double eps) |
| sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods | |
| double | EMEpsilon () const |
| Get the value of EM's min diff epsilon. | |
| void | EMdisableEpsilon () |
| Disable the min log-likelihood diff stopping criterion for EM. | |
| void | EMenableEpsilon () |
| Enable the log-likelihood min diff stopping criterion in EM. | |
| bool | EMisEnabledEpsilon () const |
| return true if EM's stopping criterion is the log-likelihood min diff | |
| void | EMsetMinEpsilonRate (double rate) |
| sets the stopping criterion of EM as being the minimal log-likelihood's evolution rate | |
| double | EMMinEpsilonRate () const |
| Get the value of the minimal log-likelihood evolution rate of EM. | |
| void | EMdisableMinEpsilonRate () |
| Disable the log-likelihood evolution rate stopping criterion. | |
| void | EMenableMinEpsilonRate () |
| Enable the log-likelihood evolution rate stopping criterion. | |
| bool | EMisEnabledMinEpsilonRate () const |
| void | EMsetMaxIter (Size max) |
| add a max iteration stopping criterion | |
| Size | EMMaxIter () const |
| return the max number of iterations criterion | |
| void | EMdisableMaxIter () |
| Disable stopping criterion on max iterations. | |
| void | EMenableMaxIter () |
| Enable stopping criterion on max iterations. | |
| bool | EMisEnabledMaxIter () const |
| void | EMsetMaxTime (double timeout) |
| add a stopping criterion on timeout | |
| double | EMMaxTime () const |
| @brief returns EM's timeout (in milliseconds) | |
| double | EMCurrentTime () const |
| get the current running time in second (double) | |
| void | EMdisableMaxTime () |
| Disable EM's timeout stopping criterion. | |
| void | EMenableMaxTime () |
| sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods | |
| bool | EMisEnabledMaxTime () const |
| void | EMsetPeriodSize (Size p) |
| how many samples between 2 stoppings isEnabled | |
| Size | EMPeriodSize () const |
| sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods | |
| void | EMsetVerbosity (bool v) |
| sets or unsets EM's verbosity | |
| bool | EMVerbosity () const |
| returns the EM's verbosity status | |
| ApproximationSchemeSTATE | EMStateApproximationScheme () const |
| get the current state of EM | |
| Size | EMnbrIterations () const |
| returns the number of iterations performed by the last EM execution | |
| const std::vector< double > & | EMHistory () const |
| returns the history of the last EM execution | |
Getters and setters | |
| std::string | messageApproximationScheme () const |
| Returns the approximation scheme message. | |
Accessors/Modifiers | |
| Size | getNumberOfThreads () const override |
| returns the current max number of threads used by the class containing this ThreadNumberManager | |
| bool | isGumNumberOfThreadsOverriden () const override |
| indicates whether the class containing this ThreadNumberManager set its own number of threads | |
Public Attributes | |
| Signaler< Size, double, double > | onProgress |
| Progression, error and time. | |
| Signaler< std::string_view > | onStop |
| Criteria messageApproximationScheme. | |
Static Public Attributes | |
| static constexpr double | default_EM_noise {0.1} |
| the default noise amount added to CPTs during EM's initialization (see method useEM()) | |
Protected Types | |
| enum class | IndepTestType { Chi2 , G2 } |
| independence test type for PC More... | |
Protected Member Functions | |
| PAG | learnPAG_ () |
| PDAG | learnPDAG_ () |
| void | _setPriorWeight_ (double weight) |
| sets the prior weight | |
| virtual void | createPrior_ ()=0 |
| create the prior used for learning | |
| void | createScore_ () |
| create the score used for learning | |
| ParamEstimator * | createParamEstimator_ (const DBRowGeneratorParser &parser, bool take_into_account_score=true) |
| create the parameter estimator used for learning | |
| DAG | learnDag_ () |
| returns the DAG learnt | |
| MixedGraph | prepareSimpleMiic_ () |
| prepares the initial graph for Simple Miic | |
| MixedGraph | prepareMiic_ () |
| prepares the initial graph for miic | |
| MixedGraph | preparePC_ () |
| prepares the initial graph and independence test for PC | |
| MixedGraph | prepareFCI_ () |
| prepares the initial graph and independence test for FCI | |
| PriorType | getPriorType_ () const |
| returns the type (as a string) of a given prior | |
| void | createCorrectedMutualInformation_ () |
| create the Corrected Mutual Information instance for Miic | |
Static Protected Member Functions | |
| static DatabaseTable | readFile_ (std::string_view filename, const std::vector< std::string > &missing_symbols) |
| reads a file and returns a databaseVectInRam | |
| static void | isCSVFileName_ (std::string_view filename) |
| checks whether the extension of a CSV filename is correct | |
Protected Attributes | |
| bool | inducedTypes_ {false} |
| the policy for typing variables | |
| ScoreType | scoreType_ {ScoreType::BDeu} |
| the score selected for learning | |
| Score * | score_ {nullptr} |
| the score used | |
| ParamEstimatorType | paramEstimatorType_ {ParamEstimatorType::ML} |
| the type of the parameter estimator | |
| bool | useEM_ {false} |
| a Boolean indicating whether we should use EM for parameter learning or not | |
| double | noiseEM_ {0.1} |
| the noise factor (in (0,1)) used by EM for perturbing the CPT during init | |
| CorrectedMutualInformation * | mutualInfo_ {nullptr} |
| the selected correction for miic | |
| BNLearnerPriorType | priorType_ {BNLearnerPriorType::NO_prior} |
| the a priorselected for the score and parameters | |
| Prior * | prior_ {nullptr} |
| the prior used | |
| NoPrior * | noPrior_ {nullptr} |
| double | priorWeight_ {1.0f} |
| the weight of the prior | |
| StructuralConstraintSliceOrder | constraintSliceOrder_ |
| the constraint for 2TBNs | |
| StructuralConstraintTotalOrder | constraintTotalOrder_ |
| the total order ing constraint | |
| StructuralConstraintIndegree | constraintIndegree_ |
| the constraint for indegrees | |
| StructuralConstraintTabuList | constraintTabuList_ |
| the constraint for tabu lists | |
| StructuralConstraintForbiddenArcs | constraintForbiddenArcs_ |
| the constraint on forbidden arcs | |
| StructuralConstraintPossibleEdges | constraintPossibleEdges_ |
| the constraint on possible Edges | |
| StructuralConstraintMandatoryArcs | constraintMandatoryArcs_ |
| the constraint on mandatory arcs | |
| StructuralConstraintNoParentNodes | constraintNoParentNodes_ |
| the constraint on no parent nodes | |
| StructuralConstraintNoChildrenNodes | constraintNoChildrenNodes_ |
| the constraint on no children nodes | |
| AlgoType | selectedAlgo_ {AlgoType::MIIC} |
| the selected learning algorithm | |
| bool | allowArcAdditions_ {true} |
| whether we allow or not arc additions during learning | |
| bool | allowArcDeletions_ {true} |
| whether we allow or not arc deletions during learning | |
| bool | allowArcReversals_ {true} |
| whether we allow or not arc reversals during learning | |
| bool | allowArcTriangleDeletions_ {true} |
| whether we allow or not arc deletions during learning | |
| K2 | algoK2_ |
| the K2 algorithm | |
| SimpleMiic | algoSimpleMiic_ |
| the MIIC algorithm | |
| Miic | algoMiic_ |
| the Constraint MIIC algorithm | |
| CorrectedMutualInformation::KModeTypes | kmodeMiic_ |
| the penalty used in MIIC | |
| gum::learning::PC | algoPC_ |
| the PC algorithm | |
| IndepTestType | indepTestTypePC_ {IndepTestType::Chi2} |
| IndependenceTest * | indepTestPC_ {nullptr} |
| owned independence test object for PC (rebuilt before each learn call) | |
| double | alphaPc_ {0.05} |
| PC parameters. | |
| bool | stablePc_ {true} |
| Size | maxCondSetSizePc_ {Size(-1)} |
| bool | sortedUCPc_ {false} |
| gum::learning::FCI | algoFCI_ |
| the FCI algorithm | |
| IndepTestType | indepTestTypeFCI_ {IndepTestType::Chi2} |
| independence test type for FCI (reuses IndepTestType defined above) | |
| IndependenceTest * | indepTestFCI_ {nullptr} |
| owned independence test object for FCI (rebuilt before each learn call) | |
| double | alphaFci_ {0.05} |
| FCI parameters. | |
| Size | maxPathLengthFci_ {Size(-1)} |
| bool | exhaustiveSepSetFci_ {false} |
| DAG2BNLearner | dag2BN_ |
| the parametric EM | |
| GreedyHillClimbing | greedyHillClimbing_ |
| the greedy hill climbing algorithm | |
| GreedyHillClimbing | extendedGreedyHillClimbing_ |
| the extended greedy hill climbing | |
| GreedyThickThinning | greedyThickThinning_ |
| the greedy thick-thinning algorithm | |
| LocalSearchWithTabuList | localSearchWithTabuList_ |
| the local search with tabu list algorithm | |
| Database | scoreDatabase_ |
| the database to be used by the scores and parameter estimators | |
| std::vector< std::pair< std::size_t, std::size_t > > | ranges_ |
| the set of rows' ranges within the database in which learning is done | |
| Database * | priorDatabase_ {nullptr} |
| the database used by the Dirichlet a priori | |
| std::string | priorDbname_ |
| the filename for the Dirichlet a priori, if any | |
| DAG | initialDag_ |
| an initial DAG given to learners | |
| std::string | filename_ {"-"} |
| the filename database | |
| Size | nbDecreasingChanges_ {2} |
| const ApproximationScheme * | currentAlgorithm_ {nullptr} |
Private Attributes | |
| Size | _nb_threads_ {0} |
| the max number of threads used by the class | |
A pack of learning algorithms that can easily be used.
The pack currently contains K2, GreedyHillClimbing and LocalSearchWithTabuList also miic
Definition at line 104 of file IBNLearner.h.
|
strong |
an enumeration to select easily the learning algorithm to use
| Enumerator | |
|---|---|
| K2 | |
| GREEDY_HILL_CLIMBING | |
| LOCAL_SEARCH_WITH_TABU_LIST | |
| MIIC | |
| PC | |
| FCI | |
| EXTENDED_GREEDY_HILL_CLIMBING | |
| GREEDY_THICK_THINNING | |
Definition at line 123 of file IBNLearner.h.
|
stronginherited |
The different state of an approximation scheme.
| Enumerator | |
|---|---|
| Undefined | |
| Continue | |
| Epsilon | |
| Rate | |
| Limit | |
| TimeLimit | |
| Stopped | |
Definition at line 87 of file IApproximationSchemeConfiguration.h.
|
strong |
an enumeration to select the prior
| Enumerator | |
|---|---|
| NO_prior | |
| SMOOTHING | |
| DIRICHLET_FROM_DATABASE | |
| DIRICHLET_FROM_BAYESNET | |
| BDEU | |
Definition at line 114 of file IBNLearner.h.
|
strongprotected |
independence test type for PC
| Enumerator | |
|---|---|
| Chi2 | |
| G2 | |
Definition at line 1209 of file IBNLearner.h.
|
strong |
an enumeration to select the type of parameter estimation we shall apply
| Enumerator | |
|---|---|
| ML | |
Definition at line 111 of file IBNLearner.h.
|
strong |
an enumeration enabling to select easily the score we wish to use
| Enumerator | |
|---|---|
| AIC | |
| BD | |
| BDeu | |
| BIC | |
| fNML | |
| K2 | |
| LOG2LIKELIHOOD | |
| MDL | |
Definition at line 107 of file IBNLearner.h.
| gum::learning::IBNLearner::IBNLearner | ( | std::string_view | filename, |
| const std::vector< std::string > & | missingSymbols, | ||
| bool | induceTypes = true ) |
read the database file for the score / parameter estimation and var names
| filename | the name of a CSV file containing the dataset |
| missing_symbols | the set of symbols in the CSV that should be interpreted as missing values |
| induceTypes | when some columns of the dataset have only numerical values, it is certainly be better to tag them as corresponding to integer, range or continuous variables. By setting induceTypes to true (default), this is precisely what the BNLearner will do. If inducedTypes is false, all the values in the dataset are interpreted as "labels", i.e., as categorical values. |
Definition at line 200 of file IBNLearner.cpp.
References IBNLearner(), filename_, inducedTypes_, noPrior_, and scoreDatabase_.
Referenced by gum::learning::IBNLearner::Database::Database(), IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), ~IBNLearner(), gum::learning::BNLearner< GUM_SCALAR >::EMsetPeriodSize(), operator=(), and operator=().
|
explicit |
read the database file for the score / parameter estimation and var names
| filename | the name of a CSV file containing the dataset |
| missing_symbols | the set of symbols in the CSV that should be interpreted as missing values |
| induceTypes | when some columns of the dataset have only numerical values, it is certainly be better to tag them as corresponding to integer, range or continuous variables. By setting induceTypes to true (default), this is precisely what the BNLearner will do. If inducedTypes is false, all the values in the dataset are interpreted as "labels", i.e., as categorical values. |
Definition at line 210 of file IBNLearner.cpp.
References IBNLearner(), noPrior_, and scoreDatabase_.
| gum::learning::IBNLearner::IBNLearner | ( | std::string_view | filename, |
| const gum::BayesNet< GUM_SCALAR > & | src, | ||
| const std::vector< std::string > & | missing_symbols ) |
read the database file for the score / parameter estimation and var names
| filename | The file to learn from. |
| src | indicate for some nodes (not necessarily all the nodes of the BN) which modalities they should have and in which order these modalities should be stored into the nodes. For instance, if modalities = { 1 -> {True, False, Big} }, then the node of id 1 in the BN will have 3 modalities, the first one being True, the second one being False, and the third bein Big. The modalities specified by the user will be considered as being exactly those of the variables of the BN (as a consequence, if we find other values in the database, an exception will be raised during learning). |
| missing_symbols | the set of symbols in the CSV that should be interpreted as missing values |
Definition at line 101 of file IBNLearner_tpl.h.
References IBNLearner(), filename_, inducedTypes_, noPrior_, and scoreDatabase_.
| gum::learning::IBNLearner::IBNLearner | ( | const IBNLearner & | from | ) |
copy constructor
Definition at line 215 of file IBNLearner.cpp.
References gum::IApproximationSchemeConfiguration::IApproximationSchemeConfiguration(), IBNLearner(), gum::ThreadNumberManager::ThreadNumberManager(), algoK2_, algoMiic_, algoSimpleMiic_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintSliceOrder_, constraintTabuList_, dag2BN_, filename_, greedyHillClimbing_, inducedTypes_, initialDag_, kmodeMiic_, localSearchWithTabuList_, nbDecreasingChanges_, noiseEM_, noPrior_, paramEstimatorType_, priorDbname_, priorType_, priorWeight_, ranges_, scoreDatabase_, scoreType_, selectedAlgo_, and useEM_.
| gum::learning::IBNLearner::IBNLearner | ( | IBNLearner && | from | ) |
move constructor
Definition at line 237 of file IBNLearner.cpp.
References IBNLearner(), gum::ThreadNumberManager::ThreadNumberManager(), algoK2_, algoMiic_, algoSimpleMiic_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintSliceOrder_, constraintTabuList_, dag2BN_, filename_, greedyHillClimbing_, inducedTypes_, initialDag_, kmodeMiic_, localSearchWithTabuList_, nbDecreasingChanges_, noiseEM_, noPrior_, paramEstimatorType_, priorDbname_, priorType_, priorWeight_, ranges_, scoreDatabase_, scoreType_, selectedAlgo_, and useEM_.
|
override |
destructor
Definition at line 262 of file IBNLearner.cpp.
References IBNLearner(), indepTestFCI_, indepTestPC_, mutualInfo_, noPrior_, prior_, priorDatabase_, and score_.
|
protected |
sets the prior weight
Definition at line 644 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), GUM_ERROR, and priorWeight_.
Referenced by useBDeuPrior(), useDirichletPrior(), and useSmoothingPrior().
| INLINE void gum::learning::IBNLearner::addForbiddenArc | ( | const Arc & | arc | ) |
Definition at line 517 of file IBNLearner_inl.h.
References constraintForbiddenArcs_.
Referenced by addForbiddenArc(), and addForbiddenArc().
Definition at line 525 of file IBNLearner_inl.h.
References addForbiddenArc().
| INLINE void gum::learning::IBNLearner::addForbiddenArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 535 of file IBNLearner_inl.h.
References addForbiddenArc(), and idFromName().
| INLINE void gum::learning::IBNLearner::addMandatoryArc | ( | const Arc & | arc | ) |
Definition at line 550 of file IBNLearner_inl.h.
References constraintMandatoryArcs_.
Referenced by addMandatoryArc(), and addMandatoryArc().
Definition at line 598 of file IBNLearner_inl.h.
References addMandatoryArc().
| INLINE void gum::learning::IBNLearner::addMandatoryArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 588 of file IBNLearner_inl.h.
References addMandatoryArc(), and idFromName().
| INLINE void gum::learning::IBNLearner::addNoChildrenNode | ( | NodeId | node | ) |
Definition at line 571 of file IBNLearner_inl.h.
References constraintNoChildrenNodes_.
Referenced by addNoChildrenNode().
| INLINE void gum::learning::IBNLearner::addNoChildrenNode | ( | std::string_view | node | ) |
Definition at line 575 of file IBNLearner_inl.h.
References addNoChildrenNode(), and idFromName().
| INLINE void gum::learning::IBNLearner::addNoParentNode | ( | NodeId | node | ) |
Definition at line 557 of file IBNLearner_inl.h.
References constraintNoParentNodes_.
Referenced by addNoParentNode().
| INLINE void gum::learning::IBNLearner::addNoParentNode | ( | std::string_view | node | ) |
Definition at line 559 of file IBNLearner_inl.h.
References addNoParentNode(), and idFromName().
| INLINE void gum::learning::IBNLearner::addPossibleEdge | ( | const Edge & | edge | ) |
Definition at line 482 of file IBNLearner_inl.h.
References constraintPossibleEdges_.
Referenced by addPossibleEdge(), and addPossibleEdge().
Definition at line 492 of file IBNLearner_inl.h.
References addPossibleEdge().
| INLINE void gum::learning::IBNLearner::addPossibleEdge | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 502 of file IBNLearner_inl.h.
References addPossibleEdge(), and idFromName().
| INLINE void gum::learning::IBNLearner::allowArcAdditions | ( | bool | allow = true | ) |
allow (true)/forbid (false) to add arcs during learning.
This affects only Extended Greedy Hill Climbing and Local Search with Tabu List. Greedy Hill Climbing and K2 always allow arc additions.
Definition at line 454 of file IBNLearner_inl.h.
References allowArcAdditions_.
| INLINE void gum::learning::IBNLearner::allowArcDeletions | ( | bool | allow = true | ) |
allow (true)/forbid (false) to delete arcs during learning.
This affects only Extended Greedy Hill Climbing and Local Search with Tabu List. Greedy Hill Climbing always allows arc deletions while K2 always forbid them. If you wish a K2-like algorithm that enables arc deletions, use and extended greedy hill climbing combined with a TotalOrder constraint.
Definition at line 457 of file IBNLearner_inl.h.
References allowArcDeletions_.
| INLINE void gum::learning::IBNLearner::allowArcReversals | ( | bool | allow = true | ) |
allow (true)/forbid (false) to reverse arcs during learning.
This affects only Extended Greedy Hill Climbing and Local Search with Tabu List. Greedy Hill Climbing always allows arc reversals while K2 always forbid them (due to its total ordering constraint).
Definition at line 460 of file IBNLearner_inl.h.
References allowArcReversals_.
| INLINE void gum::learning::IBNLearner::allowArcTriangleDeletions | ( | bool | allow = true | ) |
allow (true)/forbid (false) to delete arc triangles during learning.
This affects only Extended Greedy Hill Climbing and Local Search with Tabu List. Greedy Hill Climbing and K2 always forbid arc triangle deletions.
Definition at line 463 of file IBNLearner_inl.h.
References allowArcTriangleDeletions_.
| std::string gum::learning::IBNLearner::checkScorePriorCompatibility | ( | ) | const |
checks whether the current score and prior are compatible
Definition at line 1270 of file IBNLearner.cpp.
References AIC, BD, BDeu, BIC, fNML, getPriorType_(), isConstraintBased(), gum::learning::ScoreAIC::isPriorCompatible(), gum::learning::ScoreBD::isPriorCompatible(), gum::learning::ScoreBDeu::isPriorCompatible(), gum::learning::ScoreBIC::isPriorCompatible(), gum::learning::ScorefNML::isPriorCompatible(), gum::learning::ScoreK2::isPriorCompatible(), gum::learning::ScoreLog2Likelihood::isPriorCompatible(), LOG2LIKELIHOOD, MDL, priorWeight_, and scoreType_.
Referenced by _setPriorWeight_(), useBDeuPrior(), useDirichletPrior(), useNoPrior(), useScoreAIC(), useScoreBD(), useScoreBDeu(), useScoreBIC(), useScorefNML(), useScoreK2(), useScoreLog2Likelihood(), useScoreMDL(), and useSmoothingPrior().
| std::pair< double, double > gum::learning::IBNLearner::chi2 | ( | NodeId | id1, |
| NodeId | id2, | ||
| const std::vector< NodeId > & | knowing = {} ) |
Return the <statistic,pvalue> pair for chi2 test in the database.
| id1 | first variable |
| id2 | second variable |
| knowing | list of observed variables |
Definition at line 1338 of file IBNLearner.cpp.
References createPrior_(), databaseRanges(), prior_, scoreDatabase_, and gum::learning::IndepTestChi2::statistics().
Referenced by chi2().
| std::pair< double, double > gum::learning::IBNLearner::chi2 | ( | std::string_view | name1, |
| std::string_view | name2, | ||
| const std::vector< std::string > & | knowing = {} ) |
Return the <statistic,pvalue> pair for the BNLearner.
| id1 | first variable |
| id2 | second variable |
| knowing | list of observed variables |
Definition at line 1345 of file IBNLearner.cpp.
References chi2(), and idFromName().
| INLINE void gum::learning::IBNLearner::clearDatabaseRanges | ( | ) |
reset the ranges to the one range corresponding to the whole database
Definition at line 729 of file IBNLearner_inl.h.
References ranges_.
| double gum::learning::IBNLearner::correctedMutualInformation | ( | NodeId | id1, |
| NodeId | id2, | ||
| const std::vector< NodeId > & | knowing = {} ) |
Return the mutual information of id1 and id2 in the base, conditioned by knowing for the BNLearner.
| id1 | nodeId |
| id2 | nodeId |
| knowing | an optional vector of conditioning NodeIds |
Definition at line 1403 of file IBNLearner.cpp.
References createPrior_(), databaseRanges(), GUM_ERROR, kmodeMiic_, MDL, prior_, gum::learning::CorrectedMutualInformation::score(), scoreDatabase_, gum::learning::CorrectedMutualInformation::useMDL(), gum::learning::CorrectedMutualInformation::useNML(), and gum::learning::CorrectedMutualInformation::useNoCorr().
Referenced by correctedMutualInformation().
| double gum::learning::IBNLearner::correctedMutualInformation | ( | std::string_view | var1, |
| std::string_view | var2, | ||
| const std::vector< std::string > & | knowing = {} ) |
Return the mutual information of var1 and var2 in the base, conditioned by knowing for the BNLearner.
| var1 | name of a row |
| var2 | name of a row |
| knowing | an optional vector of conditioning rows |
Definition at line 1428 of file IBNLearner.cpp.
References correctedMutualInformation(), and idFromName().
|
protected |
create the Corrected Mutual Information instance for Miic
Definition at line 966 of file IBNLearner.cpp.
References GUM_ERROR, kmodeMiic_, MDL, mutualInfo_, noPrior_, ranges_, and scoreDatabase_.
Referenced by prepareMiic_().
|
protected |
create the parameter estimator used for learning
Definition at line 544 of file IBNLearner.cpp.
References gum::ThreadNumberManager::getNumberOfThreads(), GUM_ERROR, gum::ThreadNumberManager::isGumNumberOfThreadsOverriden(), ML, noPrior_, paramEstimatorType_, prior_, ranges_, score_, scoreDatabase_, gum::learning::ParamEstimator::setNumberOfThreads(), and gum::learning::ParamEstimator::setRanges().
|
protectedpure virtual |
create the prior used for learning
Implemented in gum::learning::BNLearner< GUM_SCALAR >.
Referenced by chi2(), correctedMutualInformation(), G2(), learnDAG(), logLikelihood(), rawPseudoCount(), and score().
|
protected |
create the score used for learning
Definition at line 471 of file IBNLearner.cpp.
References AIC, BD, BDeu, BIC, fNML, gum::ThreadNumberManager::getNumberOfThreads(), GUM_ERROR, gum::ThreadNumberManager::isGumNumberOfThreadsOverriden(), K2, LOG2LIKELIHOOD, MDL, prior_, ranges_, score_, scoreDatabase_, and scoreType_.
Referenced by learnDAG(), and score().
|
overridevirtual |
get the current running time in second (double)
Implements gum::IApproximationSchemeConfiguration.
Definition at line 890 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
| INLINE const DatabaseTable & gum::learning::IBNLearner::database | ( | ) | const |
returns the database used by the BNLearner
Definition at line 732 of file IBNLearner_inl.h.
References scoreDatabase_.
Referenced by readFile_().
| INLINE const std::vector< std::pair< std::size_t, std::size_t > > & gum::learning::IBNLearner::databaseRanges | ( | ) | const |
returns the current database rows' ranges used for learning
Definition at line 724 of file IBNLearner_inl.h.
References ranges_.
Referenced by chi2(), correctedMutualInformation(), G2(), logLikelihood(), mutualInformation(), and rawPseudoCount().
| INLINE double gum::learning::IBNLearner::databaseWeight | ( | ) | const |
returns the weight of the whole database
Definition at line 161 of file IBNLearner_inl.h.
References scoreDatabase_.
|
overridevirtual |
Disable stopping criterion on epsilon.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 797 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Disable stopping criterion on max iterations.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 859 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Disable stopping criterion on timeout.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 895 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Disable stopping criterion on epsilon rate.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 828 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
| INLINE void gum::learning::IBNLearner::distributeProgress | ( | const ApproximationScheme * | approximationScheme, |
| Size | pourcent, | ||
| double | error, | ||
| double | time ) |
{@ /// distribute signals
Definition at line 771 of file IBNLearner_inl.h.
References GUM_EMIT3, gum::IApproximationSchemeConfiguration::onProgress, and setCurrentApproximationScheme().
| INLINE void gum::learning::IBNLearner::distributeStop | ( | const ApproximationScheme * | approximationScheme, |
| std::string_view | message ) |
distribute signals
Definition at line 779 of file IBNLearner_inl.h.
References GUM_EMIT1, gum::IApproximationSchemeConfiguration::onStop, and setCurrentApproximationScheme().
learn a structure from a file (must have read the db before)
Definition at line 715 of file IBNLearner_inl.h.
References scoreDatabase_.
| INLINE Size gum::learning::IBNLearner::domainSize | ( | std::string_view | var | ) | const |
learn a structure from a file (must have read the db before)
Definition at line 718 of file IBNLearner_inl.h.
References idFromName(), and scoreDatabase_.
| INLINE const std::vector< std::size_t > & gum::learning::IBNLearner::domainSizes | ( | ) | const |
returns the domain sizes of the variables in the database
Definition at line 710 of file IBNLearner_inl.h.
References scoreDatabase_.
| INLINE EMApproximationScheme & gum::learning::IBNLearner::EM | ( | ) |
returns the EM parameter learning approximation scheme if EM is enabled
returns the EM parameter learning approximation scheme
| NotFound | is raised if EM() is called while the EM algorithm has not been enabled by useEM(), useEMWithDiffCriterion() or useEMWithRateCriterion(). |
Definition at line 436 of file IBNLearner_inl.h.
| INLINE double gum::learning::IBNLearner::EMCurrentTime | ( | ) | const |
get the current running time in second (double)
Definition at line 992 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMdisableEpsilon | ( | ) |
Disable the min log-likelihood diff stopping criterion for EM.
Definition at line 960 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMdisableMaxIter | ( | ) |
Disable stopping criterion on max iterations.
Definition at line 982 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMdisableMaxTime | ( | ) |
Disable EM's timeout stopping criterion.
Definition at line 994 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMdisableMinEpsilonRate | ( | ) |
Disable the log-likelihood evolution rate stopping criterion.
Definition at line 970 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMenableEpsilon | ( | ) |
Enable the log-likelihood min diff stopping criterion in EM.
Definition at line 962 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMenableMaxIter | ( | ) |
Enable stopping criterion on max iterations.
Definition at line 984 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMenableMaxTime | ( | ) |
sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods
| eps | the log-likelihood difference below which EM stops its iterations |
| OutOfBounds | if eps <= 0 |
Definition at line 996 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMenableMinEpsilonRate | ( | ) |
Enable the log-likelihood evolution rate stopping criterion.
Definition at line 972 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE double gum::learning::IBNLearner::EMEpsilon | ( | ) | const |
Get the value of EM's min diff epsilon.
Get the value of EM's min diff epsilon
Definition at line 958 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE const std::vector< double > & gum::learning::IBNLearner::EMHistory | ( | ) | const |
returns the history of the last EM execution
Definition at line 1015 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE bool gum::learning::IBNLearner::EMisEnabledEpsilon | ( | ) | const |
return true if EM's stopping criterion is the log-likelihood min diff
Definition at line 964 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE bool gum::learning::IBNLearner::EMisEnabledMaxIter | ( | ) | const |
Definition at line 986 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE bool gum::learning::IBNLearner::EMisEnabledMaxTime | ( | ) | const |
Definition at line 998 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE bool gum::learning::IBNLearner::EMisEnabledMinEpsilonRate | ( | ) | const |
Definition at line 974 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE Size gum::learning::IBNLearner::EMMaxIter | ( | ) | const |
return the max number of iterations criterion
Definition at line 980 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE double gum::learning::IBNLearner::EMMaxTime | ( | ) | const |
@brief returns EM's timeout (in milliseconds)
Definition at line 990 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE double gum::learning::IBNLearner::EMMinEpsilonRate | ( | ) | const |
Get the value of the minimal log-likelihood evolution rate of EM.
Definition at line 968 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE Size gum::learning::IBNLearner::EMnbrIterations | ( | ) | const |
returns the number of iterations performed by the last EM execution
Definition at line 1013 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE Size gum::learning::IBNLearner::EMPeriodSize | ( | ) | const |
sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods
| eps | the log-likelihood difference below which EM stops its iterations |
| OutOfBounds | if eps <= 0 |
Definition at line 1002 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetEpsilon | ( | double | eps | ) |
sets the stopping criterion of EM as being the minimal difference between two consecutive log-likelihoods
| eps | the log-likelihood difference below which EM stops its iterations |
| OutOfBounds | if eps <= 0 |
Definition at line 956 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetMaxIter | ( | Size | max | ) |
add a max iteration stopping criterion
| max | the max number of iterations that EM is allowed to perform |
| OutOfBounds | if max<=1 |
Definition at line 978 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetMaxTime | ( | double | timeout | ) |
add a stopping criterion on timeout
| timeout | the timeout in milliseconds |
| OutOfBounds | if timeout<=0.0 |
Definition at line 988 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetMinEpsilonRate | ( | double | rate | ) |
sets the stopping criterion of EM as being the minimal log-likelihood's evolution rate
| rate | the log-likelihood evolution rate below which EM stops its iterations |
| OutOfBounds | if rate<=0 |
Definition at line 966 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetPeriodSize | ( | Size | p | ) |
how many samples between 2 stoppings isEnabled
| OutOfBounds | if p<1 |
Definition at line 1000 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE void gum::learning::IBNLearner::EMsetVerbosity | ( | bool | v | ) |
sets or unsets EM's verbosity
Definition at line 1004 of file IBNLearner_inl.h.
References dag2BN_.
| INLINE IApproximationSchemeConfiguration::ApproximationSchemeSTATE gum::learning::IBNLearner::EMState | ( | ) | const |
returns the state of the last EM algorithm executed
Definition at line 442 of file IBNLearner_inl.h.
References dag2BN_, gum::IApproximationSchemeConfiguration::Undefined, and useEM_.
| INLINE IApproximationSchemeConfiguration::ApproximationSchemeSTATE gum::learning::IBNLearner::EMStateApproximationScheme | ( | ) | const |
| INLINE std::string gum::learning::IBNLearner::EMStateMessage | ( | ) | const |
| INLINE bool gum::learning::IBNLearner::EMVerbosity | ( | ) | const |
returns the EM's verbosity status
Definition at line 1006 of file IBNLearner_inl.h.
References dag2BN_.
|
overridevirtual |
Enable stopping criterion on epsilon.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 804 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Enable stopping criterion on max iterations.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 866 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
stopping criterion on timeout If the criterion was disabled it will be enabled
| OutOfBounds | if timeout<=0.0 timeout is time in second (double). |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 902 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Enable stopping criterion on epsilon rate.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 835 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Get the value of epsilon.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 792 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
Referenced by gum::learning::BNLearner< GUM_SCALAR >::useEM(), useEM(), gum::learning::BNLearner< GUM_SCALAR >::useEMWithDiffCriterion(), useEMWithDiffCriterion(), gum::learning::BNLearner< GUM_SCALAR >::useEMWithRateCriterion(), and useEMWithRateCriterion().
| INLINE void gum::learning::IBNLearner::eraseForbiddenArc | ( | const Arc & | arc | ) |
Definition at line 520 of file IBNLearner_inl.h.
References constraintForbiddenArcs_.
Referenced by eraseForbiddenArc(), and eraseForbiddenArc().
Definition at line 530 of file IBNLearner_inl.h.
References eraseForbiddenArc().
| INLINE void gum::learning::IBNLearner::eraseForbiddenArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 540 of file IBNLearner_inl.h.
References eraseForbiddenArc(), and idFromName().
| INLINE void gum::learning::IBNLearner::eraseMandatoryArc | ( | const Arc & | arc | ) |
Definition at line 553 of file IBNLearner_inl.h.
References constraintMandatoryArcs_.
Referenced by eraseMandatoryArc(), and eraseMandatoryArc().
Definition at line 603 of file IBNLearner_inl.h.
References eraseMandatoryArc().
| INLINE void gum::learning::IBNLearner::eraseMandatoryArc | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 593 of file IBNLearner_inl.h.
References eraseMandatoryArc(), and idFromName().
| INLINE void gum::learning::IBNLearner::eraseNoChildrenNode | ( | NodeId | node | ) |
Definition at line 579 of file IBNLearner_inl.h.
References constraintNoChildrenNodes_.
Referenced by eraseNoChildrenNode().
| INLINE void gum::learning::IBNLearner::eraseNoChildrenNode | ( | std::string_view | node | ) |
Definition at line 583 of file IBNLearner_inl.h.
References eraseNoChildrenNode(), and idFromName().
| INLINE void gum::learning::IBNLearner::eraseNoParentNode | ( | NodeId | node | ) |
Definition at line 563 of file IBNLearner_inl.h.
References constraintNoParentNodes_.
Referenced by eraseNoParentNode().
| INLINE void gum::learning::IBNLearner::eraseNoParentNode | ( | std::string_view | node | ) |
Definition at line 567 of file IBNLearner_inl.h.
References eraseNoParentNode(), and idFromName().
| INLINE void gum::learning::IBNLearner::erasePossibleEdge | ( | const Edge & | edge | ) |
Definition at line 487 of file IBNLearner_inl.h.
References constraintPossibleEdges_.
Referenced by erasePossibleEdge(), and erasePossibleEdge().
Definition at line 497 of file IBNLearner_inl.h.
References erasePossibleEdge().
| INLINE void gum::learning::IBNLearner::erasePossibleEdge | ( | std::string_view | tail, |
| std::string_view | head ) |
Definition at line 507 of file IBNLearner_inl.h.
References erasePossibleEdge(), and idFromName().
| INLINE bool gum::learning::IBNLearner::fciExhaustiveSepSet | ( | ) | const |
return true when FCI uses exhaustive sepset mode
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 271 of file IBNLearner_inl.h.
References exhaustiveSepSetFci_, FCI, GUM_ERROR, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::forbidEM | ( | ) |
prevent using the EM algorithm for parameter learning
forbid to use EM
Definition at line 430 of file IBNLearner_inl.h.
References useEM_.
| std::pair< double, double > gum::learning::IBNLearner::G2 | ( | NodeId | id1, |
| NodeId | id2, | ||
| const std::vector< NodeId > & | knowing = {} ) |
Return the <statistic,pvalue> pair for for G2 test in the database.
| id1 | first variable |
| id2 | second variable |
| knowing | list of observed variables |
Definition at line 1357 of file IBNLearner.cpp.
References createPrior_(), databaseRanges(), prior_, scoreDatabase_, and gum::learning::IndepTestG2::statistics().
Referenced by G2().
| std::pair< double, double > gum::learning::IBNLearner::G2 | ( | std::string_view | name1, |
| std::string_view | name2, | ||
| const std::vector< std::string > & | knowing = {} ) |
Return the <statistic,pvalue> pair for for G2 test in the database.
| id1 | first variable |
| id2 | second variable |
| knowing | list of observed variables |
Definition at line 1363 of file IBNLearner.cpp.
References G2(), and idFromName().
|
nodiscardoverridevirtualinherited |
returns the current max number of threads used by the class containing this ThreadNumberManager
Implements gum::IThreadNumberManager.
Referenced by gum::learning::IBNLearner::createParamEstimator_(), gum::learning::IBNLearner::createScore_(), gum::credal::InferenceEngine< GUM_SCALAR >::dispatchMarginalsToThreads_(), gum::credal::MultipleInferenceEngine< GUM_SCALAR, BNInferenceEngine >::expFusion_(), gum::ScheduledInference::scheduler(), and gum::credal::MultipleInferenceEngine< GUM_SCALAR, BNInferenceEngine >::verticesFusion_().
|
protected |
returns the type (as a string) of a given prior
Definition at line 689 of file IBNLearner_inl.h.
References BDEU, gum::learning::BDeuPriorType, DIRICHLET_FROM_BAYESNET, DIRICHLET_FROM_DATABASE, gum::learning::DirichletPriorType, GUM_ERROR, NO_prior, gum::learning::NoPriorType, priorType_, SMOOTHING, and gum::learning::SmoothingPriorType.
Referenced by checkScorePriorCompatibility().
| INLINE bool gum::learning::IBNLearner::greedyThickThinningReversals | ( | ) | const |
returns whether arc reversals are allowed in the thin phase of greedy thick-thinning
Definition at line 382 of file IBNLearner_inl.h.
References greedyThickThinning_.
| INLINE bool gum::learning::IBNLearner::hasMissingValues | ( | ) | const |
returns true if the learner's database has missing values
Definition at line 467 of file IBNLearner_inl.h.
References scoreDatabase_.
Referenced by rawPseudoCount().
|
overridevirtual |
| OperationNotAllowed | if scheme not performed or verbosity=false |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 949 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
| INLINE NodeId gum::learning::IBNLearner::idFromName | ( | std::string_view | var_name | ) | const |
returns the node id corresponding to a variable name
| MissingVariableInDatabase | if a variable of the BN is not found in the database. |
Definition at line 136 of file IBNLearner_inl.h.
References scoreDatabase_.
Referenced by addForbiddenArc(), addMandatoryArc(), addNoChildrenNode(), addNoParentNode(), addPossibleEdge(), chi2(), correctedMutualInformation(), domainSize(), eraseForbiddenArc(), eraseMandatoryArc(), eraseNoChildrenNode(), eraseNoParentNode(), erasePossibleEdge(), G2(), logLikelihood(), mutualInformation(), rawPseudoCount(), score(), setSliceOrder(), and setTotalOrder().
| INLINE DAG gum::learning::IBNLearner::initialDAG | ( | ) |
returns the initial DAG structure
Definition at line 166 of file IBNLearner_inl.h.
References initialDag_.
| INLINE bool gum::learning::IBNLearner::isConstraintBased | ( | ) | const |
indicate if the selected algorithm is constraint-based
Definition at line 750 of file IBNLearner_inl.h.
References EXTENDED_GREEDY_HILL_CLIMBING, FCI, GREEDY_HILL_CLIMBING, GREEDY_THICK_THINNING, K2, LOCAL_SEARCH_WITH_TABU_LIST, MIIC, PC, and selectedAlgo_.
Referenced by checkScorePriorCompatibility(), and isScoreBased().
|
staticprotected |
checks whether the extension of a CSV filename is correct
Definition at line 429 of file IBNLearner.cpp.
References GUM_ERROR.
Referenced by gum::learning::IBNLearner::Database::Database(), gum::learning::IBNLearner::Database::Database(), and readFile_().
|
overridevirtual |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 811 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
overridevirtual |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 873 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
overridevirtual |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 909 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
overridevirtual |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 842 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
nodiscardoverridevirtualinherited |
indicates whether the class containing this ThreadNumberManager set its own number of threads
Implements gum::IThreadNumberManager.
Referenced by gum::learning::IBNLearner::createParamEstimator_(), and gum::learning::IBNLearner::createScore_().
| INLINE bool gum::learning::IBNLearner::isScoreBased | ( | ) | const |
indicate if the selected algorithm is score-based
Definition at line 764 of file IBNLearner_inl.h.
References isConstraintBased().
| INLINE bool gum::learning::IBNLearner::isUsingEM | ( | ) | const |
indicates whether we use EM for parameter learning
Definition at line 433 of file IBNLearner_inl.h.
References useEM_.
| INLINE std::vector< Arc > gum::learning::IBNLearner::latentVariables | ( | ) | const |
get the list of arcs hiding latent variables
| OperationNotAllowed | when MIIC is not the selected algorithm |
Definition at line 345 of file IBNLearner_inl.h.
References algoMiic_.
| DAG gum::learning::IBNLearner::learnDAG | ( | ) |
learn a structure from a file (must have read the db before)
Definition at line 956 of file IBNLearner.cpp.
References createPrior_(), createScore_(), learnDag_(), and scoreDatabase_.
|
protected |
returns the DAG learnt
Definition at line 985 of file IBNLearner.cpp.
References gum::DAG::addArc(), gum::NodeGraphPart::addNodeWithId(), algoFCI_, algoK2_, algoMiic_, algoPC_, allowArcAdditions_, allowArcDeletions_, allowArcReversals_, allowArcTriangleDeletions_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintPossibleEdges_, constraintSliceOrder_, constraintTabuList_, constraintTotalOrder_, DIRICHLET_FROM_DATABASE, gum::ArcGraphPart::eraseArc(), gum::NodeGraphPart::exists(), EXTENDED_GREEDY_HILL_CLIMBING, extendedGreedyHillClimbing_, FCI, GREEDY_HILL_CLIMBING, GREEDY_THICK_THINNING, greedyHillClimbing_, greedyThickThinning_, GUM_ERROR, initialDag_, K2, LOCAL_SEARCH_WITH_TABU_LIST, localSearchWithTabuList_, MIIC, mutualInfo_, PC, gum::SequenceImplementation< Key, std::is_scalar< Key >::value >::pos(), prepareFCI_(), prepareMiic_(), preparePC_(), priorDatabase_, priorType_, score_, scoreDatabase_, selectedAlgo_, gum::learning::GraphChangesSelector4DiGraph< INVARIABLE_CONSTRAINT_TYPE, VARIABLE_CONSTRAINT_TYPE >::useArcAdditions(), gum::learning::GraphChangesSelector4DiGraph< INVARIABLE_CONSTRAINT_TYPE, VARIABLE_CONSTRAINT_TYPE >::useArcDeletions(), gum::learning::GraphChangesSelector4DiGraph< INVARIABLE_CONSTRAINT_TYPE, VARIABLE_CONSTRAINT_TYPE >::useArcReversals(), and gum::learning::GraphChangesSelector4DiGraph< INVARIABLE_CONSTRAINT_TYPE, VARIABLE_CONSTRAINT_TYPE >::useArcTriangleDeletions().
Referenced by learnDAG().
| PAG gum::learning::IBNLearner::learnPAG | ( | ) |
learn a PAG — only valid when useFCI() has been called
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 948 of file IBNLearner.cpp.
References learnPAG_(), and scoreDatabase_.
|
protected |
Definition at line 934 of file IBNLearner.cpp.
References algoFCI_, FCI, GUM_ERROR, prepareFCI_(), scoreDatabase_, and selectedAlgo_.
Referenced by learnPAG().
| PDAG gum::learning::IBNLearner::learnPDAG | ( | ) |
learn a partial structure from a file (must have read the db before and must have selected miic)
Definition at line 926 of file IBNLearner.cpp.
References learnPDAG_(), and scoreDatabase_.
|
protected |
Definition at line 893 of file IBNLearner.cpp.
References algoFCI_, algoMiic_, algoPC_, FCI, GUM_ERROR, MIIC, mutualInfo_, PC, prepareFCI_(), prepareMiic_(), preparePC_(), scoreDatabase_, and selectedAlgo_.
Referenced by learnPDAG().
| double gum::learning::IBNLearner::logLikelihood | ( | const std::vector< NodeId > & | vars, |
| const std::vector< NodeId > & | knowing = {} ) |
Return the loglikelihood of vars in the base, conditioned by knowing for the BNLearner.
| vars | a vector of NodeIds |
| knowing | an optional vector of conditioning NodeIds |
Definition at line 1374 of file IBNLearner.cpp.
References createPrior_(), databaseRanges(), prior_, gum::learning::ScoreLog2Likelihood::score(), and scoreDatabase_.
Referenced by logLikelihood().
| double gum::learning::IBNLearner::logLikelihood | ( | const std::vector< std::string > & | vars, |
| const std::vector< std::string > & | knowing = {} ) |
Return the loglikelihood of vars in the base, conditioned by knowing for the BNLearner.
| vars | a vector of name of rows |
| knowing | an optional vector of conditioning rows |
Definition at line 1390 of file IBNLearner.cpp.
References idFromName(), and logLikelihood().
|
overridevirtual |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 854 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
overridevirtual |
returns the timeout (in seconds)
Implements gum::IApproximationSchemeConfiguration.
Definition at line 885 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
inherited |
Returns the approximation scheme message.
Definition at line 64 of file IApproximationSchemeConfiguration.cpp.
References Continue, Epsilon, epsilon(), Limit, maxIter(), maxTime(), minEpsilonRate(), Rate, stateApproximationScheme(), Stopped, TimeLimit, and Undefined.
Referenced by gum::ApproximationScheme::continueApproximationScheme(), gum::credal::InferenceEngine< GUM_SCALAR >::getApproximationSchemeMsg(), and gum::credal::MultipleInferenceEngine< GUM_SCALAR, LazyPropagation< GUM_SCALAR > >::isEnabledMaxIter().
|
overridevirtual |
Get the value of the minimal epsilon rate.
Implements gum::IApproximationSchemeConfiguration.
Definition at line 823 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
| double gum::learning::IBNLearner::mutualInformation | ( | NodeId | id1, |
| NodeId | id2, | ||
| const std::vector< NodeId > & | knowing = {} ) |
Return the mutual information of id1 and id2 in the base, conditioned by knowing for the BNLearner.
| id1 | nodeId |
| id2 | nodeId |
| knowing | an optional vector of conditioning NodeIds |
Definition at line 1440 of file IBNLearner.cpp.
References databaseRanges(), gum::learning::CorrectedMutualInformation::score(), scoreDatabase_, and gum::learning::CorrectedMutualInformation::useNoCorr().
Referenced by mutualInformation().
| double gum::learning::IBNLearner::mutualInformation | ( | std::string_view | var1, |
| std::string_view | var2, | ||
| const std::vector< std::string > & | knowing = {} ) |
Return the mutual information of var1 and var2 in the base, conditioned by knowing for the BNLearner.
| var1 | name of a row |
| var2 | name of a row |
| knowing | an optional vector of conditioning rows |
Definition at line 1451 of file IBNLearner.cpp.
References idFromName(), and mutualInformation().
| INLINE const std::string & gum::learning::IBNLearner::nameFromId | ( | NodeId | id | ) | const |
returns the variable name corresponding to a given node id
Definition at line 141 of file IBNLearner_inl.h.
References scoreDatabase_.
| INLINE const std::vector< std::string > & gum::learning::IBNLearner::names | ( | ) | const |
returns the names of the variables in the database
Definition at line 705 of file IBNLearner_inl.h.
References scoreDatabase_.
| INLINE Size gum::learning::IBNLearner::nbCols | ( | ) | const |
Definition at line 736 of file IBNLearner_inl.h.
References scoreDatabase_.
|
overridevirtual |
| OperationNotAllowed | if scheme not performed |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 944 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
| INLINE Size gum::learning::IBNLearner::nbRows | ( | ) | const |
Definition at line 738 of file IBNLearner_inl.h.
References scoreDatabase_.
| IBNLearner & gum::learning::IBNLearner::operator= | ( | const IBNLearner & | from | ) |
copy operator
Definition at line 280 of file IBNLearner.cpp.
References IBNLearner(), algoK2_, algoMiic_, algoSimpleMiic_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintSliceOrder_, constraintTabuList_, currentAlgorithm_, dag2BN_, filename_, greedyHillClimbing_, initialDag_, kmodeMiic_, localSearchWithTabuList_, mutualInfo_, nbDecreasingChanges_, noiseEM_, gum::ThreadNumberManager::operator=(), paramEstimatorType_, prior_, priorDatabase_, priorDbname_, priorType_, priorWeight_, ranges_, score_, scoreDatabase_, scoreType_, selectedAlgo_, and useEM_.
| IBNLearner & gum::learning::IBNLearner::operator= | ( | IBNLearner && | from | ) |
move operator
Definition at line 336 of file IBNLearner.cpp.
References IBNLearner(), algoK2_, algoMiic_, algoSimpleMiic_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintSliceOrder_, constraintTabuList_, currentAlgorithm_, dag2BN_, filename_, greedyHillClimbing_, initialDag_, kmodeMiic_, localSearchWithTabuList_, mutualInfo_, nbDecreasingChanges_, noiseEM_, gum::ThreadNumberManager::operator=(), paramEstimatorType_, prior_, priorDatabase_, priorDbname_, priorType_, priorWeight_, ranges_, score_, scoreDatabase_, scoreType_, selectedAlgo_, and useEM_.
|
overridevirtual |
how many samples between 2 stopping isEnableds
| OutOfBounds | if p<1 |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 921 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
protected |
prepares the initial graph and independence test for FCI
Definition at line 803 of file IBNLearner.cpp.
References gum::DAG::addArc(), gum::DiGraph::addArc(), gum::UndiGraph::addEdge(), gum::NodeGraphPart::addNodeWithId(), algoFCI_, alphaFci_, Chi2, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintPossibleEdges_, constraintSliceOrder_, constraintTotalOrder_, gum::Set< Key >::empty(), exhaustiveSepSetFci_, indepTestFCI_, indepTestTypeFCI_, maxPathLengthFci_, gum::NodeGraphPart::nodes(), noPrior_, ranges_, and scoreDatabase_.
Referenced by learnDag_(), learnPAG_(), and learnPDAG_().
|
protected |
prepares the initial graph for miic
Definition at line 611 of file IBNLearner.cpp.
References gum::DAG::addArc(), gum::DiGraph::addArc(), gum::UndiGraph::addEdge(), gum::NodeGraphPart::addNodeWithId(), algoMiic_, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintPossibleEdges_, constraintSliceOrder_, constraintTotalOrder_, createCorrectedMutualInformation_(), gum::Set< Key >::empty(), gum::NodeGraphPart::nodes(), and scoreDatabase_.
Referenced by learnDag_(), and learnPDAG_().
|
protected |
prepares the initial graph and independence test for PC
Definition at line 710 of file IBNLearner.cpp.
References gum::DAG::addArc(), gum::DiGraph::addArc(), gum::UndiGraph::addEdge(), gum::NodeGraphPart::addNodeWithId(), algoPC_, alphaPc_, Chi2, constraintForbiddenArcs_, constraintIndegree_, constraintMandatoryArcs_, constraintNoChildrenNodes_, constraintNoParentNodes_, constraintPossibleEdges_, constraintSliceOrder_, constraintTotalOrder_, gum::Set< Key >::empty(), indepTestPC_, indepTestTypePC_, maxCondSetSizePc_, gum::NodeGraphPart::nodes(), noPrior_, ranges_, scoreDatabase_, gum::learning::CIBasedLearning::Sorted, sortedUCPc_, stablePc_, and gum::learning::CIBasedLearning::Standard.
Referenced by learnDag_(), and learnPDAG_().
|
protected |
prepares the initial graph for Simple Miic
| std::vector< double > gum::learning::IBNLearner::rawPseudoCount | ( | const std::vector< NodeId > & | vars | ) |
Return the pseudo-counts of NodeIds vars in the base in a raw array.
| vars | a vector of |
Definition at line 1481 of file IBNLearner.cpp.
References createPrior_(), databaseRanges(), gum::learning::PseudoCount::get(), GUM_ERROR, hasMissingValues(), prior_, and scoreDatabase_.
Referenced by rawPseudoCount().
| std::vector< double > gum::learning::IBNLearner::rawPseudoCount | ( | const std::vector< std::string > & | vars | ) |
Return the pseudoconts of vars in the base in a raw array.
| vars | a vector of name |
Definition at line 1496 of file IBNLearner.cpp.
References idFromName(), and rawPseudoCount().
|
staticprotected |
reads a file and returns a databaseVectInRam
Definition at line 446 of file IBNLearner.cpp.
References database(), gum::learning::IDBInitializer::fillDatabase(), gum::learning::DBTranslatorSet::insertTranslator(), isCSVFileName_(), and gum::learning::IDBInitializer::variableNames().
Referenced by gum::learning::IBNLearner::Database::Database().
| INLINE double gum::learning::IBNLearner::recordWeight | ( | const std::size_t | i | ) | const |
returns the weight of the ith record
| OutOfBounds | if i is outside the set of indices of the records |
Definition at line 156 of file IBNLearner_inl.h.
References scoreDatabase_.
Return the value of the score currently in use by the BNLearner of a variable given a set of other variables.
| var | the NodeId of the LHS variable |
| knowing | an optional vector of conditioning variables, specified by their NodeIds |
Definition at line 1463 of file IBNLearner.cpp.
References createPrior_(), createScore_(), and score_.
Referenced by score(), and useDatabaseRanges().
| double gum::learning::IBNLearner::score | ( | std::string_view | vars, |
| const std::vector< std::string > & | knowing = {} ) |
Return the value of the score currently in use by the BNLearner of a variable given a set of other variables The score used is the one currently selected in the BNLearner.
| var | the name of the variable |
| knowing | an optional vector of conditioning variables, specified by their names |
Definition at line 1470 of file IBNLearner.cpp.
References idFromName(), and score().
| INLINE void gum::learning::IBNLearner::setCurrentApproximationScheme | ( | const ApproximationScheme * | approximationScheme | ) |
{@ /// distribute signals
Definition at line 767 of file IBNLearner_inl.h.
References currentAlgorithm_.
Referenced by gum::learning::BNLearnerListener::BNLearnerListener(), distributeProgress(), and distributeStop().
| INLINE void gum::learning::IBNLearner::setDatabaseWeight | ( | const double | new_weight | ) |
assign a weight to all the rows of the learning database so that the sum of their weights is equal to new_weight
assign new weight to the rows of the learning database
Definition at line 146 of file IBNLearner_inl.h.
References scoreDatabase_.
|
overridevirtual |
Given that we approximate f(t), stopping criterion on |f(t+1)-f(t)| If the criterion was disabled it will be enabled.
| OutOfBounds | if eps<0 |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 785 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
| INLINE void gum::learning::IBNLearner::setFCIAlpha | ( | double | alpha | ) |
set the significance threshold alpha for FCI (default 0.05)
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 247 of file IBNLearner_inl.h.
References alphaFci_, FCI, GUM_ERROR, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::setFCIExhaustiveSepSet | ( | bool | exhaustive | ) |
enable exhaustive sepset mode for FCI skeleton learning (default false)
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 263 of file IBNLearner_inl.h.
References exhaustiveSepSetFci_, FCI, GUM_ERROR, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::setFCIMaxPathLength | ( | Size | max_len | ) |
set maximum discriminating-path length for FCI R4 (default Size(-1) = unlimited)
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 255 of file IBNLearner_inl.h.
References FCI, GUM_ERROR, maxPathLengthFci_, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::setForbiddenArcs | ( | const ArcSet & | set | ) |
removes a total
assign a set of forbidden arcs
Definition at line 512 of file IBNLearner_inl.h.
References constraintForbiddenArcs_.
| INLINE void gum::learning::IBNLearner::setGreedyThickThinningReversals | ( | bool | allow | ) |
enable or disable arc reversals in the thin phase of greedy thick-thinning
Definition at line 377 of file IBNLearner_inl.h.
References greedyThickThinning_.
| INLINE void gum::learning::IBNLearner::setInitialDAG | ( | const DAG & | dag | ) |
sets an initial DAG structure
Definition at line 164 of file IBNLearner_inl.h.
References initialDag_.
| INLINE void gum::learning::IBNLearner::setMandatoryArcs | ( | const ArcSet & | set | ) |
assign a set of mandatory arcs
Definition at line 545 of file IBNLearner_inl.h.
References constraintMandatoryArcs_.
| INLINE void gum::learning::IBNLearner::setMaxIndegree | ( | Size | max_indegree | ) |
sets the max indegree
Definition at line 217 of file IBNLearner_inl.h.
References constraintIndegree_.
|
overridevirtual |
stopping criterion on number of iterationsIf the criterion was disabled it will be enabled
| max | The maximum number of iterations |
| OutOfBounds | if max<=1 |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 847 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
stopping criterion on timeout If the criterion was disabled it will be enabled
| OutOfBounds | if timeout<=0.0 timeout is time in second (double). |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 878 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
Given that we approximate f(t), stopping criterion on d/dt(|f(t+1)-f(t)|) If the criterion was disabled it will be enabled.
| OutOfBounds | if rate<0 |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 816 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
sets the number max of threads that can be used
| nb | the number max of threads to be used. If this number is set to 0, then it is defaulted to aGrUM's max number of threads |
Implements gum::IThreadNumberManager.
Definition at line 741 of file IBNLearner_inl.h.
References score_, and gum::ThreadNumberManager::setNumberOfThreads().
| INLINE void gum::learning::IBNLearner::setPCAlpha | ( | double | alpha | ) |
set the significance threshold alpha for PC (default 0.05)
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 296 of file IBNLearner_inl.h.
References alphaPc_, GUM_ERROR, PC, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::setPCMaxCondSetSize | ( | Size | max_k | ) |
set maximum conditioning set size for PC (default Size(-1) = unlimited)
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 312 of file IBNLearner_inl.h.
References GUM_ERROR, maxCondSetSizePc_, PC, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::setPCStable | ( | bool | stable | ) |
set stable mode for PC — defer removals to end of each depth level (default true)
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 304 of file IBNLearner_inl.h.
References GUM_ERROR, PC, selectedAlgo_, and stablePc_.
| INLINE void gum::learning::IBNLearner::setPCUnshieldedColliderSorted | ( | bool | sorted | ) |
set unshielded-collider ordering for PC: sorted=true uses descending p-value order (strongest evidence first); sorted=false uses natural traversal order (default false)
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 321 of file IBNLearner_inl.h.
References GUM_ERROR, PC, selectedAlgo_, and sortedUCPc_.
|
overridevirtual |
how many samples between 2 stopping isEnableds
| OutOfBounds | if p<1 |
Implements gum::IApproximationSchemeConfiguration.
Definition at line 914 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
| INLINE void gum::learning::IBNLearner::setPossibleEdges | ( | const EdgeSet & | set | ) |
assign a set of possible edges
Definition at line 472 of file IBNLearner_inl.h.
References constraintPossibleEdges_.
Referenced by setPossibleSkeleton().
| INLINE void gum::learning::IBNLearner::setPossibleSkeleton | ( | const UndiGraph & | skeleton | ) |
assign a set of possible edges
Definition at line 477 of file IBNLearner_inl.h.
References gum::EdgeGraphPart::edges(), and setPossibleEdges().
| INLINE void gum::learning::IBNLearner::setRecordWeight | ( | const std::size_t | i, |
| const double | weight ) |
sets the weight of the ith record of the database
assign new weight to the ith row of the learning database
| OutOfBounds | if i is outside the set of indices of the records or if the weight is negative |
Definition at line 151 of file IBNLearner_inl.h.
References scoreDatabase_.
| INLINE void gum::learning::IBNLearner::setSliceOrder | ( | const NodeProperty< NodeId > & | slice_order | ) |
sets a partial order on the nodes
| slice_order | a NodeProperty given the rank (priority) of nodes in the partial order |
Definition at line 608 of file IBNLearner_inl.h.
References constraintSliceOrder_.
Referenced by setSliceOrder(), and unsetSliceOrder().
| INLINE void gum::learning::IBNLearner::setSliceOrder | ( | const std::vector< std::vector< std::string > > & | slices | ) |
sets a partial order on the nodes
| slices | the list of list of variable names. If it is empty, this is equivalent to removing the constraint (useful if you had previously added a slice order constraint and you do not want to use it anymore) |
Definition at line 612 of file IBNLearner_inl.h.
References idFromName(), gum::HashTable< Key, Val >::insert(), and setSliceOrder().
sets a total order over some nodes
This defines a total ordering constraint on the nodes belonging to the sequence. If you plan to use K2, do not use this constraint, prefer using method useK2(order).
Note that all the nodes of the graph to be learned need not belong to order: if a node does not belong to it, then it just means that there is no constraint on this node in the total ordering.
Note also that you can both exploit a total ordering and slice ordering. For instance, we may wish that the topological ordering of the graph we learn satisfies that 1 < 3 < 4 < 5 and 2 < 3, 4 and 5, then use a total ordering 1 < 3 < 4 < 5 combined with a slice ordering {2} < {3,4,5}.
| order |
Definition at line 627 of file IBNLearner_inl.h.
References constraintTotalOrder_.
Referenced by setTotalOrder(), and unsetTotalOrder().
| INLINE void gum::learning::IBNLearner::setTotalOrder | ( | const std::vector< std::string > & | order | ) |
sets the max indegree
Definition at line 632 of file IBNLearner_inl.h.
References idFromName(), gum::SequenceImplementation< Key, std::is_scalar< Key >::value >::insert(), and setTotalOrder().
|
overridevirtual |
verbosity
Implements gum::IApproximationSchemeConfiguration.
Definition at line 926 of file IBNLearner_inl.h.
References algoK2_, dag2BN_, greedyHillClimbing_, and localSearchWithTabuList_.
|
overridevirtual |
history
Implements gum::IApproximationSchemeConfiguration.
Definition at line 939 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
| INLINE void gum::learning::IBNLearner::unsetSliceOrder | ( | ) |
removes the slice order constraint
The methd is useful if you had previously added a slice order constraint and you do not want to use it anymore
Definition at line 624 of file IBNLearner_inl.h.
References setSliceOrder().
| INLINE void gum::learning::IBNLearner::unsetTotalOrder | ( | ) |
removes the current total ordering constraint, if any
Definition at line 641 of file IBNLearner_inl.h.
References setTotalOrder().
| INLINE void gum::learning::IBNLearner::useBDeuPrior | ( | double | weight = 1.0 | ) |
use the BDeu prior
The BDeu prior adds weight to all the cells of the counts tables. In other words, it adds weight rows in the database with equally probable values.
Definition at line 679 of file IBNLearner_inl.h.
References _setPriorWeight_(), BDEU, checkScorePriorCompatibility(), GUM_ERROR, and priorType_.
| INLINE void gum::learning::IBNLearner::useChi2Test | ( | ) |
indicate that we wish to use Chi2 independence test for PC
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 280 of file IBNLearner_inl.h.
References Chi2, GUM_ERROR, indepTestTypePC_, PC, and selectedAlgo_.
| std::pair< std::size_t, std::size_t > gum::learning::IBNLearner::useCrossValidationFold | ( | const std::size_t | learning_fold, |
| const std::size_t | k_fold ) |
sets the ranges of rows to be used for cross-validation learning
When applied on (x,k), the method indicates to the subsequent learnings that they should be performed on the xth fold in a k-fold cross-validation context. For instance, if a database has 1000 rows, and if we perform a 10-fold cross-validation, then, the first learning fold (learning_fold=0) corresponds to rows interval [100,1000) and the test dataset corresponds to [0,100). The second learning fold (learning_fold=1) is [0,100) U [200,1000) and the corresponding test dataset is [100,200).
| learning_fold | a number indicating the set of rows used for learning. If N denotes the size of the database, and k_fold represents the number of folds in the cross validation, then the set of rows used for testing is [learning_fold * N / k_fold, (learning_fold+1) * N / k_fold) and the learning database is the complement in the database |
| k_fold | the value of "k" in k-fold cross validation |
| OutOfBounds | is raised if k_fold is equal to 0 or learning_fold is greater than or eqal to k_fold, or if k_fold is greater than or equal to the size of the database. |
Definition at line 1299 of file IBNLearner.cpp.
References GUM_ERROR, ranges_, and scoreDatabase_.
| void gum::learning::IBNLearner::useDatabaseRanges | ( | const std::vector< std::pair< std::size_t, std::size_t > > & | new_ranges | ) |
use a new set of database rows' ranges to perform learning
| ranges | a set of pairs {(X1,Y1),...,(Xn,Yn)} of database's rows indices. The subsequent learnings are then performed only on the union of the rows [Xi,Yi), i in {1,...,n}. This is useful, e.g, when performing cross validation tasks, in which part of the database should be ignored. An empty set of ranges is equivalent to an interval [X,Y) ranging over the whole database. |
Definition at line 1506 of file IBNLearner.cpp.
References noPrior_, ranges_, score(), and scoreDatabase_.
| INLINE void gum::learning::IBNLearner::useDirichletPrior | ( | std::string_view | filename, |
| double | weight = 1 ) |
use the Dirichlet prior from a database
Definition at line 668 of file IBNLearner_inl.h.
References _setPriorWeight_(), checkScorePriorCompatibility(), DIRICHLET_FROM_DATABASE, GUM_ERROR, priorDbname_, and priorType_.
| INLINE void gum::learning::IBNLearner::useEM | ( | const double | epsilon, |
| const double | noise = default_EM_noise ) |
use The EM algorithm to learn parameters
| epsilon | sets the approximation stopping criterion: EM stops whenever the absolute value of the relative difference between two consecutive log-likelihoods drops below epsilon. Note that epsilon=0 is considered as a directive to not use EM. However, if you wish to forbid the use of EM, prefer executing Method forbidEM() rather than useEM(0) as it is more unequivocal. |
| noise | When EM starts, it initializes all the CPTs of the Bayes net. EM adds a noise to these CPTs by mixing their values with some random noise. The formula used is, up to some normalizing constant: new_cpt = (1-noise) * cpt + noise * random_cpt(). Of course, noise must belong to interval [0,1]. |
| OutOfBounds | is raised if epsilon is strictly negative or if noise does not belong to interval [0,1]. |
Definition at line 395 of file IBNLearner_inl.h.
References dag2BN_, epsilon(), GUM_ERROR, noiseEM_, and useEM_.
Referenced by useEMWithRateCriterion().
| INLINE void gum::learning::IBNLearner::useEMWithDiffCriterion | ( | const double | epsilon, |
| const double | noise = default_EM_noise ) |
use The EM algorithm to learn parameters with the diff stopping criterion
use The EM algorithm to learn parameters with the diff stoppîng criterion
| epsilon | epsilon sets the approximation stopping criterion: EM stops whenever the difference between two consecutive log-likelihoods drops below epsilon. Note that, for using EM, epsilon should be strictly positive. |
| noise | When EM starts, it initializes all the CPTs of the Bayes net. EM adds a noise to these CPTs by mixing their values with some random noise. The formula used is, up to some normalizing constant: new_cpt = (1-noise) * cpt + noise * random_cpt(). Of course, noise must belong to interval [0,1]. |
| OutOfBounds | is raised if epsilon is not strictly positive or if noise does not belong to interval [0,1]. |
Definition at line 418 of file IBNLearner_inl.h.
References dag2BN_, epsilon(), GUM_ERROR, noiseEM_, and useEM_.
| INLINE void gum::learning::IBNLearner::useEMWithRateCriterion | ( | const double | epsilon, |
| const double | noise = default_EM_noise ) |
use The EM algorithm to learn parameters with the rate stopping criterion
| epsilon | epsilon sets the approximation stopping criterion: EM stops whenever the absolute value of the relative difference between two consecutive log-likelihoods drops below epsilon. Note that, for using EM, epsilon should be strictly positive. |
| noise | When EM starts, it initializes all the CPTs of the Bayes net. EM adds a noise to these CPTs by mixing their values with some random noise. The formula used is, up to some normalizing constant: new_cpt = (1-noise) * cpt + noise * random_cpt(). Of course, noise must belong to interval [0,1]. |
| OutOfBounds | is raised if epsilon is not strictly positive or if noise does not belong to interval [0,1]. |
Definition at line 411 of file IBNLearner_inl.h.
References epsilon(), GUM_ERROR, and useEM().
| INLINE void gum::learning::IBNLearner::useExtendedGreedyHillClimbing | ( | ) |
indicate that we wish to use the extended greedy hill climbing algorithm
The extended greedy hill climbing adds to the classical operations (arc addition, arc reversal, arc deletion) two additional operations: arc triangle deletion1 and arc triangle deletion2. The former modifies a structure X1->X2->X3 + X1->X3 into a v-structure centered on X1, i.e., X2->X1<-X3. Arc triangle deletion2 modifies structure X1->X2->X3 + X1->X3 into a v-structure centered on X2, i.e., X1->X2<-X3.
In addition, the extended greedy hill climbing allows the user to select which operations among arc additions, arc reversals, arc deletions, arc triangle deletions, are allowed.
Definition at line 367 of file IBNLearner_inl.h.
References EXTENDED_GREEDY_HILL_CLIMBING, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useFCI | ( | ) |
indicate that we wish to use FCI (Chi2 test by default)
Definition at line 228 of file IBNLearner_inl.h.
References FCI, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useFCIChi2Test | ( | ) |
indicate that we wish to use Chi2 independence test for FCI
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 231 of file IBNLearner_inl.h.
References Chi2, FCI, GUM_ERROR, indepTestTypeFCI_, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useFCIG2Test | ( | ) |
indicate that we wish to use G2 independence test for FCI
| OperationNotAllowed | when FCI is not the selected algorithm |
Definition at line 239 of file IBNLearner_inl.h.
References FCI, G2, GUM_ERROR, indepTestTypeFCI_, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useG2Test | ( | ) |
indicate that we wish to use G2 independence test for PC
| OperationNotAllowed | when PC is not the selected algorithm |
Definition at line 288 of file IBNLearner_inl.h.
References G2, GUM_ERROR, indepTestTypePC_, PC, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useGreedyHillClimbing | ( | ) |
indicate that we wish to use a greedy hill climbing algorithm
Definition at line 362 of file IBNLearner_inl.h.
References GREEDY_HILL_CLIMBING, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useGreedyThickThinning | ( | ) |
indicate that we wish to use greedy thick-thinning
Definition at line 372 of file IBNLearner_inl.h.
References GREEDY_THICK_THINNING, and selectedAlgo_.
indicate that we wish to use K2
Definition at line 350 of file IBNLearner_inl.h.
References algoK2_, K2, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useK2 | ( | const std::vector< NodeId > & | order | ) |
indicate that we wish to use K2
Definition at line 356 of file IBNLearner_inl.h.
References algoK2_, K2, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useLocalSearchWithTabuList | ( | Size | tabu_size = 100, |
| Size | nb_decrease = 2 ) |
indicate that we wish to use a local search with tabu list
| tabu_size | indicate the size of the tabu list |
| nb_decrease | indicate the max number of changes decreasing the score consecutively that we allow to apply |
Definition at line 387 of file IBNLearner_inl.h.
References constraintTabuList_, LOCAL_SEARCH_WITH_TABU_LIST, localSearchWithTabuList_, nbDecreasingChanges_, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useMDLCorrection | ( | ) |
indicate that we wish to use the MDL correction for MIIC
| OperationNotAllowed | when MIIC is not the selected algorithm |
Definition at line 335 of file IBNLearner_inl.h.
References kmodeMiic_, and gum::learning::CorrectedMutualInformation::MDL.
| INLINE void gum::learning::IBNLearner::useMIIC | ( | ) |
indicate that we wish to use MIIC
Definition at line 222 of file IBNLearner_inl.h.
References MIIC, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useNMLCorrection | ( | ) |
indicate that we wish to use the NML correction for and MIIC
indicate that we wish to use the NML correction for MIIC
| OperationNotAllowed | when MIIC is not the selected algorithm |
Definition at line 330 of file IBNLearner_inl.h.
References kmodeMiic_, and gum::learning::CorrectedMutualInformation::NML.
| INLINE void gum::learning::IBNLearner::useNoCorrection | ( | ) |
indicate that we wish to use the NoCorr correction for MIIC
| OperationNotAllowed | when MIIC is not the selected algorithm |
Definition at line 340 of file IBNLearner_inl.h.
References kmodeMiic_, and gum::learning::CorrectedMutualInformation::NoCorr.
| INLINE void gum::learning::IBNLearner::useNoPrior | ( | ) |
use no prior
Definition at line 652 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), NO_prior, and priorType_.
| INLINE void gum::learning::IBNLearner::usePC | ( | ) |
indicate that we wish to use PC (Chi2 test by default)
Definition at line 225 of file IBNLearner_inl.h.
References PC, and selectedAlgo_.
| INLINE void gum::learning::IBNLearner::useScoreAIC | ( | ) |
indicate that we wish to use an AIC score
Definition at line 169 of file IBNLearner_inl.h.
References AIC, checkScorePriorCompatibility(), and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreBD | ( | ) |
indicate that we wish to use a BD score
Definition at line 175 of file IBNLearner_inl.h.
References BD, checkScorePriorCompatibility(), and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreBDeu | ( | ) |
indicate that we wish to use a BDeu score
Definition at line 181 of file IBNLearner_inl.h.
References BDeu, checkScorePriorCompatibility(), and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreBIC | ( | ) |
indicate that we wish to use a BIC score
Definition at line 187 of file IBNLearner_inl.h.
References BIC, checkScorePriorCompatibility(), and scoreType_.
| INLINE void gum::learning::IBNLearner::useScorefNML | ( | ) |
indicate that we wish to use a fNML score
Definition at line 193 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), fNML, and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreK2 | ( | ) |
indicate that we wish to use a K2 score
Definition at line 199 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), K2, and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreLog2Likelihood | ( | ) |
indicate that we wish to use a Log2Likelihood score
Definition at line 205 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), LOG2LIKELIHOOD, and scoreType_.
| INLINE void gum::learning::IBNLearner::useScoreMDL | ( | ) |
indicate that we wish to use a MDL score
Definition at line 211 of file IBNLearner_inl.h.
References checkScorePriorCompatibility(), MDL, and scoreType_.
| INLINE void gum::learning::IBNLearner::useSmoothingPrior | ( | double | weight = 1 | ) |
use the prior smoothing
| weight | pass in argument a weight if you wish to assign a weight to the smoothing, else the current weight of the IBNLearner will be used. |
Definition at line 658 of file IBNLearner_inl.h.
References _setPriorWeight_(), checkScorePriorCompatibility(), GUM_ERROR, priorType_, and SMOOTHING.
|
overridevirtual |
verbosity
Implements gum::IApproximationSchemeConfiguration.
Definition at line 933 of file IBNLearner_inl.h.
References currentAlgorithm_, and GUM_ERROR.
|
privateinherited |
the max number of threads used by the class
Definition at line 126 of file threadNumberManager.h.
|
protected |
the FCI algorithm
Definition at line 1222 of file IBNLearner.h.
Referenced by learnDag_(), learnPAG_(), learnPDAG_(), and prepareFCI_().
|
protected |
the K2 algorithm
Definition at line 1193 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), disableEpsilon(), disableMaxIter(), disableMaxTime(), disableMinEpsilonRate(), enableEpsilon(), enableMaxIter(), enableMaxTime(), enableMinEpsilonRate(), learnDag_(), operator=(), operator=(), setEpsilon(), setMaxIter(), setMaxTime(), setMinEpsilonRate(), setPeriodSize(), setVerbosity(), useK2(), and useK2().
|
protected |
the Constraint MIIC algorithm
Definition at line 1199 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), latentVariables(), learnDag_(), learnPDAG_(), operator=(), operator=(), and prepareMiic_().
|
protected |
the PC algorithm
Definition at line 1206 of file IBNLearner.h.
Referenced by learnDag_(), learnPDAG_(), and preparePC_().
|
protected |
the MIIC algorithm
Definition at line 1196 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), operator=(), and operator=().
|
protected |
whether we allow or not arc additions during learning
Definition at line 1181 of file IBNLearner.h.
Referenced by allowArcAdditions(), and learnDag_().
|
protected |
whether we allow or not arc deletions during learning
Definition at line 1184 of file IBNLearner.h.
Referenced by allowArcDeletions(), and learnDag_().
|
protected |
whether we allow or not arc reversals during learning
Definition at line 1187 of file IBNLearner.h.
Referenced by allowArcReversals(), and learnDag_().
|
protected |
whether we allow or not arc deletions during learning
Definition at line 1190 of file IBNLearner.h.
Referenced by allowArcTriangleDeletions(), and learnDag_().
|
protected |
FCI parameters.
Definition at line 1231 of file IBNLearner.h.
Referenced by prepareFCI_(), and setFCIAlpha().
|
protected |
PC parameters.
Definition at line 1216 of file IBNLearner.h.
Referenced by preparePC_(), and setPCAlpha().
|
protected |
the constraint on forbidden arcs
Definition at line 1163 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), addForbiddenArc(), eraseForbiddenArc(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), preparePC_(), and setForbiddenArcs().
|
protected |
the constraint for indegrees
Definition at line 1157 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), preparePC_(), and setMaxIndegree().
|
protected |
the constraint on mandatory arcs
Definition at line 1169 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), addMandatoryArc(), eraseMandatoryArc(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), preparePC_(), and setMandatoryArcs().
|
protected |
the constraint on no children nodes
Definition at line 1175 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), addNoChildrenNode(), eraseNoChildrenNode(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), and preparePC_().
|
protected |
the constraint on no parent nodes
Definition at line 1172 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), addNoParentNode(), eraseNoParentNode(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), and preparePC_().
|
protected |
the constraint on possible Edges
Definition at line 1166 of file IBNLearner.h.
Referenced by addPossibleEdge(), erasePossibleEdge(), learnDag_(), prepareFCI_(), prepareMiic_(), preparePC_(), and setPossibleEdges().
|
protected |
the constraint for 2TBNs
Definition at line 1151 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), learnDag_(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), preparePC_(), and setSliceOrder().
|
protected |
the constraint for tabu lists
Definition at line 1160 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), learnDag_(), operator=(), operator=(), and useLocalSearchWithTabuList().
|
protected |
the total order ing constraint
Definition at line 1154 of file IBNLearner.h.
Referenced by learnDag_(), prepareFCI_(), prepareMiic_(), preparePC_(), and setTotalOrder().
|
protected |
Definition at line 1272 of file IBNLearner.h.
Referenced by currentTime(), epsilon(), history(), isEnabledEpsilon(), isEnabledMaxIter(), isEnabledMaxTime(), isEnabledMinEpsilonRate(), maxIter(), maxTime(), minEpsilonRate(), nbrIterations(), operator=(), operator=(), periodSize(), setCurrentApproximationScheme(), stateApproximationScheme(), and verbosity().
|
protected |
the parametric EM
Definition at line 1236 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), disableEpsilon(), disableMaxIter(), disableMaxTime(), disableMinEpsilonRate(), EM(), EMCurrentTime(), EMdisableEpsilon(), EMdisableMaxIter(), EMdisableMaxTime(), EMdisableMinEpsilonRate(), EMenableEpsilon(), EMenableMaxIter(), EMenableMaxTime(), EMenableMinEpsilonRate(), EMEpsilon(), EMHistory(), EMisEnabledEpsilon(), EMisEnabledMaxIter(), EMisEnabledMaxTime(), EMisEnabledMinEpsilonRate(), EMMaxIter(), EMMaxTime(), EMMinEpsilonRate(), EMnbrIterations(), EMPeriodSize(), EMsetEpsilon(), EMsetMaxIter(), EMsetMaxTime(), EMsetMinEpsilonRate(), EMsetPeriodSize(), EMsetVerbosity(), EMState(), EMStateApproximationScheme(), EMStateMessage(), EMVerbosity(), enableEpsilon(), enableMaxIter(), enableMaxTime(), enableMinEpsilonRate(), operator=(), operator=(), setEpsilon(), setMaxIter(), setMaxTime(), setMinEpsilonRate(), setPeriodSize(), setVerbosity(), useEM(), and useEMWithDiffCriterion().
|
staticconstexpr |
the default noise amount added to CPTs during EM's initialization (see method useEM())
Definition at line 135 of file IBNLearner.h.
Referenced by gum::learning::BNLearner< GUM_SCALAR >::useEM(), gum::learning::BNLearner< GUM_SCALAR >::useEMWithDiffCriterion(), and gum::learning::BNLearner< GUM_SCALAR >::useEMWithRateCriterion().
|
protected |
Definition at line 1233 of file IBNLearner.h.
Referenced by fciExhaustiveSepSet(), prepareFCI_(), and setFCIExhaustiveSepSet().
|
protected |
the extended greedy hill climbing
Definition at line 1242 of file IBNLearner.h.
Referenced by learnDag_().
|
protected |
the filename database
Definition at line 1266 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), operator=(), and operator=().
|
protected |
the greedy hill climbing algorithm
Definition at line 1239 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), disableEpsilon(), disableMaxIter(), disableMaxTime(), disableMinEpsilonRate(), enableEpsilon(), enableMaxIter(), enableMaxTime(), enableMinEpsilonRate(), learnDag_(), operator=(), operator=(), setEpsilon(), setMaxIter(), setMaxTime(), setMinEpsilonRate(), setPeriodSize(), and setVerbosity().
|
protected |
the greedy thick-thinning algorithm
Definition at line 1245 of file IBNLearner.h.
Referenced by greedyThickThinningReversals(), learnDag_(), and setGreedyThickThinningReversals().
|
protected |
owned independence test object for FCI (rebuilt before each learn call)
Definition at line 1228 of file IBNLearner.h.
Referenced by ~IBNLearner(), and prepareFCI_().
|
protected |
owned independence test object for PC (rebuilt before each learn call)
Definition at line 1213 of file IBNLearner.h.
Referenced by ~IBNLearner(), and preparePC_().
|
protected |
independence test type for FCI (reuses IndepTestType defined above)
Definition at line 1225 of file IBNLearner.h.
Referenced by prepareFCI_(), useFCIChi2Test(), and useFCIG2Test().
|
protected |
Definition at line 1210 of file IBNLearner.h.
Referenced by preparePC_(), useChi2Test(), and useG2Test().
|
protected |
the policy for typing variables
Definition at line 1119 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), IBNLearner(), and IBNLearner().
|
protected |
an initial DAG given to learners
Definition at line 1263 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), initialDAG(), learnDag_(), operator=(), operator=(), and setInitialDAG().
|
protected |
the penalty used in MIIC
Definition at line 1202 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), correctedMutualInformation(), createCorrectedMutualInformation_(), operator=(), operator=(), useMDLCorrection(), useNMLCorrection(), and useNoCorrection().
|
protected |
the local search with tabu list algorithm
Definition at line 1248 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), disableEpsilon(), disableMaxIter(), disableMaxTime(), disableMinEpsilonRate(), enableEpsilon(), enableMaxIter(), enableMaxTime(), enableMinEpsilonRate(), learnDag_(), operator=(), operator=(), setEpsilon(), setMaxIter(), setMaxTime(), setMinEpsilonRate(), setPeriodSize(), setVerbosity(), and useLocalSearchWithTabuList().
Definition at line 1218 of file IBNLearner.h.
Referenced by preparePC_(), and setPCMaxCondSetSize().
Definition at line 1232 of file IBNLearner.h.
Referenced by prepareFCI_(), and setFCIMaxPathLength().
|
protected |
the selected correction for miic
Definition at line 1137 of file IBNLearner.h.
Referenced by ~IBNLearner(), createCorrectedMutualInformation_(), learnDag_(), learnPDAG_(), operator=(), and operator=().
|
protected |
Definition at line 1269 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), operator=(), operator=(), and useLocalSearchWithTabuList().
|
protected |
the noise factor (in (0,1)) used by EM for perturbing the CPT during init
Definition at line 1134 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), operator=(), operator=(), useEM(), and useEMWithDiffCriterion().
|
protected |
Definition at line 1145 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), ~IBNLearner(), createCorrectedMutualInformation_(), createParamEstimator_(), prepareFCI_(), preparePC_(), and useDatabaseRanges().
Progression, error and time.
Definition at line 81 of file IApproximationSchemeConfiguration.h.
Referenced by gum::ApproximationScheme::continueApproximationScheme(), gum::learning::IBNLearner::distributeProgress(), gum::learning::Miic::initiation_(), gum::learning::SimpleMiic::initiation_(), gum::learning::Miic::iteration_(), gum::learning::SimpleMiic::iteration_(), gum::learning::SimpleMiic::orientationLatents_(), gum::learning::Miic::orientationMiic_(), and gum::learning::SimpleMiic::orientationMiic_().
|
inherited |
Criteria messageApproximationScheme.
Definition at line 84 of file IApproximationSchemeConfiguration.h.
Referenced by gum::learning::IBNLearner::distributeStop().
|
protected |
the type of the parameter estimator
Definition at line 1128 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), createParamEstimator_(), operator=(), and operator=().
|
protected |
the prior used
Definition at line 1143 of file IBNLearner.h.
Referenced by ~IBNLearner(), chi2(), correctedMutualInformation(), createParamEstimator_(), createScore_(), G2(), logLikelihood(), operator=(), operator=(), and rawPseudoCount().
|
protected |
the database used by the Dirichlet a priori
Definition at line 1257 of file IBNLearner.h.
Referenced by ~IBNLearner(), learnDag_(), operator=(), and operator=().
|
protected |
the filename for the Dirichlet a priori, if any
Definition at line 1260 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), operator=(), operator=(), and useDirichletPrior().
|
protected |
the a priorselected for the score and parameters
Definition at line 1140 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), getPriorType_(), learnDag_(), operator=(), operator=(), useBDeuPrior(), useDirichletPrior(), useNoPrior(), and useSmoothingPrior().
|
protected |
the weight of the prior
Definition at line 1148 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), _setPriorWeight_(), checkScorePriorCompatibility(), operator=(), and operator=().
|
protected |
the set of rows' ranges within the database in which learning is done
Definition at line 1254 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), clearDatabaseRanges(), createCorrectedMutualInformation_(), createParamEstimator_(), createScore_(), databaseRanges(), operator=(), operator=(), prepareFCI_(), preparePC_(), useCrossValidationFold(), and useDatabaseRanges().
|
protected |
the score used
Definition at line 1125 of file IBNLearner.h.
Referenced by ~IBNLearner(), createParamEstimator_(), createScore_(), learnDag_(), operator=(), operator=(), score(), and setNumberOfThreads().
|
protected |
the database to be used by the scores and parameter estimators
Definition at line 1251 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), IBNLearner(), chi2(), correctedMutualInformation(), createCorrectedMutualInformation_(), createParamEstimator_(), createScore_(), database(), databaseWeight(), domainSize(), domainSize(), domainSizes(), G2(), hasMissingValues(), idFromName(), learnDAG(), learnDag_(), learnPAG(), learnPAG_(), learnPDAG(), learnPDAG_(), logLikelihood(), mutualInformation(), nameFromId(), names(), nbCols(), nbRows(), operator=(), operator=(), prepareFCI_(), prepareMiic_(), preparePC_(), rawPseudoCount(), recordWeight(), setDatabaseWeight(), setRecordWeight(), useCrossValidationFold(), and useDatabaseRanges().
|
protected |
the score selected for learning
Definition at line 1122 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), checkScorePriorCompatibility(), createScore_(), operator=(), operator=(), useScoreAIC(), useScoreBD(), useScoreBDeu(), useScoreBIC(), useScorefNML(), useScoreK2(), useScoreLog2Likelihood(), and useScoreMDL().
|
protected |
the selected learning algorithm
Definition at line 1178 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), fciExhaustiveSepSet(), isConstraintBased(), learnDag_(), learnPAG_(), learnPDAG_(), operator=(), operator=(), setFCIAlpha(), setFCIExhaustiveSepSet(), setFCIMaxPathLength(), setPCAlpha(), setPCMaxCondSetSize(), setPCStable(), setPCUnshieldedColliderSorted(), useChi2Test(), useExtendedGreedyHillClimbing(), useFCI(), useFCIChi2Test(), useFCIG2Test(), useG2Test(), useGreedyHillClimbing(), useGreedyThickThinning(), useK2(), useK2(), useLocalSearchWithTabuList(), useMIIC(), and usePC().
|
protected |
Definition at line 1219 of file IBNLearner.h.
Referenced by preparePC_(), and setPCUnshieldedColliderSorted().
|
protected |
Definition at line 1217 of file IBNLearner.h.
Referenced by preparePC_(), and setPCStable().
|
protected |
a Boolean indicating whether we should use EM for parameter learning or not
Definition at line 1131 of file IBNLearner.h.
Referenced by IBNLearner(), IBNLearner(), EM(), EMState(), EMStateMessage(), forbidEM(), isUsingEM(), operator=(), operator=(), useEM(), and useEMWithDiffCriterion().