λ:正则化参数
高λ值,增加对权重的惩罚(为了降低J,模型在迭代中就会想办法降低参数w的值,过拟合减少,但可能导致模型更简单)
低λ值,减少对权重的惩罚,可能使模型更复杂(过拟合风险增加)。
def __init__(self, learning_rate=0.01, iterations=1000, lambda_=0.1):
self.lambda_ = lambda_
# 计算梯度
tmp_m = self.m - self.learning_rate * ((1/m) * np.sum((y_pred - y) * X) + self.lambda_/m * self.m)
# 更新参数
self.m = tmp_m
代码只截取了部分