liba 0.1.15
An algorithm library based on C/C++
Loading...
Searching...
No Matches
linear regression
Collaboration diagram for linear regression:

Data Structures

struct  a_regress_linear
 instance structure for linear regression More...
 

Typedefs

typedef struct a_regress_linear a_regress_linear
 

Functions

void a_regress_linear_init (a_regress_linear *ctx, double *coef_p, size_t coef_n, double bias)
 initialize for linear regression
 
double a_regress_linear_eval (a_regress_linear const *ctx, double const *val)
 calculate predicted value for linear regression
 
void a_regress_linear_err1 (a_regress_linear const *ctx, size_t n, double const *x, double const *y, double *err)
 calculate residuals for linear regression
 
void a_regress_linear_err2 (a_regress_linear const *ctx, size_t n, double const *const *x, double const *y, double *err)
 calculate residuals for linear regression
 
void a_regress_linear_pdm1 (a_regress_linear const *ctx, size_t n, double const *x, double *pdm, double y_mean)
 calculate prediction deviation from mean for linear regression
 
void a_regress_linear_pdm2 (a_regress_linear const *ctx, size_t n, double const *const *x, double *pdm, double y_mean)
 calculate prediction deviation from mean for linear regression
 
void a_regress_linear_gd (a_regress_linear *ctx, double const *input, double error, double alpha)
 gradient descent for linear regression
 
void a_regress_linear_sgd (a_regress_linear *ctx, double const *x, double y, double alpha)
 stochastic gradient descent for linear regression
 
void a_regress_linear_sgd1 (a_regress_linear *ctx, size_t n, double const *x, double const *y, double alpha)
 stochastic gradient descent for linear regression
 
void a_regress_linear_sgd2 (a_regress_linear *ctx, size_t n, double const *const *x, double const *y, double alpha)
 stochastic gradient descent for linear regression
 
void a_regress_linear_bgd1 (a_regress_linear *ctx, size_t n, double const *x, double const *err, double alpha)
 batch gradient descent for linear regression
 
void a_regress_linear_bgd2 (a_regress_linear *ctx, size_t n, double const *const *x, double const *err, double alpha)
 batch gradient descent for linear regression
 
double a_regress_linear_mgd1 (a_regress_linear *ctx, size_t n, double const *x, double const *y, double *err, double delta, double lrmax, double lrmin, size_t lrtim, size_t epoch, size_t batch)
 mini-batch gradient descent for linear regression
 
double a_regress_linear_mgd2 (a_regress_linear *ctx, size_t n, double const *const *x, double const *y, double *err, double delta, double lrmax, double lrmin, size_t lrtim, size_t epoch, size_t batch)
 mini-batch gradient descent for linear regression
 
void a_regress_linear_zero (a_regress_linear *ctx)
 zeroing for linear regression
 

Detailed Description

Function Documentation

◆ a_regress_linear_bgd1()

void a_regress_linear_bgd1 ( a_regress_linear * ctx,
size_t n,
double const * x,
double const * err,
double alpha )

batch gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n*coef_n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]errresiduals, specified as a numeric vector
[in]alphalearning rate for gradient descent

◆ a_regress_linear_bgd2()

void a_regress_linear_bgd2 ( a_regress_linear * ctx,
size_t n,
double const *const * x,
double const * err,
double alpha )

batch gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n][coef_n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]errresiduals, specified as a numeric vector
[in]alphalearning rate for gradient descent

◆ a_regress_linear_err1()

void a_regress_linear_err1 ( a_regress_linear const * ctx,
size_t n,
double const * x,
double const * y,
double * err )

calculate residuals for linear regression

Parameters
[in]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n*coef_n], y[n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in,out]errresiduals, specified as a numeric vector

◆ a_regress_linear_err2()

void a_regress_linear_err2 ( a_regress_linear const * ctx,
size_t n,
double const *const * x,
double const * y,
double * err )

calculate residuals for linear regression

Parameters
[in]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n][coef_n], y[n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in,out]errresiduals, specified as a numeric vector

◆ a_regress_linear_eval()

double a_regress_linear_eval ( a_regress_linear const * ctx,
double const * val )

