Home | Develop | Download | Contact
example_logisticregression_svm.cpp
1 
87 #include <iostream>
88 #include <Pds/Ra>
89 #include <Pds/Ml>
90 
91 int main(void)
92 {
93  Pds::IterationConf Conf;
94  Conf.Show=true; Conf.SetMinError(1e-06);
95  Conf.SetAlpha(0.1); Conf.SetMaxIter(4000); Conf.SetAlphaSmart(true);
96  Conf.SetLambda(0.1);
97  Pds::Vector Yp;
99 
100  // Generating data
101  unsigned int L=5000;
102  Pds::Matrix X;
103  Pds::Vector Y;
105 
106 
107  // Split data set in {Training,Cross-validation,Test}
108  Pds::DataSetBlock Dat=Pds::DataSet::Split(X,Y,6,2,2);
109 
110  Pds::Octave::XLabel="x_1";
111  Pds::Octave::YLabel="x_2";
112  Pds::Octave::Plot::PointsX2DY(Dat.Xtr,Dat.Ytr,"testando.m","example_logisticregression_svm_data.png");
113 
114  // Create W using training data
115  Pds::Vector W(X.Ncol()+1);
116  W.Set(0,2);W.Set(1,-2);W.Set(2,3);
117  W.T().Print("W:\n");
118 
119  Pds::Ra::Tic();
121  W.T().Print("W:\n");
122  Pds::Ra::Toc();
123 
124  // Testing W with testing data set
126 
127  // Metrics
128  Metrics = Pds::ClassificationMetrics::Calculate(0.5,Yp,Dat.Ycv);
129  Metrics.Print("\nCross validation metrics:\n");
130 
131  Pds::Octave::Plot::PointsX2DYW( Dat.Xcv,
132  Dat.Ycv,
133  W,
134  "testando.m",
135  "example_logisticregression_svm_training.png");
136 
137  // Testing W with testing data set
139 
140  Metrics = Pds::ClassificationMetrics::Calculate(0.5,Yp,Dat.Ytt);
141  Metrics.Print("\nTesting metrics:\n");
142 
143  Pds::Octave::Plot::PointsX2DYW( Dat.Xtt,
144  Dat.Ytt,
145  W,
146  "testando.m",
147  "example_logisticregression_svm_testing.png");
148 
149  return 0;
150 }
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.
void Print(std::string str="")
Imprime en pantalla los datos de la estructura tipo Pds::ClassificationMetrics.
bool SetLambda(double Lambda)
Coloca el valor lambda.
bool SetAlphaSmart(bool AlphaSmart)
Establece el valor AlphaSmart.
bool SetAlpha(double Alpha)
Coloca el valor alpha.
bool SetMaxIter(unsigned int MaxIter)
Coloca el valor MaxIter.
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 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