LinearRegression 和 SGDRegressor 有什么区别?

raj*_*jee 2 regression machine-learning scikit-learn

我知道LinearRegression类和SGDRegressor类都scikit-learn执行线性回归。然而,仅SGDRegressor使用梯度下降作为优化算法。

那么 所使用的优化算法是什么LinearRegression,这两个类之间还有哪些其他显着差异?

Dan*_*bak 5

线性回归始终使用最小二乘作为损失函数。

对于SGDRegressor,您可以指定一个损失函数,它使用随机梯度下降 (SGD) 进行拟合。对于 SGD,您一次运行一个数据点的训练集,并根据误差梯度更新参数。

简而言之 - 您可以在不适合 RAM 的训练数据集上训练 SGDRegressor。此外,您可以使用一批新数据更新 SGDRegressor 模型,而无需对整个数据集进行重新训练。