calculate predicted value for linear regression

Parameters
[in]ctxpoints to an instance of linear regression
[in]valindependent variables
Returns
predicted value

◆ a_regress_linear_gd()

void a_regress_linear_gd ( a_regress_linear * ctx,
double const * input,
double error,
double alpha )

gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]inputpredictor data, specified as a numeric vector
[in]errorresidual, specified as a numeric scalar
[in]alphalearning rate for gradient descent

◆ a_regress_linear_init()

void a_regress_linear_init ( a_regress_linear * ctx,
double * coef_p,
size_t coef_n,
double bias )

initialize for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]coef_ppoints to regression coefficients
[in]coef_nnumber of regression coefficients
[in]biasintercept

◆ a_regress_linear_mgd1()

double a_regress_linear_mgd1 ( a_regress_linear * ctx,
size_t n,
double const * x,
double const * y,
double * err,
double delta,
double lrmax,
double lrmin,
size_t lrtim,
size_t epoch,
size_t batch )

mini-batch gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n*coef_n], y[n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in,out]errresiduals, specified as a numeric vector
[in]deltathreshold for gradient descent value
[in]lrminminimum learning rate of iterations
[in]lrmaxmaximum learning rate of iterations
[in]lrtimtotal number of learning rate steps
[in]epochmaximum number of epochs
[in]batchbatch size of data
Returns
change in loss function

◆ a_regress_linear_mgd2()

double a_regress_linear_mgd2 ( a_regress_linear * ctx,
size_t n,
double const *const * x,
double const * y,
double * err,
double delta,
double lrmax,
double lrmin,
size_t lrtim,
size_t epoch,
size_t batch )

mini-batch gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n][coef_n], y[n], err[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in,out]errresiduals, specified as a numeric vector
[in]deltathreshold for gradient descent value
[in]lrminminimum learning rate of iterations
[in]lrmaxmaximum learning rate of iterations
[in]lrtimtotal number of learning rate steps
[in]epochmaximum number of epochs
[in]batchbatch size of data
Returns
change in loss function

◆ a_regress_linear_pdm1()

void a_regress_linear_pdm1 ( a_regress_linear const * ctx,
size_t n,
double const * x,
double * pdm,
double y_mean )

calculate prediction deviation from mean for linear regression

Parameters
[in]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n*coef_n], pdm[n]
[in]xpredictor data, specified as a numeric matrix
[in,out]pdmdeviation, specified as a numeric vector
[in]y_meanmean of response data

◆ a_regress_linear_pdm2()

void a_regress_linear_pdm2 ( a_regress_linear const * ctx,
size_t n,
double const *const * x,
double * pdm,
double y_mean )

calculate prediction deviation from mean for linear regression

Parameters
[in]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n][coef_n], pdm[n]
[in]xpredictor data, specified as a numeric matrix
[in,out]pdmdeviation, specified as a numeric vector
[in]y_meanmean of response data

◆ a_regress_linear_sgd()

void a_regress_linear_sgd ( a_regress_linear * ctx,
double const * x,
double y,
double alpha )

stochastic gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]xpredictor data, specified as a numeric vector
[in]yresponse data, specified as a numeric scalar
[in]alphalearning rate for gradient descent

◆ a_regress_linear_sgd1()

void a_regress_linear_sgd1 ( a_regress_linear * ctx,
size_t n,
double const * x,
double const * y,
double alpha )

stochastic gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n*coef_n], y[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in]alphalearning rate for gradient descent

◆ a_regress_linear_sgd2()

void a_regress_linear_sgd2 ( a_regress_linear * ctx,
size_t n,
double const *const * x,
double const * y,
double alpha )

stochastic gradient descent for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression
[in]nnumber of samples, x[n][coef_n], y[n]
[in]xpredictor data, specified as a numeric matrix
[in]yresponse data, specified as a numeric vector
[in]alphalearning rate for gradient descent

◆ a_regress_linear_zero()

void a_regress_linear_zero ( a_regress_linear * ctx)

zeroing for linear regression

Parameters
[in,out]ctxpoints to an instance of linear regression