scikit学习库中sgd分类与sgd求解器的LogisticRegregation

2024-04-28 23:29:55 发布

您现在位置:Python中文网/ 问答频道 /正文

scikit learn library有以下看起来类似的分类器:

  • Logistic回归分类器有不同的求解器,其中一个 是“sgd”

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression

  • 它还有一个不同的分类器“SGD分类器”和损失 logistic回归的参数可以称为“log”。

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier

它们本质上是相同的还是不同的?如果它们是不同的,那么它们之间的实现有多大的不同?考虑到逻辑回归问题,你如何决定使用哪一个?


Tags: orgmoduleshttpmodel分类器htmllibrarysklearn
2条回答

但Sklearn中的Logistic回归没有“sgd”解算器。它实现了对数正则化的logistic回归:它最小化了对数概率。

sgdclassier是一种广义线性分类器,它使用随机梯度下降作为求解器。正如这里提到的http://scikit-learn.org/stable/modules/sgd.html:“尽管SGD在机器学习社区已经存在了很长一段时间,但它最近在大规模学习的背景下受到了相当多的关注。” 它易于实现,效率高。例如,这是用于神经网络的解算器之一。

使用sgdclassier,您可以使用许多不同的损失函数(一个最小化或最大化以找到最佳解决方案的函数),它允许您“调整”您的模型,并为您的数据找到基于sgd的最佳线性模型。实际上,有些数据结构或问题需要不同的损失函数。

在您的示例中,SGD分类器将具有与Logistic回归相同的损失函数,但具有不同的求解器。根据您的数据,您可以得到不同的结果。您可以尝试使用交叉验证来查找最佳参数,甚至可以尝试网格搜索交叉验证来查找最佳超参数。

希望能回答你的问题。

所有的线性分类器(SVM,逻辑回归,a.o.)都可以使用sgd:随机梯度下降

相关问题 更多 >