Home | Develop | Download | Contact
test_logisticregression.cpp
1 
88 #include <iostream>
89 #include <Pds/Ra>
90 #include <Pds/Ml>
91 
92 int main(void)
93 {
94  Pds::Octave::XLabel="x_1";
95  Pds::Octave::YLabel="x_2";
96  Pds::Octave::Legend={"Error Cross-val","Error Training"};
97 
98  Pds::IterationConf Conf;
99  Conf.Show=true;
100  Pds::Vector Yp;
102 
103  // Generating data
104  unsigned int L=800;
105  Pds::Matrix X;
106  Pds::Vector Y;
108  Pds::Vector W(X.Ncol()+1);
109 
110  Pds::Octave::Plot::PointsX2DY(X,Y,"testando.m","test_logisticregression_data.png");
111 
112  // Split data set in {Training,Cross-validation,Test}
113  Pds::DataSetBlock Dat=Pds::DataSet::Split(X,Y,4,2,2);
114 
115  // Create W using training data
116  W.Fill(0.1); Conf.SetAlpha(0.1);
117  Pds::Ra::Tic();
119  W.T().Print("W:\n");
120  Pds::Ra::Toc();
121 
122  // Testing W with testing data set
124 
125  Pds::Octave::Plot::PointsX2DYW(Dat.Xtt,Dat.Ytt,W,"testando.m","test_logisticregression_ce.png");
126 
127  // Create W using training data
128  W.Fill(0.1); Conf.SetAlpha(0.1);
129  Pds::Ra::Tic();
131  W.T().Print("W:\n");
132  Pds::Ra::Toc();
133 
134  // Testing W with testing data set
136 
137  Pds::Octave::Plot::PointsX2DYW(Dat.Xtt,Dat.Ytt,W,"testando.m","test_logisticregression_svm.png");
138 
139  // Metrics
140  Metrics = Pds::ClassificationMetrics::Optimal(Yp,Dat.Ytt);
141  Metrics.Print("\n");
142 
143  // Curvas de diagnostico
144  Pds::DataErrorCurve Diag;
145  Conf.Show=false;
146  double percent=1.0/10.0;
147  Diag=Pds::LogisticModel::LearningCurves(Conf,Dat.Xtr,Dat.Ytr,Dat.Xcv,Dat.Ycv,percent);
148 
149  Pds::Octave::XLabel="m samples";
150  Pds::Octave::YLabel="Error";
151  Pds::Octave::Plot::CurveXYXY( Diag.Var,Diag.ErrorCv,
152  Diag.Var,Diag.ErrorTr,
153  "testando.m","test_logisticregression_curves.png");
154 
155  return 0;
156 }
La clase tipo Pds::ClassificationMetrics . Esta clase genera un bloque de datos para analizar curvas ...
La clase tipo Pds::DataErrorCurve . Esta clase genera un bloque de datos para analizar curvas de apre...
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 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.
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::DataErrorCurve LearningCurves(Pds::IterationConf &Conf, const Pds::Matrix &Xtr, const Pds::Vector &Ytr, const Pds::Matrix &Xcv, const Pds::Vector &Ycv, double percent)
Retorna learning curve.
Pds::Vector FittingGradientCrossEntropy(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, const Pds::Vector &W0)
Gradiente descendente para sigmoide.
Pds::Vector FittingGradientSVM(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.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed