Home | Develop | Download | Contact
EnsembleDecisionTree.hpp
1 /*
2  * EnsembleDecisionTree.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
32 #ifndef __PDS_ENSEMBLEDECISIONTREE_HPP__
33 #define __PDS_ENSEMBLEDECISIONTREE_HPP__
34 
35 
49 #include <Pds/Vector>
50 #include <Pds/DecisionTree>
51 #include <Pds/IterationConf>
52 
53 #include <sstream> // std::ostringstream
54 
55 namespace Pds{
56 
65 {
66 private:
68  std::vector<Pds::DecisionTree> P;
70 
71 public:
72 
83 
89  EnsembleDecisionTree(const std::string &filename);
90 
91 
114  const Pds::Matrix &X,
115  const Pds::Vector &Y,
116  unsigned int M,
117  double Prob,
118  double StopBinaryIG=0.95,
119  unsigned int StopSamples=2,
120  unsigned int StopDeep=0);
121 
122 
143  EnsembleDecisionTree( const Pds::Matrix &X,
144  const Pds::Vector &Y,
145  unsigned int M,
146  double Prob,
147  double StopBinaryIG=0.95,
148  unsigned int StopSamples=2,
149  unsigned int StopDeep=0);
150 
152 
153 
159 public:
160 
171  double Predict(const Pds::Vector &x) const;
172 
178  double PredictWithoutStacking(const Pds::Vector &x) const;
179 
185  Pds::Vector Predict(const Pds::Matrix &X) const;
186 
192  Pds::Vector PredictWithoutStacking(const Pds::Matrix &X) const;
193 
198 public:
199 
210  bool ExportFile(const std::string &filename) const;
211 
212 
219  bool ImportFile(const std::string &filename);
220 
226 public:
227 
238  unsigned int Nel(void) const;
239 
246 
252  bool SetStackingClassifier(const Pds::Vector &W);
253 
260  bool IsEmpty(void) const;
261 
268  bool IsNotEmpty(void) const;
269 
270 
276  void MakeEmpty(void);
277 
282 public:
283 
293  void Print(std::string str="") const;
298 }; // Class EnsembleDecisionTree
299 
300 } // namespace Pds
301 
302 
307 #endif
308 
La clase tipo Pds::EnsembleDecisionTree . Esta clase genera una matriz de Nlin lineas y 1 columna....
std::vector< Pds::DecisionTree > P
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
La clase tipo Pds::Perceptron . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Perceptron.hpp:64
double PredictWithoutStacking(const Pds::Vector &x) const
Evalua el objeto de tipo Pds::EnsembleDecisionTree sin aplicar stacking, solo bagging.
bool ImportFile(const std::string &filename)
Carga desde un formato texto el objeto de tipo Pds::EnsembleDecisionTree.
void MakeEmpty(void)
Convierte el decisiontree a vazio, es decir con el vector de pessos sin elementos y funcion de activa...
const Pds::Perceptron & GetStackingClassifier(void) const
Retorna el clasificador del segundo nivél.
bool IsEmpty(void) const
Verifica si el decisiontree está vazio, es decir vector de pessos sin elementos y funcion de activaci...
EnsembleDecisionTree(const Pds::Matrix &X, const Pds::Vector &Y, unsigned int M, double Prob, double StopBinaryIG=0.95, unsigned int StopSamples=2, unsigned int StopDeep=0)
Crea un objeto de tipo Pds::EnsembleDecisionTree calculando los pesos conociendo los vectores de entr...
unsigned int Nel(void) const
Número de elementos en el ensemble.
EnsembleDecisionTree(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, unsigned int M, double Prob, double StopBinaryIG=0.95, unsigned int StopSamples=2, unsigned int StopDeep=0)
Crea un objeto de tipo Pds::EnsembleDecisionTree calculando los pesos conociendo los vectores de entr...
Pds::Vector Predict(const Pds::Matrix &X) const
Evalua el objeto de tipo Pds::EnsembleDecisionTree.
Pds::Vector PredictWithoutStacking(const Pds::Matrix &X) const
Evalua el objeto de tipo Pds::EnsembleDecisionTree sin aplicar stacking, solo bagging.
bool ExportFile(const std::string &filename) const
Salva en formato texto el objeto de tipo Pds::EnsembleDecisionTree.
bool SetStackingClassifier(const Pds::Vector &W)
Establece el clasificador del segundo nivél.
bool IsNotEmpty(void) const
Verifica si el decisiontree NO está vazio, es decir vector de pessos tiene elementos y funcion de act...
EnsembleDecisionTree(const std::string &filename)
Crea un objeto de tipo Pds::EnsembleDecisionTree. El ensamble será de N DecisionTree,...
EnsembleDecisionTree(void)
Crea un objeto vazio de tipo Pds::EnsembleDecisionTree. El método IsEmpty() retorna true.
void Print(std::string str="") const
Imprime en pantalla el contenido del vector de pesos después del texto indicado en str.
double Predict(const Pds::Vector &x) const
Evalua el objeto de tipo Pds::EnsembleDecisionTree.
Nombre de espacio para Pds (Procesamiento Digital de Senales)

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed