【问题标题】:Does sklearn's LinearRegression use SVD?sklearn 线性回归是否使用 SVD?
【发布时间】:2021-07-04 21:29:51
【问题描述】:

我找不到 sklearn 的 LinearRegression 实现的实现细节。在https://scikit-learn.org/stable/modules/linear_model.html,第 1.1.1.2 节。似乎暗示它使用SVD。我认为我见过的大多数实现都使用 QR 分解。 有谁知道为什么 sklearn 使用 SVD 代替(假设确实是它使用的)?

【问题讨论】:

    标签: scikit-learn scipy regression linear-regression


    【解决方案1】:

    Scikit-learn 的 LinearRegression 使用不同的算法来拟合回归模型:

    • scipy.linalg.lstsq 在密集的情况下与positive=False
    • scipy.sparse.linalg.lsqr 在稀疏情况下与 positive=False
    • scipy.optimize.nnls 当positive=True

    有关这些算法的更多详细信息,请参阅 scipy 文档:


    关于 scipy 在scipy.linalg.lstsq 中默认使用gelsd 的选择,请参见this thread 示例。

    【讨论】:

    • 我是 scikit-learn 的新手,但 scipy 与此有何关系?
    猜你喜欢
    • 2018-05-16
    • 2020-08-06
    • 2021-02-20
    • 2018-08-11
    • 2014-05-05
    • 2015-01-29
    • 2020-12-24
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多