Scikit学习/熊猫的线性回归和梯度下降?

时间:2015-12-26 06:57:54

标签: python pandas machine-learning scikit-learn

在机器学习的课程中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在线性回归输出中不提供梯度下降信息?

1 个答案:

答案 0 :(得分:30)

Scikit learn为您提供了两种线性回归方法:

1)LinearRegression对象使用scipy中的普通最小二乘解算器,因为LR是具有闭合形式解的两个分类器之一。尽管有ML课程 - 你实际上可以通过反转和乘法化一些矩阵来学习这个模型。

2)SGDClassifier这是随机梯度下降的实现,非常通用,你可以选择你的惩罚条款。要获得线性回归,您可以选择损失L2,也可以选择none(线性回归)或L2(岭回归)

没有“典型的梯度下降”,因为它在实践中很少使用。如果你可以将你的损失函数分解为附加项,那么已知随机方法表现得更好(因此是SGD),如果你可以节省足够的内存 - OLS方法更快更容易(因此首先解决方案)。