scikit-learn库具有以下相似的分类器:
是'sgd'
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression
参数可以被称为log回归的'log'。
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier
它们本质上是相同还是不同?如果它们不同,那么两者之间的实现有何不同?考虑到逻辑回归问题,您如何决定使用哪个?
最佳答案
Sklearn中的Logistic回归虽然没有“sgd”求解器。它实现了对数正则化logistic回归:最大限度地降低了对数概率。
SGDClassifier是广义线性分类器,它将使用随机梯度下降作为求解器。正如http://scikit-learn.org/stable/modules/sgd.html在这里提到的那样:“尽管SGD在机器学习社区中已经存在很长时间了,但最近在大规模学习的背景下它已经引起了相当多的关注。”
它易于实现且高效。例如,这是用于神经网络的求解器之一。
借助SGDClassifier,您可以使用许多不同的损失函数(该函数可以最小化或最大化以找到最佳解决方案),可让您“调整”模型并为数据找到基于sgd的最佳线性模型。实际上,某些数据结构或某些问题将需要不同的损失函数。
在您的示例中,SGD分类器的损失函数与Logistic回归相同,但求解器不同。根据您的数据,您可能会得到不同的结果。您可以尝试使用交叉验证找到最好的一个,甚至可以尝试使用网格搜索交叉验证找到最好的超参数。
希望能回答您的问题。