Home | Develop | Download | Contact
example_mncknn2.cpp

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

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

Para executar o programa:

./example_mncknn2

Retornando por consola:

Working Kmeans over ID: 0
┌──────────────────────────────┐
│    Kmeans                    │
│    IterationConf init data   │
├──────────────────────────────┤
│        MinError: 1.0000e-05  │
│         MaxIter: 1e+04       │
└──────────────────────────────┘
┌──────────────────────────────┐
│            Iter: 19          │
│       LastError: 0.0000e+00  │
│ Elapsed time(s): 0.000127    │
└──────────────────────────────┘

Working Kmeans over ID: 1
┌──────────────────────────────┐
│    Kmeans                    │
│    IterationConf init data   │
├──────────────────────────────┤
│        MinError: 1.0000e-05  │
│         MaxIter: 1e+04       │
└──────────────────────────────┘
┌──────────────────────────────┐
│            Iter: 22          │
│       LastError: 0.0000e+00  │
│ Elapsed time(s): 0.000126    │
└──────────────────────────────┘

Working Kmeans over ID: 2
┌──────────────────────────────┐
│    Kmeans                    │
│    IterationConf init data   │
├──────────────────────────────┤
│        MinError: 1.0000e-05  │
│         MaxIter: 1e+04       │
└──────────────────────────────┘
┌──────────────────────────────┐
│            Iter: 16          │
│       LastError: 0.0000e+00  │
│ Elapsed time(s): 0.000108    │
└──────────────────────────────┘
Classification - data


Classification - Confusion matrix


Classification - testing

Código example_mncknn2.cpp:

#include <iostream>
#include <Pds/Ra>
#include <Pds/Ml>
int main(void)
{
Conf.SetMaxIter(10000); Conf.Show=true;
Pds::Octave::XLabel="x_1";
Pds::Octave::YLabel="x_2";
Pds::Octave::MarkerSize=40;
unsigned int K=5; // Number of clusters
unsigned int C=3; // Numer of classes
unsigned int L=1000; // Numer of 1s or 0s
Pds::Matrix X;
Pds::Vector Y,Yp;
// Generating training data
Pds::Octave::Plot::ScatterX2DY(X,Y,"testando.m","example_mncknn2_data.png");
/********* Training *********/
// Create MncKnn
Pds::MncKnn MKnn(Conf,X,Y,{K,10,7});
// Predict "traning" data with Knn=7
Yp=MKnn.Predict(X,3,7);
Pds::Octave::Plot::ConfMatrix(ConfMat.Data,ConfMat.Id,"testando.m","example_mncknn2_confmatrix.png");
/********* Testing *********/
// Predict "testing" data with Knn=7
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});
Yp=MKnn.Predict(X,3,7);
Pds::Octave::Plot::ScatterX2DY(X,Yp,"testando.m","example_mncknn2_testing.png");
return 0;
}
La clase tipo Pds::ConfusionMatrix . Esta clase genera un bloque de datos para analizar curvas de apr...
std::vector< int > Id
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
static Pds::ConfusionMatrix Calculate(const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto Dat de tipo Pds::ConfusionMatrix.
bool SetMaxIter(unsigned int MaxIter)
Coloca el valor MaxIter.
double Predict(const Pds::Vector &x, unsigned int Mnc, unsigned int Knn) const
Evalua el objeto de tipo Pds::MncKnn.
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