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 > > >& ranges,
116 const DBRowGeneratorParser< ALLOC >& parser,
117 const Apriori< ALLOC >& apriori,
127 const allocator_type& alloc);
134 const allocator_type& alloc);
170 virtual void clear();
227 double score(NodeId var1, NodeId var2);
230 double score(NodeId var1,
235 double score(NodeId var1, NodeId var2, NodeId var3);
238 double score(NodeId var1,
287 template <
template <
typename >
class XALLOC >
289 const std::vector< std::pair< std::size_t, std::size_t >,
290 XALLOC< std::pair< std::size_t, std::size_t > > >& new_ranges);
296 const std::vector< std::pair< std::size_t, std::size_t >,
297 ALLOC< std::pair< std::size_t, std::size_t > > >&
316 #ifndef DOXYGEN_SHOULD_SKIP_THIS 321 ScoreLog2Likelihood< ALLOC > _NH_;
324 KNML< ALLOC > _k_NML_;
328 ScoreMDL< ALLOC > _score_MDL_;
337 bool _use_ICache_{
true};
343 bool _use_HCache_{
true};
349 bool _use_KCache_{
true};
356 bool _use_CnrCache_{
true};
360 ScoringCache< ALLOC > _ICache_;
363 ScoringCache< ALLOC > _KCache_;
370 const double _threshold_{1e-10};
374 double _NI_score_(NodeId var_x,
376 const std::vector< NodeId, ALLOC< NodeId > >& vars_z);
379 double _NI_score_(NodeId var_x,
382 const std::vector< NodeId, ALLOC< NodeId > >& vars_ui);
385 double _K_score_(NodeId var_x,
387 const std::vector< NodeId, ALLOC< NodeId > >& vars_z);
390 double _K_score_(NodeId var_x,
393 const std::vector< NodeId, ALLOC< NodeId > >& vars_ui);
403 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 404 extern template class gum::learning::CorrectedMutualInformation<>;
409 #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)