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