Home | Develop | Download | Contact
example_logisticregression_ce.cpp

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

g++ -static -o example_logisticregression_ce example_logisticregression_ce.cpp -lpdsmlmm

Para executar o programa:

./example_logisticregression_ce

Retornando por consola:

┌──────────────────────────────┐
│    CE                        │
│    IterationConf init data   │
├──────────────────────────────┤
│           Alpha: 0.1         │
│          Lambda: 0           │
│   MinError ΔW/W: 1.0000e-07  │
│         MaxIter: 2000        │
└──────────────────────────────┘
┌──────────────────────────────┐
│            Iter: 2000        │
│           Alpha: 1           │
│  LastError ΔW/W: 3.0991e-04  │
│ Cost Func Error: 8.5834e-02  │
└──────────────────────────────┘
┌──────────────────────────────┐
│    CE                        │
│    IterationConf end data    │
├──────────────────────────────┤
│           Alpha: 1           │
│  LastError ΔW/W: 3.0991e-04  │
│        LastIter: 2000        │
└──────────────────────────────┘
W:
-0.017605589142825      12.785358849235 12.74545638066
Elapsed time: 1.6602043666667 min

╔═══════════════════════════════════╗
║    ClassificationMetrics data     ║
╠═══════════════════════════════════╣
║        Threshold: 0.49            ║
║          Samples: 4000            ║
╠═══════════════════════════════════╣
║ Pred.[0]/Act.[*]: 1994    0       ║
║ Pred.[1]/Act.[*]: 6       2000    ║
╠═══════════════════════════════════╣
║         Accuracy: 99.85 %         ║
║        Precision: 99.7  %         ║
║           Recall: 100   %         ║
╠═══════════════════════════════════╣
║           FScore: 99.85 %         ║
╚═══════════════════════════════════╝

╔═══════════════════════════════════╗
║    ClassificationMetrics data     ║
╠═══════════════════════════════════╣
║        Threshold: 0.49            ║
║          Samples: 4000            ║
╠═══════════════════════════════════╣
║ Pred.[0]/Act.[*]: 1961    1       ║
║ Pred.[1]/Act.[*]: 8       2030    ║
╠═══════════════════════════════════╣
║         Accuracy: 99.78 %         ║
║        Precision: 99.61 %         ║
║           Recall: 99.95 %         ║
╠═══════════════════════════════════╣
║           FScore: 99.78 %         ║
╚═══════════════════════════════════╝
Clasification - data


Clasification - training


Clasification - testing

Código example_logisticregression_ce.cpp:

#include <iostream>
#include <Pds/Ra>
#include <Pds/Ml>
int main(void)
{
Pds::IterationConf Conf; Conf.Show=true; Conf.SetMinError(1e-07); Conf.SetAlpha(0.1);
Pds::Vector Yp;
/*
Pds::Matrix X(Pds::Ra::TextFormat,"../test/hard2-data-x.txt");
Pds::Vector Y(Pds::Ra::TextFormat,"../test/hard2-data-y.txt");
*/
// Generating data
unsigned int L=10000;
Pds::Matrix X;
Pds::Vector Y;
// W0
Pds::Vector W;
Pds::Octave::Plot::PointsX2DYW(X,Y,W,"testando.m","example_logisticregression_ce_data.png");
// Split data set in {Training,Cross-validation,Test}
// Create W using training data
Pds::Ra::Tic();
W.T().Print("W:\n");
Pds::Ra::Toc();
// Testing W with testing data set
// Metrics
Metrics.Print("\n");
Pds::Octave::Plot::ScatterX2DYW(Dat.Xcv,Yp,W,"testando.m","example_logisticregression_ce_training.png");
// Testing W with testing data set
Metrics.Print("\n");
Pds::Octave::Plot::ScatterX2DYW(Dat.Xtt,Yp,W,"testando.m","example_logisticregression_ce_testing.png");
return 0;
}
La clase tipo Pds::ClassificationMetrics . Esta clase genera un bloque de datos para analizar curvas ...
La clase tipo Pds::DataSetBlock . Esta clase genera un bloque de datos para analizar curvas de aprend...
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
static Pds::ClassificationMetrics Calculate(double Threshold, const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto Dat de tipo Pds::ClassificationMetrics.
static Pds::ClassificationMetrics Optimal(const Pds::Vector &Ypredict, const Pds::Vector &Yactual)
Crea un objeto Dat de tipo Pds::ClassificationMetrics.
void Print(std::string str="")
Imprime en pantalla los datos de la estructura tipo Pds::ClassificationMetrics.
bool SetAlpha(double Alpha)
Coloca el valor alpha.
bool SetMinError(double MinError)
Coloca el valor MinError.
Pds::DataSetBlock Split(const Pds::Matrix &X, const Pds::Vector &Y, double Training, double CrossVal, double Test)
Divide un data set en 3 data set: {Training, CrossValidation, Test}, selecionados aleatoriamente sin ...
void LoadDataLine(unsigned int L, Pds::Matrix &X, Pds::Vector &Y)
Clasificacion de datos separados por una linea.
Pds::Vector FittingGradientCrossEntropy(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, const Pds::Vector &W0)
Gradiente descendente para sigmoide.
Pds::Vector Classify(const Pds::Vector &W, const Pds::Matrix &X)
Calculo del resultado del clasificador.
Pds::Vector GetW0MeanSquareMethod(const Pds::Matrix &X)
Obtiene de forma rapida un vector inicial para usar en regresion logistica.
std::string YLabel
Texto correspondente a ylabel.
bool YLimits
Habilita o deshabilita ylim(...) en el código octave.
bool ScatterX2DYW(const Pds::Matrix &X, const Pds::Vector &Y, const Pds::Vector &W, const std::string &octfilename, const std::string &imgfilename)
Plot de muestras en 2D en las columnas X, muestra los valores de Y con una degradación de colores.
std::string XLabel
Texto correspondente a xlabel.
bool PointsX2DYW(const Pds::Matrix &X, const Pds::Vector &Y, const Pds::Vector &W, const std::string &octfilename, const std::string &imgfilename)
Plot de muestras en 2D en las columnas X, clasificadas de forma binaria con Y>=0.5,...

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed