python sklearn库logistics_python – “statsmodels”和“sklearn”中的Logit估计器

我很确定它是一个功能,而不是一个bug,但我想知道是否有办法让sklearn和statsmodel在logit估计中匹配.一个非常简单的例子:

import numpy as np

import statsmodels.formula.api as sm

from sklearn.linear_model import LogisticRegression

np.random.seed(123)

n = 100

y = np.random.random_integers(0, 1, n)

x = np.random.random((n, 2))

# Constant term

x[:, 0] = 1.

statsmodels的估计值:

sm_lgt = sm.Logit(y, x).fit()

Optimization terminated successfully.

Current function value: 0.675320

Iterations 4

print sm_lgt.params

[ 0.38442 -1.1429183]

和sklearn的估计:

sk_lgt = LogisticRegression(fit_intercept=False).fit(x, y)

print sk_lgt.coef_

[[ 0.16546794 -0.72637982]]

我认为这与sklearn中的实现有关,它使用某种正则化.有没有选择来估计一个准分子logit,就像在statsmodels中一样(它的速度更快,扩展性更好).另外,sklearn是否提供推理(标准错误)或边际效应?

你可能感兴趣的:(python)