aGrUM  0.16.0
aprioriSmoothing.h
Go to the documentation of this file.
1 
28 #ifndef GUM_LEARNING_A_PRIORI_SMOOTHING_H
29 #define GUM_LEARNING_A_PRIORI_SMOOTHING_H
30 
31 #include <vector>
32 
33 #include <agrum/agrum.h>
35 
36 namespace gum {
37 
38  namespace learning {
39 
45  template < template < typename > class ALLOC = std::allocator >
46  class AprioriSmoothing : public Apriori< ALLOC > {
47  public:
50 
52  using allocator_type = ALLOC< NodeId >;
53 
54 
55  // ##########################################################################
57  // ##########################################################################
59 
61 
73  const DatabaseTable< ALLOC >& database,
74  const Bijection< NodeId, std::size_t, ALLOC< std::size_t > >&
75  nodeId2columns =
76  Bijection< NodeId, std::size_t, ALLOC< std::size_t > >(),
77  const allocator_type& alloc = allocator_type());
78 
81 
84  const allocator_type& alloc);
85 
88 
91  const allocator_type& alloc);
92 
94  virtual AprioriSmoothing< ALLOC >* clone() const;
95 
97  virtual AprioriSmoothing< ALLOC >* clone(const allocator_type& alloc) const;
98 
100  virtual ~AprioriSmoothing();
101 
103 
104 
105  // ##########################################################################
107  // ##########################################################################
109 
112 
115 
117 
118 
119  // ##########################################################################
121  // ##########################################################################
123 
125  virtual bool isOfType(const std::string& type) final;
126 
128  virtual const std::string& getType() const final;
129 
131 
138  virtual bool isInformative() const final;
139 
141 
146  virtual void
147  addAllApriori(const IdSet< ALLOC >& idset,
148  std::vector< double, ALLOC< double > >& counts) final;
149 
155  virtual void addConditioningApriori(
156  const IdSet< ALLOC >& idset,
157  std::vector< double, ALLOC< double > >& counts) final;
158 
160  };
161 
162  } /* namespace learning */
163 
164 } /* namespace gum */
165 
167 #include <agrum/learning/aprioris/aprioriSmoothing_tpl.h>
168 
169 #endif /* GUM_LEARNING_A_PRIORI_SMOOTHING_H */
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
STL namespace.
A class for storing a pair of sets of NodeIds, the second one corresponding to a conditional set...
Definition: idSet.h:48
the base class for all a priori
Definition: apriori.h:50
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
virtual bool isOfType(const std::string &type) final
indicates whether an apriori is of a certain type
virtual bool isInformative() const final
indicates whether the apriori is potentially informative
virtual AprioriSmoothing< ALLOC > * clone() const
virtual copy constructor
virtual ~AprioriSmoothing()
destructor
ALLOC< NodeId > allocator_type
type for the allocators passed in arguments of methods
virtual const std::string & getType() const final
returns the type of the apriori
Set of pairs of elements with fast search for both elements.
Definition: bijection.h:1805
The class representing a tabular database as used by learning tasks.
AprioriSmoothing< ALLOC > & operator=(const AprioriSmoothing< ALLOC > &from)
copy operator
the smooth a priori: adds a weight w to all the countings
ALLOC< NodeId > allocator_type
type for the allocators passed in arguments of methods
Definition: apriori.h:53
virtual void addAllApriori(const IdSet< ALLOC > &idset, std::vector< double, ALLOC< double > > &counts) final
adds the apriori to a counting vector corresponding to the idset
AprioriSmoothing(const DatabaseTable< ALLOC > &database, const Bijection< NodeId, std::size_t, ALLOC< std::size_t > > &nodeId2columns=Bijection< NodeId, std::size_t, ALLOC< std::size_t > >(), const allocator_type &alloc=allocator_type())
default constructor
Size NodeId
Type for node ids.
Definition: graphElements.h:98
virtual void addConditioningApriori(const IdSet< ALLOC > &idset, std::vector< double, ALLOC< double > > &counts) final
adds the apriori to a counting vectordefined over the right hand side of the idset ...