scikit-learn库具有以下相似的分类器:

  • Logistic回归分类器具有不同的求解器,其中之一
    是'sgd'

  • http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression
  • 它也有一个不同的分类器“SGDClassifier”,并且丢失了
    参数可以被称为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回归相同,但求解器不同。根据您的数据,您可能会得到不同的结果。您可以尝试使用交叉验证找到最好的一个,甚至可以尝试使用网格搜索交叉验证找到最好的超参数。

    希望能回答您的问题。

    10-07 15:15