在Scikit-learn的第一次迭代中,逻辑回归的初始估计是什么?



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

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

为了明确地回答关于初始估计的问题,我认为这并不重要,但最常见的是,您将所有内容设置为0(包括截距),并且应该很好地收敛。

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

相关内容

  • 没有找到相关文章

最新更新