machine_learning.linear_regression_vectorized

Vectorized Linear Regression using Gradient Descent

Author: Somrita Banerjee (mailto:somritabanerjee126@gmail.com)

Dataset used: CSGO dataset (ADR vs Rating)

References: https://en.wikipedia.org/wiki/Linear_regression

Functions

collect_dataset(→ numpy.ndarray)

Collect dataset of CSGO (ADR vs Rating).

gradient_descent(→ numpy.ndarray)

Run gradient descent in a fully vectorized form.

main(→ None)

mean_absolute_error(→ float)

Return mean absolute error.

Module Contents

machine_learning.linear_regression_vectorized.collect_dataset() numpy.ndarray

Collect dataset of CSGO (ADR vs Rating).

Returns:

dataset as a NumPy array

>>> ds = collect_dataset()
>>> isinstance(ds, np.ndarray)
True
>>> ds.shape[1] >= 2
True
machine_learning.linear_regression_vectorized.gradient_descent(features: numpy.ndarray, labels: numpy.ndarray, alpha: float = 0.000155, iterations: int = 100000) numpy.ndarray

Run gradient descent in a fully vectorized form.

Parameters:
  • features – dataset features

  • labels – dataset labels

  • alpha – learning rate

  • iterations – number of iterations

Returns:

learned feature vector theta

>>> import numpy as np
>>> features = np.array([[1, 1], [1, 2], [1, 3]])
>>> labels = np.array([[1], [2], [3]])
>>> theta = gradient_descent(
...     features, labels, alpha=0.01, iterations=1000
... )
machine_learning.linear_regression_vectorized.main() None
machine_learning.linear_regression_vectorized.mean_absolute_error(predicted_y: numpy.ndarray, original_y: numpy.ndarray) float

Return mean absolute error.

>>> pred = np.array([3, -0.5, 2, 7])
>>> orig = np.array([2.5, 0.0, 2, 8])
>>> mean_absolute_error(pred, orig)
0.5