Home | Develop | Download | Contact
example_logisticregression_ce_svm_hard.cpp
1 
76 #include <iostream>
77 #include <Pds/Ra>
78 #include <Pds/Ml>
79 
80 int main(void)
81 {
85 
86  Pds::Matrix X;
87  Pds::Vector Y;
88  unsigned int L=1000;
90 
91  Pds::Vector Yp;
92  Pds::Vector W0(X.Ncol()+1), W;
93 
94 
95  // Create W0 using training data
97  W0.T().Print(" W0: ");
98  std::cout<<std::endl;
99 
100  Pds::Octave::YLimits=true;
101  Pds::Octave::XLabel="x_1";
102  Pds::Octave::YLabel="x_2";
103  Pds::Octave::Plot::PointsX2DYW(X,Y,W0,"testando_dat.m","example_logisticregression_ce_svm_hard_dat.png");
104 
105  // Create W using Pds::LogisticModel::FittingGradientCrossEntropy()
106  Pds::IterationConf Conf;
107  Conf.Show=true; Conf.SetMinError(1e-06); Conf.SetAlpha(0.1); Conf.SetLambda(0.1);
108 
110  W.T().Print(" W_ce: ");
111  std::cout<<std::endl;
112 
114  double IG_ce=Pds::InformationGain(Y,Y.FindRowsBlock(Yp));
115 
116  Pds::Octave::YLimits=true;
117  Pds::Octave::Plot::PointsX2DYW(X,Y,W,"testando.m","example_logisticregression_ce_svm_hard_ce.png");
118 
119  // Create W using Pds::LogisticModel::FittingGradientSVM()
120  Conf.Show=true; Conf.SetMinError(1e-07); Conf.SetAlpha(0.1); Conf.SetLambda(0.1);
121 
123  W.T().Print("W_svm: ");
124  std::cout<<std::endl;
125 
127  double IG_svm=Pds::InformationGain(Y,Y.FindRowsBlock(Yp));
128 
129  Pds::Octave::YLimits=true;
130  Pds::Octave::Plot::PointsX2DYW(X,Y,W,"testando.m","example_logisticregression_ce_svm_hard_svm.png");
131 
132  // Information gain
133  std::cout<<std::endl;
134  std::cout<<" IG_ce: "<<IG_ce<<std::endl;
135  std::cout<<"IG_svm: "<<IG_svm<<std::endl;
136 
137  return 0;
138 }
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
bool SetLambda(double Lambda)
Coloca el valor lambda.
bool SetAlpha(double Alpha)
Coloca el valor alpha.
bool SetMinError(double MinError)
Coloca el valor MinError.
void LoadDataBand2(unsigned int L, Pds::Matrix &X, Pds::Vector &Y)
Clasificacion de datos separados por mas de una curva.
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.
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