30 #ifndef GUM_LEARNING_CORRECTED_MUTUAL_INFORMATION_H 31 #define GUM_LEARNING_CORRECTED_MUTUAL_INFORMATION_H 33 #include <agrum/config.h> 34 #include <agrum/tools/core/math/math_utils.h> 37 #include <agrum/tools/stattests/kNML.h> 38 #include <agrum/BN/learning/scores_and_tests/scoreLog2Likelihood.h> 39 #include <agrum/BN/learning/scores_and_tests/scoreMDL.h> 55 template <
template <
typename >
class ALLOC = std::allocator >
90 const DBRowGeneratorParser< ALLOC >& parser,
91 const Apriori< ALLOC >& apriori,
92 const std::vector< std::pair< std::size_t, std::size_t >,
93 ALLOC< std::pair< std::size_t, std::size_t > > >&
118 const DBRowGeneratorParser< ALLOC >& parser,
119 const Apriori< ALLOC >& apriori,
130 const allocator_type& alloc);
137 const allocator_type& alloc);
175 virtual void clear();
232 double score(NodeId var1, NodeId var2);
235 double score(NodeId var1,
240 double score(NodeId var1, NodeId var2, NodeId var3);
243 double score(NodeId var1,
292 template <
template <
typename >
class XALLOC >
294 const std::vector< std::pair< std::size_t, std::size_t >,
295 XALLOC< std::pair< std::size_t, std::size_t > > >&
302 const std::vector< std::pair< std::size_t, std::size_t >,
303 ALLOC< std::pair< std::size_t, std::size_t > > >&
322 #ifndef DOXYGEN_SHOULD_SKIP_THIS 327 ScoreLog2Likelihood< ALLOC > NH__;
330 KNML< ALLOC > k_NML__;
334 ScoreMDL< ALLOC > score_MDL__;
343 bool use_ICache__{
true};
349 bool use_HCache__{
true};
355 bool use_KCache__{
true};
362 bool use_CnrCache__{
true};
366 ScoringCache< ALLOC > ICache__;
369 ScoringCache< ALLOC > KCache__;
376 const double threshold__{1e-10};
380 double NI_score__(NodeId var_x,
382 const std::vector< NodeId, ALLOC< NodeId > >& vars_z);
385 double NI_score__(NodeId var_x,
388 const std::vector< NodeId, ALLOC< NodeId > >& vars_ui);
391 double K_score__(NodeId var_x,
393 const std::vector< NodeId, ALLOC< NodeId > >& vars_z);
396 double K_score__(NodeId var_x,
399 const std::vector< NodeId, ALLOC< NodeId > >& vars_ui);
409 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 410 extern template class gum::learning::CorrectedMutualInformation<>;
415 #include <agrum/tools/stattests/correctedMutualInformation_tpl.h>
INLINE void emplace(Args &&... args)
Database(const std::string &filename, const BayesNet< GUM_SCALAR > &bn, const std::vector< std::string > &missing_symbols)