在机器学习的课程中https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables#Gradient_Descent_for_Multiple_Variables,它表示梯度下降应该收敛.
我使用scikit学习的线性回归.它不提供梯度下降信息.我已经看到很多关于stackoverflow的问题,以实现具有梯度下降的线性回归.
我们如何在现实世界中使用来自scikit-learn或pandas的线性回归?或者为什么scikit-learn或pandas不提供线性回归输出中的梯度下降信息?
Scikit learn为您提供了两种线性回归方法:
1)LinearRegression
对象使用来自scipy的普通最小二乘求解器,因为LR是具有闭合形式解的两个分类器之一.尽管有ML课程 - 你实际上可以通过反转和乘法一些矩阵来学习这个模型.
2)SGDClassifier
这是随机梯度下降的实现,非常通用的,你可以选择你的惩罚条款.要获得线性回归,您可以选择损失L2
和惩罚none
(线性回归)或L2
(岭回归)
没有"典型的梯度下降",因为它在实践中很少使用.如果你可以将损失函数分解为附加项,那么已知随机方法表现得更好(因此SGD)并且如果你可以节省足够的内存 - OLS方法更快更容易(因此首先解决方案).