Home | Develop | Download | Contact
example_perceptron_kernel_fourier_yinyang.cpp
1 
61 #include <iostream>
62 #include <Pds/Ra>
63 #include <Pds/Ml>
64 
65 
66 int main(void)
67 {
69  Pds::Vector Yp;
70  Pds::Matrix F;
71  Pds::IterationConf Conf;
72  unsigned int K=4;
73 
74  // Generating data
75  unsigned int L=1000;
76  Pds::Matrix X;
77  Pds::Vector Y;
79 
80  Pds::Octave::XLabel="x_1";
81  Pds::Octave::YLabel="x_2";
82  Pds::Octave::Plot::PointsX2DY(X,Y,"testando.m","example_perceptron_kernel_fourier_yinyang_data.png");
83 
84  // Create Perceptron
85  F=Pds::Kernel::FourierSeries(X,Pds::Vector("2.0 2.0"),K);
86 
87  Pds::Ra::Tic();
88  Conf.SetMaxIter(10000);
89  Pds::Perceptron Neurona(Conf,F,Y);
90  Pds::Ra::Toc();
91 
92  Neurona.Print("\nNeurona:\n");
93 
94  // Predict training data
95  Yp=Neurona.Predict(F);
96 
97  // Metrics of training
98  Metrics = Pds::ClassificationMetrics::Calculate(0.5,Yp,Y);
99  Metrics.Print("\n");
100 
101  Pds::Octave::Plot::PointsX2DY(X,Yp,"testando.m","example_perceptron_kernel_fourier_yinyang_training.png");
102 
103  // Predict testing data
104  Pds::DataSet::Classification::LoadDataYinYang(L,X,Y); // Load new data
105  F=Pds::Kernel::FourierSeries(X,Pds::Vector("2.0 2.0"),K);
106  Yp=Neurona.Predict(F);
107 
108  // Metrics testing
109  Metrics = Pds::ClassificationMetrics::Calculate(Metrics.Threshold,Yp,Y);
110  Metrics.Print("\n");
111 
112  Pds::Octave::Plot::PointsX2DY(X,Yp,"testando.m","example_perceptron_kernel_fourier_yinyang_testing.png");
113 
114  return 0;
115 }
La clase tipo Pds::ClassificationMetrics . Esta clase genera un bloque de datos para analizar curvas ...
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
static Pds::ClassificationMetrics Calculate(double Threshold, const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto Dat de tipo Pds::ClassificationMetrics.
void Print(std::string str="")
Imprime en pantalla los datos de la estructura tipo Pds::ClassificationMetrics.
bool SetMaxIter(unsigned int MaxIter)
Coloca el valor MaxIter.
void LoadDataYinYang(unsigned int L, Pds::Matrix &X, Pds::Vector &Y)
Clasificacion de datos separados por mas de una curva.
Pds::Matrix FourierSeries(const Pds::Matrix &X, const Pds::Vector &L, unsigned int K)
Crea una nueva matriz de "features" kernelizando cada muestra en usando la serie de fourier.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed