machine_learning.linear_regression_vectorized ============================================= .. py:module:: machine_learning.linear_regression_vectorized .. autoapi-nested-parse:: 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 --------- .. autoapisummary:: machine_learning.linear_regression_vectorized.collect_dataset machine_learning.linear_regression_vectorized.gradient_descent machine_learning.linear_regression_vectorized.main machine_learning.linear_regression_vectorized.mean_absolute_error Module Contents --------------- .. py:function:: collect_dataset() -> numpy.ndarray Collect dataset of CSGO (ADR vs Rating). :return: dataset as a NumPy array >>> ds = collect_dataset() >>> isinstance(ds, np.ndarray) True >>> ds.shape[1] >= 2 True .. py:function:: 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. :param features: dataset features :param labels: dataset labels :param alpha: learning rate :param iterations: number of iterations :return: 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 # doctest: +SKIP ... ) .. py:function:: main() -> None .. py:function:: 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