Scikit learn sklearn';s线性回归使用SVD?

Scikit learn sklearn';s线性回归使用SVD?,scikit-learn,scipy,regression,linear-regression,Scikit Learn,Scipy,Regression,Linear Regression,我找不到sklearn的线性回归实现的详细信息。在第1.1.1.2节中。似乎暗示它使用SVD。我认为我见过的大多数实现都使用QR分解。 有人知道为什么sklearn使用SVD(假设它确实使用SVD)?Scikit learn的线性回归使用不同的算法来拟合回归模型: scipy.linalg.lstsq在密集情况下为positive=False scipy.sparse.linalg.lsqr在带有positive=False的稀疏情况下 scipy.optimize.nnls当positive

我找不到sklearn的
线性回归
实现的详细信息。在第1.1.1.2节中。似乎暗示它使用SVD。我认为我见过的大多数实现都使用QR分解。
有人知道为什么sklearn使用SVD(假设它确实使用SVD)?

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

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

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

  • 默认情况下,使用名为 ?gelsd。使用a的奇异值分解和分治方法计算线性最小二乘问题的最小范数解

  • 使用“迭代方法近似解决方案”
  • 使用基于“活动集方法”的“FORTRAN解算器”


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

我是scikit新手,但scipy与此有何关系?