Home | Develop | Download | Contact
MncKnn.hpp
1 /*
2  * MncKnn.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_MNCKNN_HPP__
33 #define __PDS_MNCKNN_HPP__
34 
35 
49 #include <Pds/Ra>
50 #include <Pds/IterationConf>
51 
52 #include <sstream> // std::ostringstream
53 #include <vector>
54 #include <string>
55 
56 namespace Pds{
57 
65 class MncKnn
66 {
67 private:
70 
72  Pds::Matrix C;
73 
75  std::vector<Pds::Matrix> XX;
76 
78  std::vector<Pds::Matrix> YY;
79 
81  std::vector<bool> Full;
82 
84  std::vector<int> IdFull;
85 
86 public:
87 
97  MncKnn(void);
98 
99 
100 
118  const Pds::Matrix &X,
119  const Pds::Vector &Y,
120  unsigned int L);
121 
141  const Pds::Matrix &X,
142  const Pds::Vector &Y,
143  std::vector<unsigned int> L);
144 
146 
147 
153 public:
154 
167  double Predict(const Pds::Vector &x, unsigned int Mnc, unsigned int Knn) const;
168 
176  Pds::Vector Predict(const Pds::Matrix &X, unsigned int Mnc, unsigned int Knn) const;
177 
182 public:
183 
195  bool ExportFile(const std::string &filename) const;
196 
202 public:
203 
216  bool IsEmpty(void) const;
217 
224  bool IsNotEmpty(void) const;
225 
226 
227 
232 public:
233 
245  unsigned int Nel(void) const;
246 
252  void MakeEmpty(void);
253 
258  std::string ToString(void) const;
259 
260 
266  void Print(std::string str="") const;
271 }; // Class MncKnn
272 
273 } // namespace Pds
274 
275 
295 std::ostream& operator<<(std::ostream &out,const Pds::MncKnn &A);
296 
305 #endif
306 
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
La clase tipo Pds::MncKnn . Esta clase genera una estructura de Pds::MncKnn. Para usar incluir Pds/Mn...
Definition: MncKnn.hpp:66
Pds::Matrix C
Definition: MncKnn.hpp:72
std::vector< Pds::Matrix > XX
Definition: MncKnn.hpp:75
std::vector< int > IdFull
Definition: MncKnn.hpp:84
std::vector< Pds::Matrix > YY
Definition: MncKnn.hpp:78
std::vector< bool > Full
Definition: MncKnn.hpp:81
MncKnn(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, std::vector< unsigned int > L)
Crea un objeto de tipo Pds::MncKnn calculando los pesos conociendo los vectores de entrada X y el dat...
void Print(std::string str="") const
Imprime en pantalla el contenido del vector de pesos después del texto indicado en str.
std::string ToString(void) const
Convierte los datos del MncKnn en un std::string.
MncKnn(void)
Crea un objeto vazio de tipo Pds::MncKnn. El método IsEmpty() retorna true.
bool ExportFile(const std::string &filename) const
Salva en formato texto el objeto de tipo Pds::MncKnn.
void MakeEmpty(void)
Convierte el MncKnn a vazio, es decir con el vector de pessos sin elementos y funcion de activación n...
unsigned int Nel(void) const
Número de elementos en el ensemble.
std::ostream & operator<<(std::ostream &out, const Pds::MncKnn &A)
Retorna el contenido del MncKnn por la salida estándar.
MncKnn(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, unsigned int L)
Crea un objeto de tipo Pds::MncKnn calculando los pesos conociendo los vectores de entrada X y el dat...
Pds::Vector Predict(const Pds::Matrix &X, unsigned int Mnc, unsigned int Knn) const
Evalua el objeto de tipo Pds::MncKnn.
bool IsNotEmpty(void) const
Verifica si el MncKnn NO está vazio, es decir vector de pessos tiene elementos y funcion de activació...
double Predict(const Pds::Vector &x, unsigned int Mnc, unsigned int Knn) const
Evalua el objeto de tipo Pds::MncKnn.
bool IsEmpty(void) const
Verifica si el MncKnn está vazio, es decir vector de pessos sin elementos y funcion de activación nul...
Nombre de espacio para Pds (Procesamiento Digital de Senales)

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed