Programa para el testeo de las funciones.Para compilar o código example_kmeansnn2.cpp:
g++ -static -o example_kmeansnn2 example_kmeansnn2.cpp -lpdsmlmm -lpdsramm -lpdsspmm
Para executar o programa:
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_kmeansnn2.cpp:
#include <iostream>
#include <Pds/Ra>
#include <Pds/Ml>
int main(void)
{
Pds::Octave::XLabel="x_1";
Pds::Octave::YLabel="x_2";
Pds::Octave::MarkerSize=40;
unsigned int K=5;
unsigned int C=3;
unsigned int L=1000;
Pds::Matrix X;
Pds::Vector Y,Yp;
Pds::Octave::Plot::ScatterX2DY(X,Y,"testando.m","example_kmeansnn2_data.png");
Pds::Octave::Plot::ConfMatrix(ConfMat.
Data,ConfMat.
Id,
"testando.m",
"example_kmeansnn2_confmatrix.png");
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});
Pds::Octave::Plot::ScatterX2DY(X,Yp,"testando.m","example_kmeansnn2_testing.png");
return 0;
}
La clase tipo Pds::ConfusionMatrix . Esta clase genera un bloque de datos para analizar curvas de apr...
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
La clase tipo Pds::KmeansNn . Esta clase genera una estructura de Pds::KmeansNn. Para usar incluir Pd...
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 Knn) const
Evalua el objeto de tipo Pds::KmeansNn.
void LoadKGaussian(unsigned int L, unsigned int K, Pds::Matrix &X, Pds::Vector &Y, double factor=0.70711)
Clasificación múltiple de datos.