Linear Regression. It uses Gradient Descent to estimate the coefficients.
Syntax
parameters = linearfit(X,y)
parameters = linearfit(X,y,options)
Inputs
 X
 Training data.
 Type: double
 Dimension: vector  matrix
 y
 Target values.
 Type: double
 Dimension: vector  matrix
 options
 Type: struct

 alpha
 Learning rate of the Gradient Descent algorithm (default: 0.01).
 Type: double  integer
 Dimension: scalar
 to_normalize
 If true, input data X will be normalized before performing regression (default: false). It is done by subtracting mean and dividing by the standard deviation.
 Type: Boolean
 Dimension: logical
 l2_penalty
 Regularization Strength (default: 0). If value greater than 0, it becomes Ridge Regression.
 Type: double  integer
 Dimension: scalar
 iters
 Maximum number of iterations to apply Gradient Descent (default: 500).
 Type: integer
 Dimension: scalar
 method
 Optimization method to be used to estimate coefficients. Only supported method is Gradient Descent. Default: 'gd'
 Type: char
 Dimension: string
Outputs
 parameters
 Contains all the values passed to linearfit method as options. Additionally it has below keyvalue pairs.
 Type: struct

 scorer
 Function handle pointing to r2 function (R2 Coefficient of Determination).
 Type: function handle
 intercept
 Estimated intercept.
 Type: integer
 Dimension: scalar
 coef
 Estimated coefficients
 Type: double
 Dimension: vector
 params
 Contains both intercept and coef as a vector. It is used by predict method.
 Type: double
 Dimension: vector
 costHistory
 Cost of the model during training from 0 to specified number of iterations. It can be plotted.
 Type: double
 Dimension: vector
 n_samples
 Number of rows in the training data.
 Type: integer
 Dimension: scalar
 n_features
 Number of columns in the training data.
 Type: integer
 Dimension: scalar
Example
Usage of linearfit with options
X = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18; 19 20 21];
y = [1, 2, 3, 4, 5, 6, 7];
options = struct;
options.to_normalize = true;
options.alpha = 0.3;
parameters = linearfit(X, y, options)
parameters = struct [
alpha: 0.3
coef: [Matrix] 3 x 1
0.66667
0.66667
0.66667
costHistory: [Matrix] 1 x 500 Row[1] …
intercept: 4
iters: 500
l2_penalty: 0
method: gd
n_features: 3
n_samples: 7
params: [Matrix] 4 x 1
4.00000
0.66667
0.66667
0.66667
scorer: @rmse
to_normalize: 1
]
Comments
It estimates the coefficient using Gradient Descent method. Once the coefficients are computed, outputs are predicted using linearpredict method. Output 'parameters' can be passed to linearpredict function