微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sklearn 的 LinearRegression 是否使用 SVD?

如何解决sklearn 的 LinearRegression 是否使用 SVD?

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

解决方法

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

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

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


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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。