sklearn Lasso回归中的学习率是如何计算的?

数据挖掘 线性回归 正则化 学习率 岭回归 套索
2022-03-05 11:05:16

我将不同的回归模型应用于 Kaggle Housing 数据集以进行高级回归。我打算测试套索弹性网然而,这些模型都没有将学习率作为参数。

这些模型的学习率是如何计算的?它是否依赖于正在训练的数据集?我知道这些模型是正则化线性回归,并且必须使用学习率来更新它们的模型权重。还是他们更新模型的不同方式?

1个回答

使用 sklearn,您可以有两种线性回归方法:

1)LinearRegression对象使用来自 scipy 的普通最小二乘 (OLS) 求解器,因为学习率 (LR) 是具有闭式解的两个分类器之一。这是通过对一些矩阵进行反转和相乘来实现的。

2)SGDRegressor这是随机梯度下降的一种实现,非常通用的一种,您可以在其中选择惩罚项。要获得线性回归,您可以选择损失L2并惩罚none(线性回归)或L2(岭回归)

没有“典型的梯度下降”,因为它在实践中很少使用。如果您可以将损失函数分解为附加项,则已知随机方法表现更好(因此 SGD),并且如果您可以腾出足够的内存 - OLS 方法更快更容易(因此是第一个解决方案)。

这个答案主要来自https://stackoverflow.com/questions/34469237/linear-regression-and-gradient-descent-in-scikit-learn-pandas/34470001#34470001 OP @Netro 是,答案来自@莱洛特