线性数据的正则多项式回归-仅惩罚2度系数

时间:2019-12-27 12:38:46

标签: python scikit-learn regression gradient-descent mse

我已经在Python中实现了梯度下降,以使用MSE作为损失函数来执行正则多项式回归,但是对线性数据进行了验证(证明正则化的作用)。

所以我的模型采用以下形式:

enter image description here

在我的损失函数中,R代表正则项:

enter image description here

让我们以L2范数为正则化,损失函数w.r.t的偏导数。 wi如下:

enter image description here

最后,使用恒定的学习率更新系数wi:

enter image description here

问题是我无法收敛,因为正则化惩罚多项式的2级(w2)和1级(w1)的系数,而在我的情况下我希望它惩罚因为数据是线性的,所以只有前者。

由于Scikit-learn中实现的LassoCV和RidgeCV都能做到这一点,所以有可能实现这一目标吗?还是上面给出的方程式有误?

我怀疑恒定的学习率(mu)也会有问题,使它具有自适应性的简单公式是什么?

1 个答案:

答案 0 :(得分:0)

我最终使用了this tutorial中所述的Coordinate descent,并在其中添加了正则项(L1或L2)。经过相对大量的迭代,w2几乎为零(因此,预测模型是线性的)。