machine_learning.mini_batch_gradient_descent

Mini-Batch Gradient Descent : https://en.wikipedia.org/wiki/Stochastic_gradient_descent Mini-batch gradient descent is an optimization method for training models by splitting the data into small batches.

Functions

mini_batch_gradient_descent(→ tuple[numpy.ndarray, float])

Mini-Batch Gradient Descent for linear regression.

Module Contents

machine_learning.mini_batch_gradient_descent.mini_batch_gradient_descent(feature_matrix: numpy.ndarray, target_values: numpy.ndarray, learning_rate: float = 0.01, batch_size: int = 16, n_epochs: int = 50, random_seed: int | None = None) tuple[numpy.ndarray, float]

Mini-Batch Gradient Descent for linear regression.

Parameters

feature_matrix: Feature matrix. target_values: Target values. learning_rate: Learning rate. batch_size: Size of mini-batches. n_epochs: Number of training epochs. random_seed: Random seed for reproducibility.

Returns

weights: Learned weights. bias: Learned bias.

Example

>>> import numpy as np
>>> X = np.array([[1], [2], [3], [4]])
>>> y = np.array([2, 4, 6, 8])
>>> w, b = mini_batch_gradient_descent(
...     X, y, learning_rate=0.1, batch_size=2, n_epochs=100, random_seed=42
... )
>>> round(float(w[0]), 1)  # slope close to 2
2.0