Home | Develop | Download | Contact
example_logisticregression_ce.cpp
1 
83 #include <iostream>
84 #include <Pds/Ra>
85 #include <Pds/Ml>
86 
87 int main(void)
88 {
89  Pds::IterationConf Conf; Conf.Show=true; Conf.SetMinError(1e-07); Conf.SetAlpha(0.1);
90  Pds::Vector Yp;
92 
93  /*
94  Pds::Matrix X(Pds::Ra::TextFormat,"../test/hard2-data-x.txt");
95  Pds::Vector Y(Pds::Ra::TextFormat,"../test/hard2-data-y.txt");
96  */
97 
98  // Generating data
99  unsigned int L=10000;
100  Pds::Matrix X;
101  Pds::Vector Y;
103 
104  // W0
105  Pds::Vector W;
107 
108  Pds::Octave::YLimits=true;
109  Pds::Octave::XLabel="x_1";
110  Pds::Octave::YLabel="x_2";
111  Pds::Octave::Plot::PointsX2DYW(X,Y,W,"testando.m","example_logisticregression_ce_data.png");
112 
113  // Split data set in {Training,Cross-validation,Test}
114  Pds::DataSetBlock Dat=Pds::DataSet::Split(X,Y,6,2,2);
115 
116  // Create W using training data
117 
118  Pds::Ra::Tic();
120  W.T().Print("W:\n");
121  Pds::Ra::Toc();
122 
123  // Testing W with testing data set
125 
126  // Metrics
127  Metrics = Pds::ClassificationMetrics::Optimal(Yp,Dat.Ycv);
128  Metrics.Print("\n");
129 
130  Pds::Octave::Plot::ScatterX2DYW(Dat.Xcv,Yp,W,"testando.m","example_logisticregression_ce_training.png");
131 
132  // Testing W with testing data set
134 
135  Metrics = Pds::ClassificationMetrics::Calculate(Metrics.Threshold,Yp,Dat.Ytt);
136  Metrics.Print("\n");
137 
138  Pds::Octave::Plot::ScatterX2DYW(Dat.Xtt,Yp,W,"testando.m","example_logisticregression_ce_testing.png");
139 
140  return 0;
141 }
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.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed