Home | Develop | Download | Contact
example_lda_2d.cpp

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

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

Para executar o programa:

./example_lda_2d

Retornando por consola:

----- LDA :
Lambda:
9.4017204746525 9.792373894639  
V:
0.48750693238305  0.87302817868768  
0.8731191160881   -0.48766976451004 
W[0]:
-1.6002717696647   1.0014438993629    -0.016525001345288 
W[1]:
-1.5922959815084  -0.51853946729161 0.84772731034858  
W[2]:
-1.603368542761   -0.49287682343256 -0.87554761815149 
Label[0]:       0
Label[1]:       1
Label[2]:       2

Tarining data:

Data of axes {0,1,2}



Discriminant functions:


Decision boundaries:

Regions

Código example_lda_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_lda_2d_data.png");
// Calculate the Lda classifier.
Pds::LDA Lda(X,Y);
Lda.Print("----- LDA :\n");
// Plot the discriminant functions in the Lda object.
std::vector<Pds::Vector> W=Lda.GetW();
for(unsigned int n=0;n<W.size();n++)
{
Pds::Octave::Plot::ScatterX2DYW(X,Y,W[n],"testando3d.m","example_lda_2d_w"+std::to_string(n)+".png");
}
// Load new dataset Xt.
Pds::Matrix Xt(10*L,2);
Xt.FillRandU(-1.5,1.5);
// Predict the datset Xt.
Ys=Lda.Predict(Xt);
// Print the result of classification.
Pds::Octave::Plot::ScatterX2DY(Xt,Ys,"testando3d.m","example_lda_2d_class.png");
return 0;
}
La clase tipo Pds::LDA . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir P...
Definition: LDA.hpp:63
double Predict(const Pds::Vector &x) const
Evalua el objeto de tipo Pds::LDA.
std::vector< Pds::Vector > GetW(void) const
Retorna un std::vector de vectores que representan los clasificadores.
void Print(std::string str="") const
Imprime en pantalla el contenido del LDA.
void LoadKNormal(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