UFJF - Machine Learning Toolkit  0.51.8
ensemble/Ensemble.hpp
1 //
2 // Created by mateus558 on 29/07/19.
3 //
4 
5 #pragma once
6 
7 #include <ufjfmltk/core/Learner.hpp>
9 
10 namespace mltk{
11 namespace ensemble{
15  template <typename T>
16  class Ensemble: virtual public Learner< T > {
17  // Attributes
18  protected:
20  size_t c_size{};
22  std::vector< LearnerPointer< T > > m_learners;
25  public:
26  Ensemble() = default;
27  explicit Ensemble(DataPointer< T > samples): Learner< T > (samples) {}
28  /*********************************************
29  * Getters *
30  *********************************************/
31 
36  [[nodiscard]] Solution getSolution() const {return solution;}
42 
43  /*********************************************
44  * Setters *
45  *********************************************/
46 
52  void setLearner(Learner<T> *learner) {
53  Ensemble::learner = learner;
54  }
55 
56  void setSamples(DataPointer<T> samples) override {
58  for (auto &m_learner : m_learners) {
59  m_learner->setSamples(samples);
60  }
61  }
62 
67  void setCommitteeSize(size_t c_size) {
69  }
70 
71  size_t size(){
72  return this->m_learners.size();
73  }
74 
75  auto begin(){
76  return this->m_learners.begin();
77  }
78 
79  auto end(){
80  return this->m_learners.end();
81  }
82 
83  LearnerPointer<T> operator[](size_t idx) const {
84  return this->m_learners[idx];
85  }
86 
87  auto learners(){
88  return this->m_learners;
89  }
90 
91  };
92 }
93 }
Definition: Learner.hpp:18
std::shared_ptr< Data< T > > samples
Samples used in the model training.
Definition: Learner.hpp:21
Definition: Solution.hpp:13
Namespace for ensemble methods.
Definition: ensemble/Ensemble.hpp:16
void setSamples(DataPointer< T > samples) override
setSamples Set the samples used by the Learner.
Definition: ensemble/Ensemble.hpp:56
std::vector< LearnerPointer< T > > m_learners
Pointer to base learner used by the ensemble method.
Definition: ensemble/Ensemble.hpp:22
Solution * getSolutionRef()
getSolution Returns a reference to the solution of the Ensemble method.
Definition: ensemble/Ensemble.hpp:41
size_t c_size
Committee size.
Definition: ensemble/Ensemble.hpp:20
void setLearner(Learner< T > *learner)
setLearner Set the base learner to be used by the ensemble method. Make sure to set the base learner ...
Definition: ensemble/Ensemble.hpp:52
Solution solution
Ensemble solution.
Definition: ensemble/Ensemble.hpp:24
void setCommitteeSize(size_t c_size)
setCommitteeSize Set the learner committee size.
Definition: ensemble/Ensemble.hpp:67
Solution getSolution() const
getSolution Returns the solution of the Ensemble method.
Definition: ensemble/Ensemble.hpp:36
UFJF-MLTK main namespace for core functionalities.
Definition: classifier/Classifier.hpp:11