Home | Develop | Download | Contact
example_perceptron_kernel_gaussian_yinyang.cpp
1 
83 #include <iostream>
84 #include <Pds/Ra>
85 #include <Pds/Ml>
86 
87 
88 int main(void)
89 {
91  Pds::Vector Yp;
92  Pds::Matrix F;
93  Pds::IterationConf Conf;
94  double Sigma=0.6;
95 
96  // Generating data
97  unsigned int L=1000;
98  Pds::Matrix X;
99  Pds::Vector Y;
100  Pds::Matrix G;
102 
103  // Create Perceptron
104  G=Pds::MergeVer( {Pds::Clustering::Kmeans(Conf,X.GetRows(Pds::Find(Y)),60),
105  Pds::Clustering::Kmeans(Conf,X.GetRows(Pds::Find(1-Y)), 60)}
106  ); //X
107  F=Pds::Kernel::Gaussian(X,G,Sigma);
108  Conf.SetMaxIter(10000);
109  Pds::Perceptron Neurona(Conf,F,Y);
110  Neurona.Print("\nNeurona:\n");
111 
112  // Evaluate training data
113  Yp=Neurona.Evaluate(F);
114 
115  // Metrics of training
116  Metrics = Pds::ClassificationMetrics::Calculate(0.5,Yp,Y);
117  Metrics.Print("\n");
118 
119  // Evaluate testing data
120  Pds::DataSet::Classification::LoadDataYinYang(L,X,Y); // Load new data
121  F=Pds::Kernel::Gaussian(X,G,Sigma);
122  Yp=Neurona.Evaluate(F);
123 
124  // Metrics testing
125  Metrics = Pds::ClassificationMetrics::Calculate(Metrics.Threshold,Yp,Y);
126  Metrics.Print("\n");
127  return 0;
128 }
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:63
static Pds::ClassificationMetrics Calculate(double Threshold, const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto 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.
Pds::Matrix Kmeans(Pds::IterationConf &Conf, const std::vector< Pds::Matrix > &Block, unsigned int K, Pds::Array< unsigned int > &IDMAP)
Calculo de los centroides.
void LoadDataYinYang(unsigned int L, Pds::Matrix &X, Pds::Vector &Y)
Clasificacion de datos separados por mas de una curva.
Pds::Matrix Gaussian(const Pds::Matrix &X, const Pds::Matrix &G, double Sigma=1.0)
Crea una nueva matriz de "features" kernelizando de forma gaussiana.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed