aGrUM  0.16.0
gum::learning Namespace Reference

Classes

struct  __GraphChangesGenerator4K2
 
class  Apriori
 the base class for all a priori More...
 
class  AprioriBDeu
 the internal apriori for the BDeu score (N' / (r_i * q_i)BDeu is a BD score with a N'/(r_i * q_i) apriori, where N' is an effective sample size and r_i is the domain size of the target variable and q_i is the domain size of the Cartesian product of its parents. More...
 
struct  AprioriBDeuType
 
class  AprioriDirichletFromDatabase
 A dirichlet priori: computes its N'_ijk from a database. More...
 
struct  AprioriDirichletType
 
class  AprioriK2
 the internal apriori for the K2 score = Laplace AprioriK2 is a BD score with a Laplace apriori (i.e., a smoothing of 1). More...
 
class  AprioriNoApriori
 the no a priori class: corresponds to 0 weight-sample More...
 
struct  AprioriNoAprioriType
 
class  AprioriSmoothing
 the smooth a priori: adds a weight w to all the countings More...
 
struct  AprioriSmoothingType
 
class  ArcAddition
 The class for notifying learning algorithms of new arc additionsThis class is convenient to know at compile time which graph change we are dealing with. More...
 
class  ArcDeletion
 The class for notifying learning algorithms of arc removalsThis class is convenient to know at compile time which graph change we are dealing with. More...
 
class  ArcReversal
 The class for notifying learning algorithms of arc reversalsThis class is convenient to know at compile time which graph change we are dealing with. More...
 
class  BNDatabaseGenerator
 
class  BNLearner
 A pack of learning algorithms that can easily be used. More...
 
class  BNLearnerListener
 A class that redirects gum_signal from algorithms to the listeners of BNLearn. More...
 
class  CorrectedMutualInformation
 The class computing n times the corrected mutual information, as used in the 3off2 algorithm. More...
 
class  CSVParser
 Class for fast parsing of CSV file (never more than one line in application memory) More...
 
class  DAG2BNLearner
 A class that, given a structure and a parameter estimator returns a full Bayes net. More...
 
class  DatabaseTable
 The class representing a tabular database as used by learning tasks. More...
 
class  DBCell
 The class representing the original values of the cells of databases. More...
 
class  DBHandler
 The base class for all database handlers. More...
 
class  DBInitializerFromCSV
 The class for initializing DatabaseTable and RawDatabaseTable instances from CSV files. More...
 
class  DBInitializerFromSQL
 The class for initializing DatabaseTable and RawDatabaseTable instances from SQL databases. More...
 
class  DBRow
 The class for storing a record in a database. More...
 
class  DBRowGenerator
 The base class for all DBRow generators. More...
 
class  DBRowGenerator4CompleteRows
 A DBRowGenerator class that returns the rows that are complete (fully observed) w.r.t. More...
 
class  DBRowGeneratorEM
 A DBRowGenerator class that returns incomplete rows as EM would do. More...
 
class  DBRowGeneratorIdentity
 A DBRowGenerator class that returns exactly the rows it gets in input. More...
 
class  DBRowGeneratorParser
 the class used to read a row in the database and to transform it into a set of DBRow instances that can be used for learning. More...
 
class  DBRowGeneratorSet
 The class used to pack sets of generators. More...
 
class  DBRowGeneratorWithBN
 Base class for DBRowGenerator classes that use a BN for computing their outputs. More...
 
union  DBTranslatedValue
 The union class for storing the translated values in learning databases. More...
 
class  DBTranslator
 The base class for all the tabular database cell translators. More...
 
class  DBTranslator4ContinuousVariable
 The databases' cell translators for continuous variables. More...
 
class  DBTranslator4DiscretizedVariable
 The databases' cell translators for discretized variables. More...
 
class  DBTranslator4LabelizedVariable
 The databases' cell translators for labelized variables. More...
 
class  DBTranslator4RangeVariable
 The databases' cell translators for range variables. More...
 
class  DBTranslatorSet
 the class for packing together the translators used to preprocess the datasets More...
 
class  EdgeAddition
 The class for notifying learning algorithms of new edge additionsThis class is convenient to know at compile time which graph change we are dealing with. More...
 
class  EdgeDeletion
 The class for notifying learning algorithms of edge removalsThis class is convenient to know at compile time which graph change we are dealing with. More...
 
class  genericBNLearner
 A pack of learning algorithms that can easily be used. More...
 
class  GraphChange
 
class  GraphChangesGenerator4DiGraph
 The basic class for computing the next graph changes possible in a structure learning algorithm. More...
 
class  GraphChangesGenerator4K2
 The basic class for computing the next graph changes possible in a structure learning algorithm. More...
 
class  GraphChangesGenerator4UndiGraph
 The basic class for computing the next graph changes possible in an undirected structure learning algorithm. More...
 
class  GraphChangesGeneratorOnSubDiGraph
 The basic class for computing the next graph changes possible in a structure learning algorithm. More...
 
class  GraphChangesSelector4DiGraph
 The mecanism to compute the next available graph changes for directed structure learning search algorithms. More...
 
class  GreaterAbsPairOn2nd
 
class  GreaterPairOn2nd
 
class  GreaterTupleOnLast
 
class  GreedyHillClimbing
 The greedy hill climbing learning algorithm (for directed graphs) More...
 
class  IDatabaseTable
 The common class for the tabular database tables. More...
 
struct  IDatabaseTableInsert4DBCell
 
struct  IDatabaseTableInsert4DBCell< ALLOC, false >
 
struct  IDatabaseTableInsert4DBCell< ALLOC, true >
 
class  IDBInitializer
 The base class for initializing DatabaseTable and RawDatabaseTable instances from CSV files or SQL databases. More...
 
class  IdSet
 A class for storing a pair of sets of NodeIds, the second one corresponding to a conditional set. More...
 
class  IdSetIterator
 The iterators for IdSets. More...
 
class  IGraphChangesGenerator4DiGraph
 
class  IGraphChangesGenerator4UndiGraph
 
class  IndependenceTest
 The base class for all the independence tests used for learning. More...
 
class  IndepTestChi2
 the class for computing Chi2 independence test scores More...
 
class  IndepTestG2
 the class for computing G2 independence test scores More...
 
class  K2
 The K2 algorithm. More...
 
class  KNML
 the class for computing the NML penalty used by 3off2 More...
 
class  LocalSearchWithTabuList
 The local search with tabu list learning algorithm (for directed graphs) More...
 
class  Miic
 The miic learning algorithm. More...
 
class  NanodbcParser
 Class for parsing SQL results using Nanodbc. More...
 
class  ParamEstimator
 The base class for estimating parameters of CPTs. More...
 
class  ParamEstimatorML
 The class for estimating parameters of CPTs using Maximum Likelihood. More...
 
class  RawDatabaseTable
 The table containing the raw/original data of a databaseClass RawDatabaseTable is intended to store in RAM the raw/original data of a database. More...
 
class  RecordCounter
 The class that computes countings of observations from the database. More...
 
class  Score
 The base class for all the scores used for learning (BIC, BDeu, etc) More...
 
class  ScoreAIC
 the class for computing AIC scores More...
 
class  ScoreBD
 the class for computing Bayesian Dirichlet (BD) log2 scores More...
 
class  ScoreBDeu
 the class for computing BDeu scores More...
 
class  ScoreBIC
 the class for computing BIC scores More...
 
class  ScorefNML
 the class for computing fNML scores More...
 
class  ScoreK2
 the class for computing K2 scores (actually their log2 value) More...
 
class  ScoreLog2Likelihood
 the class for computing Log2-likelihood scores More...
 
class  ScoringCache
 a cache for caching scores and independence tests resultsCaching previously computed scores or the results of conditional independence tests is very important for learning algorithms because computing a score or an independence test requires parsing the database and this is the most time consuming operation in learning. More...
 
class  StructuralConstraintDAG
 The base class for structural constraints imposed by DAGs. More...
 
class  StructuralConstraintDiGraph
 The base class for structural constraints used by learning algorithms that learn a directed graph structure. More...
 
class  StructuralConstraintEmpty
 the base class for all structural constraints More...
 
class  StructuralConstraintForbiddenArcs
 the structural constraint for forbidding the creation of some arcs during structure learning More...
 
class  StructuralConstraintIndegree
 the class for structural constraints limiting the number of parents of nodes in a directed graph More...
 
class  StructuralConstraintMandatoryArcs
 the structural constraint indicating that some arcs shall never be removed or reversed More...
 
class  StructuralConstraintPossibleEdges
 the structural constraint for forbidding the creation of some arcs except those defined in the class during structure learning More...
 
class  StructuralConstraintSetStatic
 the "meta-programming" class for storing structural constraintsIn aGrUM, there are two ways to store sets of structural constraints: the first one is to put them into a StructuralConstraintSetDynamic. More...
 
class  StructuralConstraintSliceOrder
 the structural constraint imposing a partial order over nodes More...
 
class  StructuralConstraintTabuList
 The class imposing a N-sized tabu list as a structural constraints for learning algorithms. More...
 
class  StructuralConstraintUndiGraph
 The base class for structural constraints used by learning algorithms that learn an undirected graph structure. More...
 

Typedefs

template<template< typename > class ALLOC = std::allocator>
using ScoreMDL = ScoreBIC< ALLOC >
 

Enumerations

enum  DBRowGeneratorGoal : char { DBRowGeneratorGoal::ONLY_REMOVE_MISSING_VALUES, DBRowGeneratorGoal::OTHER_THINGS_THAN_REMOVE_MISSING_VALUES }
 the type of things that a DBRowGenerator is designed for More...
 
enum  DBTranslatedValueType : char { DBTranslatedValueType::DISCRETE, DBTranslatedValueType::CONTINUOUS }
 The nature of the elements handled by translators (discrete, continuous). More...
 
enum  GraphChangeType {
  ARC_ADDITION, ARC_DELETION, ARC_REVERSAL, EDGE_ADDITION,
  EDGE_DELETION
}
 the type of modification that can be applied to the graph More...
 

Functions

DatabaseTable readFile (const std::string &filename)
 
template<template< typename > class ALLOC>
std::ostream & operator<< (std::ostream &stream, const IdSet< ALLOC > &idset)
 the display operator More...
 
std::ostream & operator<< (std::ostream &stream, const GraphChange &change)
 a << operator for GraphChanges More...
 
std::ostream & operator<< (std::ostream &stream, const ArcAddition &change)
 a << operator for ArcAddition More...
 
std::ostream & operator<< (std::ostream &stream, const ArcDeletion &change)
 a << operator for ArcDeletion More...
 
std::ostream & operator<< (std::ostream &stream, const ArcReversal &change)
 a << operator for ArcReversal More...
 
std::ostream & operator<< (std::ostream &stream, const EdgeAddition &change)
 a << operator for EdgeAddition More...
 
std::ostream & operator<< (std::ostream &stream, const EdgeDeletion &change)
 a << operator for EdgeDeletion More...
 

Typedef Documentation

◆ ScoreMDL

template<template< typename > class ALLOC = std::allocator>
using gum::learning::ScoreMDL = typedef ScoreBIC< ALLOC >

Definition at line 49 of file scoreMDL.h.

Enumeration Type Documentation

◆ GraphChangeType

the type of modification that can be applied to the graph

Enumerator
ARC_ADDITION 
ARC_DELETION 
ARC_REVERSAL 
EDGE_ADDITION 
EDGE_DELETION 

Definition at line 47 of file graphChange.h.

Function Documentation

◆ operator<<() [1/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const GraphChange change 
)

a << operator for GraphChanges

Definition at line 108 of file graphChange.cpp.

References gum::learning::GraphChange::toString().

108  {
109  return stream << change.toString();
110  }
+ Here is the call graph for this function:

◆ operator<<() [2/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const ArcAddition change 
)

a << operator for ArcAddition

Definition at line 113 of file graphChange.cpp.

References gum::learning::ArcAddition::toString().

113  {
114  return stream << change.toString();
115  }
+ Here is the call graph for this function:

◆ operator<<() [3/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const ArcDeletion change 
)

a << operator for ArcDeletion

Definition at line 118 of file graphChange.cpp.

References gum::learning::ArcDeletion::toString().

118  {
119  return stream << change.toString();
120  }
+ Here is the call graph for this function:

◆ operator<<() [4/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const ArcReversal change 
)

a << operator for ArcReversal

Definition at line 123 of file graphChange.cpp.

References gum::learning::ArcReversal::toString().

123  {
124  return stream << change.toString();
125  }
+ Here is the call graph for this function:

◆ operator<<() [5/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const EdgeAddition change 
)

a << operator for EdgeAddition

Definition at line 128 of file graphChange.cpp.

References gum::learning::EdgeAddition::toString().

128  {
129  return stream << change.toString();
130  }
+ Here is the call graph for this function:

◆ operator<<() [6/7]

std::ostream & gum::learning::operator<< ( std::ostream &  stream,
const EdgeDeletion change 
)

a << operator for EdgeDeletion

Definition at line 133 of file graphChange.cpp.

References gum::learning::EdgeDeletion::toString().

133  {
134  return stream << change.toString();
135  }
+ Here is the call graph for this function:

◆ operator<<() [7/7]

template<template< typename > class ALLOC>
std::ostream& gum::learning::operator<< ( std::ostream &  stream,
const IdSet< ALLOC > &  idset 
)

the display operator

◆ readFile()

DatabaseTable gum::learning::readFile ( const std::string &  filename)

Definition at line 372 of file genericBNLearner.cpp.

References gum::learning::genericBNLearner::database(), gum::learning::IDBInitializer< ALLOC >::fillDatabase(), GUM_ERROR, gum::learning::DBTranslatorSet< ALLOC >::insertTranslator(), gum::learning::DatabaseTable< ALLOC >::setVariableNames(), and gum::learning::IDBInitializer< ALLOC >::variableNames().

372  {
373  // get the extension of the file
374  Size filename_size = Size(filename.size());
375 
376  if (filename_size < 4) {
377  GUM_ERROR(FormatNotFound,
378  "genericBNLearner could not determine the "
379  "file type of the database");
380  }
381 
382  std::string extension = filename.substr(filename.size() - 4);
383  std::transform(
384  extension.begin(), extension.end(), extension.begin(), ::tolower);
385 
386  if (extension != ".csv") {
387  GUM_ERROR(OperationNotAllowed,
388  "genericBNLearner does not support yet this type "
389  "of database file");
390  }
391 
392  DBInitializerFromCSV<> initializer(filename);
393 
394  const auto& var_names = initializer.variableNames();
395  const std::size_t nb_vars = var_names.size();
396 
397  DBTranslatorSet<> translator_set;
398  DBTranslator4LabelizedVariable<> translator;
399  for (std::size_t i = 0; i < nb_vars; ++i) {
400  translator_set.insertTranslator(translator, i);
401  }
402 
403  DatabaseTable<> database(translator_set);
404  database.setVariableNames(initializer.variableNames());
405  initializer.fillDatabase(database);
406 
407  return database;
408  }
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
#define GUM_ERROR(type, msg)
Definition: exceptions.h:55
+ Here is the call graph for this function: