线性回归和Scikit-learn中的梯度下降?

这门Coursera机器学习课程中,提到梯度下降应该会收敛。

我使用的是Scikit-learn中的线性回归。它没有提供关于梯度下降的信息。我在StackOverflow上看到很多关于如何使用梯度下降实现线性回归的问题。

我们如何在现实世界中使用Scikit-learn的线性回归?或者为什么Scikit-learn在线性回归输出中不提供梯度下降信息?


回答:

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

  1. LinearRegression对象使用来自scipy的普通最小二乘法求解器,因为线性回归是两种具有闭合形式解的分类器之一。尽管机器学习课程中提到,你实际上可以通过简单地对一些矩阵进行求逆和乘法来学习这个模型。

  2. SGDRegressor随机梯度下降的一种实现,非常通用,你可以选择惩罚项。要获得线性回归,你可以选择损失函数为L2,并且惩罚项设置为none(线性回归)或L2(岭回归)

没有“典型的梯度下降”,因为在实践中它很少使用。如果你能将损失函数分解成可加项,那么随机方法被认为表现更好(因此使用SGD),如果你有足够的内存,OLS方法更快更简单(因此使用第一种解决方案)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注