Python Sklearn 逻辑回归模型拟合不正确。

3

我正在尝试重现维基百科logistic regression页面的结果,使用逻辑回归。因此,我的代码如下:

import numpy as np
from sklearn.linear_model import LogisticRegression

x = np.array([0.5, 0.75, 1, 1.25, 1.5, 1.75, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 4, 4.25, 4.5, 4.75, 5, 5.5])
y = np.array([0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1])

logistic = LogisticRegression()
logistic.fit(x[:, None], y)

但是如何获取已拟合模型的摘要信息,具体如下所示:
            Coefficient  Std.Error  z-value  P-value (Wald)
Intercept   −4.0777      1.7610     −2.316    0.0206
Hours        1.5046      0.6287      2.393    0.0167

这是维基百科页面上对拟合模型的说明。如果我尝试打印系数和截距,我将会得到类似这样的结果:
print(logistic.coef_)
print(logistic.intercept_)

[[ 0.61126347]]

[-1.36550178]

这显然是不同的。

问题是,为什么我的结果与维基百科页面上获得的结果不同?

2个回答

4

维基百科的例子没有在模型参数上进行正则化,但是sklearn的LogisticRegression默认使用L2正则化。要不使用正则化,可以将逆正则化强度C设置为非常高的值,例如:"Set the inverse regularization strength, C, to a very high value to use no regularization"

logistic = LogisticRegression(penalty='l2', C=1e4)
logistic.fit(x[:, None],y)

print(logistic.coef_)
print(logistic.intercept_)

# [[ 1.50459727]]
# [-4.07757136]

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接