Home | Develop | Download | Contact
example_ldc_2d.cpp

Programa para el testeo de las funciones.Para compilar o código example_ldc_2d.cpp:

g++ -static -o example_ldc_2d example_ldc_2d.cpp -lpdsmlmm -lpdsramm -lpdsspmm

Para executar o programa:

./example_ldc_2d

Retornando por consola:

----- LDC :
Sinv:
6.7407373495477   -0.74357495589715 
-0.74357495589715 11.553669016034   
Mu[0]:
0.99703793502286  0.045538886737149 
Mu[1]:
-0.47496384436618 0.83686241024232  
Mu[2]:
-0.47638727066386 -0.85447614834989 
C[0]:   -1.0986122886681
C[1]:   -1.0986122886681
C[2]:   -1.0986122886681
Label[0]:       0
Label[1]:       1
Label[2]:       2


----- LDC2 :
Sinv:
6.7407373495477   -0.74357495589715 
-0.74357495589715 11.553669016034   
Mu[0]:
0.99703793502286  0.045538886737149 
Mu[1]:
-0.47496384436618 0.83686241024232  
Mu[2]:
-0.47638727066386 -0.85447614834989 
C[0]:   -1.0986122886681
C[1]:   -1.0986122886681
C[2]:   -1.0986122886681
Label[0]:       0
Label[1]:       1
Label[2]:       2

Tarining data:

Training data



Confusion matrix:

Confusion matrix



Decision boundaries:

Regions

Código example_ldc_2d.cpp:

#include <iostream>
#include <Pds/Ra>
#include <Pds/Ml>
int main(void)
{
unsigned int L=300;
unsigned int K=3;
Pds::Octave::MarkerSize=64;
Pds::Octave::YLimits=true;
Pds::Octave::XLimits=true;
Pds::Octave::DAspect=true;
Pds::Matrix X;
Pds::Vector Y,Ys;
// Load dataset of L samples an K gaussian normal.
// Plor de dataset X with label Y.
Pds::Octave::Plot::ScatterX2DY(X,Y,"testando3d.m","example_ldc_2d_data.png");
// Calculate the Ldc classifier.
Pds::LDC Ldc(X,Y);
Ldc.Print("----- LDC :\n");
// Test of training
Ys=Ldc.Predict(X);
// Confusion matrix
Pds::Octave::Plot::ConfMatrix(CM.Data,Ldc.GetLabel(),"testando.m","example_ldc_2d_ConfMatrix.png");
// Load new dataset Xt.
Pds::Matrix Min=X.MinInCols();
Pds::Matrix Max=X.MaxInCols();
Pds::Matrix X1=Pds::Matrix(10*L,1); X1.FillRandU(Min.Get(0),Max.Get(0));
Pds::Matrix X2=Pds::Matrix(10*L,1); X2.FillRandU(Min.Get(1),Max.Get(1));
X=Pds::MergeHor({X1,X2});
// Predict the datset Xt.
Ys=Ldc.Predict(X);
// Print the result of classification.
Pds::Octave::Plot::ScatterX2DY(X,Ys,"testando3d.m","example_ldc_2d_class.png");
Ldc.ExportFile("salida.txt");
Pds::LDC Ldc2("salida.txt");
Ldc.Print("----- LDC2 :\n");
return 0;
}
La clase tipo Pds::ConfusionMatrix . Esta clase genera un bloque de datos para analizar curvas de apr...
La clase tipo Pds::LDC . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir P...
Definition: LDC.hpp:63
static Pds::ConfusionMatrix Calculate(const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto Dat de tipo Pds::ConfusionMatrix.
bool ExportFile(const std::string &filename) const
Salva en formato .txt el objeto de tipo Pds::LDC.
std::vector< int > GetLabel(void) const
Retorna un std::vector de vectores que representan las etiquetas para cada ID.
void Print(std::string str="") const
Imprime en pantalla el contenido del LDC.
double Predict(const Pds::Vector &x) const
Evalua el objeto de tipo Pds::LDC.
void LoadKGaussian(unsigned int L, unsigned int K, Pds::Matrix &X, Pds::Vector &Y, double factor=0.70711)
Clasificación múltiple de datos.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed