【发布时间】:2021-06-13 00:40:55
【问题描述】:
我知道scikit-learn 中的LinearRegression 类和SGDRegressor 类都执行线性回归。但是,只有SGDRegressor 使用梯度下降作为优化算法。
那么LinearRegression使用的优化算法是什么,这两个类还有哪些显着的区别?
【问题讨论】:
标签: machine-learning scikit-learn regression
我知道scikit-learn 中的LinearRegression 类和SGDRegressor 类都执行线性回归。但是,只有SGDRegressor 使用梯度下降作为优化算法。
那么LinearRegression使用的优化算法是什么,这两个类还有哪些显着的区别?
【问题讨论】:
标签: machine-learning scikit-learn regression
LinearRegression 始终使用最小二乘作为损失函数。
对于 SGDRegressor,您可以指定一个损失函数,它使用随机梯度下降 (SGD) 来拟合。对于 SGD,您一次运行一个数据点并根据误差梯度更新参数。
简单来说 - 您可以在不适合 RAM 的训练数据集上训练 SGDRegressor。此外,您可以使用一批新数据更新 SGDRegressor 模型,而无需对整个数据集进行重新训练。
【讨论】:
squared_error作为损失函数时,SGDRegressor的输出(即系数和截距)会发生变化?是否也可以从 SGDRegressor 获得相同的系数?哪种损失函数将有助于这样做?