30 #ifndef GUM_LEARNING_BN_LEARNER_H 31 #define GUM_LEARNING_BN_LEARNER_H 37 #include <agrum/BN/BayesNet.h> 38 #include <agrum/agrum.h> 39 #include <agrum/tools/core/bijection.h> 40 #include <agrum/tools/core/sequence.h> 41 #include <agrum/tools/graphs/DAG.h> 43 #include <agrum/BN/learning/BNLearnUtils/genericBNLearner.h> 49 class BNLearnerListener;
58 template <
typename GUM_SCALAR >
59 class BNLearner:
public genericBNLearner {
71 BNLearner(
const std::string& filename,
72 const std::vector< std::string >& missing_symbols = {
"?"});
74 BNLearner(
const DatabaseTable<>& db);
109 BNLearner(
const std::string& filename,
110 const gum::BayesNet< GUM_SCALAR >& src,
111 const std::vector< std::string >& missing_symbols = {
"?"});
114 BNLearner(
const BNLearner&);
117 BNLearner(BNLearner&&);
120 virtual ~BNLearner();
130 BNLearner& operator=(
const BNLearner&);
133 BNLearner& operator=(BNLearner&&);
138 BayesNet< GUM_SCALAR > learnBN();
152 BayesNet< GUM_SCALAR > learnParameters(
const DAG& dag,
bool takeIntoAccountScore =
true);
170 BayesNet< GUM_SCALAR > learnParameters(
bool take_into_account_score =
true);
173 std::string toString()
const;
176 std::vector< std::tuple< std::string, std::string, std::string > > state()
const;
180 NodeProperty< Sequence< std::string > > _labelsFromBN_(
const std::string& filename,
181 const BayesNet< GUM_SCALAR >& src);
185 template <
typename GUM_SCALAR >
186 std::ostream& operator<<(std::ostream& output,
const BNLearner< GUM_SCALAR >& learner);
192 #include <agrum/BN/learning/BNLearner_tpl.h>