【问题标题】:What is the difference between LinearRegression and SGDRegressor?LinearRegression 和 SGDRegressor 有什么区别?
【发布时间】:2021-06-13 00:40:55
【问题描述】:

我知道scikit-learn 中的LinearRegression 类和SGDRegressor 类都执行线性回归。但是,只有SGDRegressor 使用梯度下降作为优化算法。

那么LinearRegression使用的优化算法是什么,这两个类还有哪些显着的区别?

【问题讨论】:

    标签: machine-learning scikit-learn regression


    【解决方案1】:

    LinearRegression 始终使用最小二乘作为损失函数。

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

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

    【讨论】:

    • 为什么使用squared_error作为损失函数时,SGDRegressor的输出(即系数和截距)会发生变化?是否也可以从 SGDRegressor 获得相同的系数?哪种损失函数将有助于这样做?
    猜你喜欢
    • 2017-03-27
    • 2018-04-08
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    • 2011-11-22
    相关资源
    最近更新 更多