我知道scikit-learn
中的LinearRegression
类和SGDRegressor
类都执行线性回归。然而,只有SGDRegressor
使用梯度下降作为优化算法。
那么LinearRegression
使用的优化算法是什么,这两个类之间还有哪些其他显著的区别?
回答:
LinearRegression始终使用最小二乘法作为损失函数。
对于SGDRegressor,您可以指定损失函数,并使用随机梯度下降(SGD)来拟合。对于SGD,您一次处理一个数据点进行训练,并根据误差梯度更新参数。
简单来说——您可以在不适合内存的训练数据集上训练SGDRegressor。此外,您可以用新的数据批次更新SGDRegressor模型,而无需在整个数据集上重新训练。