【问题标题】:What are the initial estimates taken in Logistic regression in Scikit-learn for the first iteration?Scikit-learn 的逻辑回归中第一次迭代的初始估计是什么?
【发布时间】:2016-10-31 15:25:39
【问题描述】:

我正在 python 中从头开始尝试逻辑回归。(通过查找概率估计、成本函数、应用梯度下降来增加最大似然)。但我对第一次迭代过程应该采用哪些估计感到困惑。我将所有估计值都设为 0(包括截距)。但是结果与我们在 Scikit-learn 中得到的不同。我想知道 Scikit-learn 中对逻辑回归进行的初始估计值是什么?

【问题讨论】:

    标签: python machine-learning scikit-learn logistic-regression


    【解决方案1】:

    首先 scikit learn 的 LogsiticRegerssion 使用了正则化。所以除非你也应用它,否则你不太可能得到完全相同的估计。如果您真的想测试您的方法与 scikit 的方法,最好使用他们称为 SGDClassifier 的 Logistic regersion 的梯度体面实现。确保将loss='log' 用于逻辑回归并设置alpha=0 以删除正则化,但您需要再次调整iterationseta,因为它们的实现可能与您的稍有不同。

    要具体回答初始估计值,我认为这并不重要,但最常见的情况是您将所有内容都设置为 0(包括截距)并且应该收敛得很好。

    还请记住,GD(梯度体面)模型有时很难调整,您可能需要事先对您的数据应用一些缩放(如 StandardScaler),因为非常高的值很可能会使您的梯度超出其坡。 Scikit 的实现对此进行了调整。

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2016-07-31
      • 2016-02-21
      • 2016-12-27
      • 2021-12-24
      • 2020-07-27
      • 2018-03-01
      • 2012-06-27
      • 2016-06-17
      相关资源
      最近更新 更多