27 #ifndef GUM_LEARNING_PARAM_ESTIMATOR_ML_H 28 #define GUM_LEARNING_PARAM_ESTIMATOR_ML_H 32 #include <agrum/agrum.h> 33 #include <agrum/BN/learning/paramUtils/paramEstimator.h> 44 template <
template <
typename >
class ALLOC = std::allocator >
45 class ParamEstimatorML:
public ParamEstimator< ALLOC > {
48 using allocator_type = ALLOC< NodeId >;
80 const DBRowGeneratorParser< ALLOC >& parser,
81 const Apriori< ALLOC >& external_apriori,
82 const Apriori< ALLOC >& score_internal__apriori,
83 const std::vector< std::pair< std::size_t, std::size_t >,
84 ALLOC< std::pair< std::size_t, std::size_t > > >&
86 const Bijection< NodeId, std::size_t, ALLOC< std::size_t > >&
88 = Bijection< NodeId, std::size_t, ALLOC< std::size_t > >(),
89 const allocator_type& alloc = allocator_type());
110 const DBRowGeneratorParser< ALLOC >& parser,
111 const Apriori< ALLOC >& external_apriori,
112 const Apriori< ALLOC >& score_internal__apriori,
113 const Bijection< NodeId, std::size_t, ALLOC< std::size_t > >&
115 = Bijection< NodeId, std::size_t, ALLOC< std::size_t > >(),
116 const allocator_type& alloc = allocator_type());
119 ParamEstimatorML(
const ParamEstimatorML< ALLOC >& from);
122 ParamEstimatorML(
const ParamEstimatorML< ALLOC >& from,
123 const allocator_type& alloc);
126 ParamEstimatorML(ParamEstimatorML< ALLOC >&& from);
129 ParamEstimatorML(ParamEstimatorML< ALLOC >&& from,
130 const allocator_type& alloc);
133 virtual ParamEstimatorML< ALLOC >* clone()
const;
136 virtual ParamEstimatorML< ALLOC >* clone(
const allocator_type& alloc)
const;
139 virtual ~ParamEstimatorML();
151 ParamEstimatorML< ALLOC >& operator=(
const ParamEstimatorML< ALLOC >& from);
154 ParamEstimatorML< ALLOC >& operator=(ParamEstimatorML< ALLOC >&& from);
164 using ParamEstimator< ALLOC >::parameters;
174 virtual std::vector<
double, ALLOC<
double > > parameters(
175 const NodeId target_node,
176 const std::vector< NodeId, ALLOC< NodeId > >& conditioning_nodes);
186 #include <agrum/BN/learning/paramUtils/paramEstimatorML_tpl.h>