Programa para el testeo de las funciones.
#include <cmath>
#include <Pds/Ra>
#include <cfloat>
int main(void)
{
unsigned int L=1000;
unsigned int iter=0;
double alpha=0.1;
double lambda=0.01;
std::cout<<std::endl;
do
{
g=(1.0/L)*R.
TMul(Yhat-Y)+(lambda/3)*W;
W=W-alpha*g;
iter++;
}
while(Yhat.
MSE(Y)>1.0e-1);
std::cout<<"iter:\t"<<iter<<"\n";
std::cout<<
"MSE:\t"<<Yhat.
MSE(Y)<<
"\n";
std::cout<<std::endl;
iter=0;
do
{
g=(1.0/L)*R.
TMul(Yhat-Y)+(lambda/3)*W;
W=W-alpha*g;
iter++;
}
while(Yhat.
MSE(Y)>1.0e-1);
std::cout<<"iter:\t"<<iter<<"\n";
std::cout<<
"MSE:\t"<<Yhat.
MSE(Y)<<
"\n";
}
La clase tipo Pds::Line2D . Esta clase genera un objeto con dos parámetros theta y rho....
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
La clase tipo Pds::OptAdam . Esta clase genera un objeto con dos parametros Nlin y Ncol....
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
const double Pi
Número PI.
Pds::Matrix RegressorMatrix(const std::initializer_list< Pds::Matrix > list)
Retorna una Regressor Matrix , creado concatenando verticalmente las matrices en una lista ....
Pds::Matrix RandU(unsigned int N)
Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0.
Pds::Vector EvalSamples(const Pds::Matrix &X) const
Evalua cada linea de la matrix en la ecuación .
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Line2D, elementos separados por tabulador.
double Accuracy(const Pds::Matrix &A, const Pds::Matrix &B, double Umbral=0.5)
Calcula el valor de la Accuracy entre los elementos de las matrices A y B. A>Umbral,...
Pds::Matrix Sigmoid(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función sigmoid.
Pds::Matrix TMul(const Pds::Matrix &B) const
Multiplica con la transpuesta de sí mismo (A^T), la matriz B y el resultado es cargado en C....
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
double MSE(const Pds::Matrix &B) const
Calcula valor del error quadrático medio (Mean Square Error) entre las matrices y .
bool FillRandN(void)
Inicializa la matriz con números aleatórios, distribuidos usando una distribución Gaussiana normaliza...
Pds::Matrix Geq(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es mayor o igual que un valor b y el resulta...
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el número de lineas y columans.
void Print(const std::string &str, unsigned int precision) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::OptAdam, elementos separados por tabulador.
bool OptimizeGradient(Pds::Matrix &g)
Calcula el gradiente optimizado .
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,...
bool DAspect
Habilita o deshabilita daspect([1 1 1]) en el código octave. Por defecto:
bool PointsX2DY(const Pds::Matrix &X, const Pds::Vector &Y, 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,...
double Toc(void)
Retorna e imprime en pantalla el tiempo transcurrido desde Pds::Ra::Tic()
clock_t Tic(void)
Retorna el número de clocks actual. Este valor tambien es salvado internamente.