Scikit learn sklearn';s线性回归使用SVD?
我找不到sklearn的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
线性回归
实现的详细信息。在第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与此有何关系?