【问题标题】:LinearRegression algorithm线性回归算法
【发布时间】:2021-07-07 06:20:49
【问题描述】:

scikit-learn 中的 LinearRegression() 函数使用代数中的哪个算法实现?

【问题讨论】:

  • 你说的是哪个库?
  • 我正在使用 sklearn。
  • 还有一个“statsmodels”模块,提供“.ols()”函数。我只是想知道实现这些函数时使用的算法(数值线性代数)。

标签: python scikit-learn


【解决方案1】:

来自文档:

LinearRegression 拟合系数为 w = (w1, ..., wp) 的线性模型,以最小化数据集中观察到的目标与通过线性近似预测的目标之间的残差平方和。

所以 LinearRegression 使用 OLS,即普通最小二乘回归

【讨论】:

  • 但我想知道在其实现中使用的矩阵分解方法以获得更好的准确性和稳定性
  • 如果您查看以下文档:solver (scikit-learn.org/stable/modules/generated/…),您有不同的可能性。默认设置为自动,但您可以定义另一个选项,如 cholesky、svd 等...您正在寻找哪种分解矩阵?
  • 当您发布报价时,包含相关链接也可以说是一个好习惯(“文档”是一个相当模糊的术语,而 scikit-learn 文档非常庞大)。
【解决方案2】:

Sklearn 是开源的,源代码在 GitHub 上提供。

LinearRegression 的代码是 here,所以来自 cmets:

From the implementation point of view, this is just plain Ordinary
Least Squares (scipy.linalg.lstsq) or Non Negative Least Squares
(scipy.optimize.nnls) wrapped as a predictor object.

如果您想了解更多细节,可以阅读代码。

【讨论】:

    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多