Linear regression
LINEAR_REGRESSION
linear_regression(Matrix s
, Number learning_rate
, Number max_iteration
, Vector of Number ind_vars
, Number predict_index
, Vector of Number starting_weights
) -> Vector
STABLE
Performs multi linear regression training over Matrix s
.
s
Matrix to use for training.learning_rate
learning rate for gradient descent algorithmmax_iterations
max iterations for gradient descent algorithmpredict_index
Index of value to predict using multi linear regression. Must be the index of a continous numeric value.ind_vars
Indices to use for predicting. Must be the indices of continous numeric values.starting_weights
Starting weights for the linear regression. Must be of sizedim(ind_vars)+1
. If omitted 0 is used at starting weights
Returns: a vector where index
- is the weight vector for the regression model
- is the sse of the model over the training data.
Example:
set :s = (select Vector of v
from Vector v
where v in csv:file_stream(system_models:folder("linear_regression")+
"test/linear_reg2.csv"));
set :v = linear_regression(:s,0.0000001,100,[1],2);
set :a = :v[1];
:v;
show_scatter_plot(350,350,{"float": "left"},{"no_stroke":1,"yrange":[0,4]});
select vector of y
from Vector of Number v, Vector of Number y
where v in :s
and y = [v[1], lr_estimate(:a,permute(v,[1])),2,2]
or v in :s
and y = concat(v,[2,1]);
linear_regression(Charstring model
, Matrix dataset
, Number learning_rate
, Number max_iteration
) -> Record
STABLE
Train linear regression model over dataset
with the gived learning_rate
and max_iterations
model
Name of model created usingnew_lr_model(Charstring,...)
functionsdataset
Matrix containing the dataset to train the model on.learning_rate
Larning rate for the gradient descent during trainingmax_iteration
Maximum number of iterations to run gradient descent training.
Example:
new_lr_model("test",[1],2);
set :s = (select Vector of v
from Vector v
where v in csv:file_stream(system_models:folder("linear_regression")+
"test/linear_reg2.csv"));
set :model = linear_regression("test",:s,0.0000001,100);
show_markdown();
"#Linear regression for model "+:model["name"];
"The weights of the model are: `" + lr_weights(:model) + "`";
"The R-squared of the model is `" + :model["r2"] +"`";
show_scatter_plot(350,350,{"float": "left"},{"no_stroke":1,"yrange":[0,4]});
select vector of y
from Vector of Number v, Vector of Number y
where v in :s
and y = [v[1], lr_estimate("test", v),2,2]
or v in :s
and y = concat(v,[2,1]);
linear_regression(Matrix s
, Number learning_rate
, Number max_iteration
, Vector of Number ind_vars
, Number predict_index
) -> Vector
STABLE
Performs linear regression training over finite Matrix s
.
LR_ESTIMATE
lr_estimate(Vector of Number weights
, Vector of Number input
) -> Number
STABLE
Make an estimation using the weights
from a trained model.
lr_estimate(Charstring model
, Vector of Number input
) -> Number
STABLE
Make an estimation on input
with linear regression model named model
lr_estimate(Record model
, Vector of Number input
) -> Number
STABLE
Make an estimation on input
with linear regression model
LR_IND_VARS
lr_ind_vars(Record lr_model
) -> Vector of Number
STABLE
Retrieve the variable indices of the linear regression model record lr_model
LR_MODEL
lr_model(Charstring name
) -> Record
STABLE
No description.
LR_PREDICT_INDEX
lr_predict_index(Record lr_model
) -> Number
STABLE
Retrieve the prdiction index of the linear regression model record lr_model
LR_R2
lr_r2(Record model
, Matrix dataset
) -> Number
STABLE
Calculate the R-square for a linear regression model over the given dataset
-model
Record containing model data, can be obtained with
lr_model(Charstring)->Record
-dataset
Matrix containing the dataset to calculate R-squared on.
Must be on the same format as the model was trained on.
lr_r2(Matrix dataset
, Number predict_index
, Vector of Number predictions
) -> Number
STABLE
Calculates the R-squared metric given dataset
, predict_index
and
predictions
-dataset
Matrix dataset to calculate R-squared for
-predict_index
What index of each vector in the dataset to calculate R-squared
for.
-predictions
Vector of Number containing the predictions of the model over the
dataset.
lr_r2(Charstring model
, Matrix dataset
) -> Number
STABLE
Convenience function to calculate R-squared for a linear regression model.
see lr_r2(Record model, Matrix dataset) -> Number
for details.
LR_WEIGHTS
lr_weights(Record lr_model
) -> Vector of Number
STABLE
Retrieve the wieghts of the linear regression model record lr_model
NEW_LR_MODEL
new_lr_model(Charstring name
, Vector of Number ind_vars
, Number predict_index
, Vector of Number starting_weights
) -> Object
STABLE
Creates a new linear regression model and stores the meta-data in
lr_model(Charstring name) -> Record
-name
Charstring name of the model
-ind_vars
Indices of the independent variable to use in the training set.
Must be the indices of continous numeric values
-predict_index
Index of the varaible to predict from the training set.
Must be the index of a continous numeric value.
-starting_weights
(Optional) Vector of number containing the starting weights
of the model. must be of size dim(ind_vars)+1
where the
first value is the intercept weight.
new_lr_model(Charstring name
, Vector of Number ind_vars
, Number predict_index
) -> Object
STABLE
No description.