Linear Regression

Single Parameter

class touvlo.lin_rg.AbstractLinearRegression(theta=None)[source]

Represents the definitons common to all Linear Regressions.

Parameters:theta (numpy.array) – Column vector of model’s parameters. Defaults to None
theta

Column vector of model’s parameters.

Type:numpy.array
fit(X, y, strategy='BGD', alpha=0.1, num_iters=100, **kwargs)[source]

Adjusts model parameters to training data.

Parameters:
  • X (numpy.array) – Features’ dataset.
  • y (numpy.array) – Column vector of expected values.
  • strategy (str) –

    Which optimization strategy should be employed:

    • ’BGD’: Performs Batch Gradient Descent
    • ’SGD’: Performs Stochastic Gradient Descent
    • ’MBGD’: Performs Mini-Batch Gradient Descent
    • ’normal_equation’: Employs Normal Equation
  • alpha (float) – Learning rate or _step size of the optimization.
  • num_iters (int) – Number of times the optimization will be performed.
Returns:

None

predict(X)[source]

Computes prediction vector.

Parameters:X (numpy.array) – Features’ dataset.
Returns:vector with a prediction for each example.
Return type:numpy.array
class touvlo.lin_rg.LinearRegression(theta=None)[source]

Represents an Unregularized Linear Regression model

Parameters:theta (numpy.array) – Column vector of model’s parameters. Defaults to None
theta

Column vector of model’s parameters.

Type:numpy.array
cost(X, y)[source]

Computes the cost function J for Linear Regression.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
Returns:

Computed cost.

Return type:

float

class touvlo.lin_rg.RidgeLinearRegression(theta=None, _lambda=0)[source]

Represents a Ridge Linear Regression model

Parameters:
  • theta (numpy.array) – Column vector of model’s parameters. Defaults to None
  • _lambda (float) – The regularization hyperparameter.
theta

Column vector of model’s parameters.

Type:numpy.array
_lambda

The regularization hyperparameter.

Type:float
cost(X, y, **kwargs)[source]
Computes the regularized cost function J for
Ridge Linear Regression.
Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
Returns:

Computed cost.

Return type:

float

touvlo.lin_rg.cost_func(X, y, theta)[source]

Computes the cost function J for Linear Regression.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
  • theta (numpy.array) – Column vector of model’s parameters.
Returns:

Computed cost.

Return type:

float

touvlo.lin_rg.grad(X, y, theta)[source]

Computes the gradient for Linear Regression.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
  • theta (numpy.array) – Column vector of model’s parameters.
Returns:

Gradient column vector.

Return type:

numpy.array

touvlo.lin_rg.h(X, theta)[source]

Linear regression hypothesis.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • theta (numpy.array) – Column vector of model’s parameters.
Returns:

The projected value for each line of the dataset.

Return type:

numpy.array

touvlo.lin_rg.normal_eqn(X, y)[source]

Produces optimal theta via normal equation.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
Raises:

LinAlgError

Returns:

Optimized model parameters theta.

Return type:

numpy.array

touvlo.lin_rg.predict(X, theta)[source]

Computes prediction vector.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • theta (numpy.array) – Column vector of model’s parameters.
Returns:

vector with predictions for each input line.

Return type:

numpy.array

touvlo.lin_rg.reg_cost_func(X, y, theta, _lambda)[source]

Computes the regularized cost function J for Linear Regression.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
  • theta (numpy.array) – Column vector of model’s parameters.
  • _lambda (float) – The regularization hyperparameter.
Returns:

Computed cost with regularization.

Return type:

float

touvlo.lin_rg.reg_grad(X, y, theta, _lambda)[source]

Computes the regularized gradient for Linear Regression.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
  • theta (numpy.array) – Column vector of model’s parameters.
  • _lambda (float) – The regularization hyperparameter.
Returns:

Regularized gradient column vector.

Return type:

numpy.array

touvlo.lin_rg.reg_normal_eqn(X, y, _lambda)[source]

Produces optimal theta via normal equation.

Parameters:
  • X (numpy.array) – Features’ dataset plus bias column.
  • y (numpy.array) – Column vector of expected values.
  • _lambda (float) – The regularization hyperparameter.
Returns:

Optimized model parameters theta.

Return type:

numpy.array