LinearRegression 和 SGDRegressor 有什么区别?
What is the difference between LinearRegression and SGDRegressor?
我了解到 LinearRegression
class 和 scikit-learn
中的 SGDRegressor
class 都执行线性回归。但是,只有SGDRegressor
使用梯度下降作为优化算法。
那么LinearRegression
使用的优化算法是什么,这两个class的其他显着区别是什么?
LinearRegression 总是使用最小二乘法作为损失函数。
对于 SGDRegressor 您可以指定一个损失函数,它使用随机梯度下降 (SGD) 来拟合。对于 SGD,你 运行 训练一次设置一个数据点并根据误差梯度更新参数。
简而言之 - 您可以在不适合 RAM 的训练数据集上训练 SGDRegressor。此外,您可以使用新一批数据更新 SGDRegressor 模型,而无需对整个数据集进行重新训练。
我了解到 LinearRegression
class 和 scikit-learn
中的 SGDRegressor
class 都执行线性回归。但是,只有SGDRegressor
使用梯度下降作为优化算法。
那么LinearRegression
使用的优化算法是什么,这两个class的其他显着区别是什么?
LinearRegression 总是使用最小二乘法作为损失函数。
对于 SGDRegressor 您可以指定一个损失函数,它使用随机梯度下降 (SGD) 来拟合。对于 SGD,你 运行 训练一次设置一个数据点并根据误差梯度更新参数。
简而言之 - 您可以在不适合 RAM 的训练数据集上训练 SGDRegressor。此外,您可以使用新一批数据更新 SGDRegressor 模型,而无需对整个数据集进行重新训练。