Regression
Author: Val11011Created Nov 10, 2025Updated Mar 30, 2026
In the init method of LinearRegression
def __init__(self, n_iterations=100, learning_rate=0.001, gradient_descent=True):
self.gradient_descent = gradient_descent
# No regularization
self.regularization = lambda x: 0
self.regularization.grad = lambda x: 0
super(LinearRegression, self).__init__(n_iterations=n_iterations,
learning_rate=learning_rate)It calls super.init after setting self.regularization. And the super.init will simply set self.regularization back to None When fitting, the self.regularization will be used as a class
mse = np.mean(0.5 * (y - y_pred)**2 + self.regularization(self.w))
grad_w = -(y - y_pred).dot(X) + self.regularization.grad(self.w)LinearRegression.fit(X, y) will raise
ValueError: Self.regularization must be assignedSource: eriklindernoren/ML-From-Scratch