【发布时间】:2018-12-09 17:06:49
【问题描述】:
我正在尝试确定从逻辑回归(来自 sklearn 库)估计的 beta 是否与我使用逻辑函数 (1/(1 + exp(- (b*x))). 这是我使用的代码
import numpy as np
from sklearn.linear_model import LogisticRegression
a = np.random.random_sample(100) * 12 - 6
a = np.sort(a)
t = 1/(1 + np.exp(-1 * (6 * (a)))) # I create a beta of 6
for i in range(len(t)):
if t[i] >= 0.5:
t[i] = 1
else:
t[i] = 0
a = np.array([a]).T
ones = np.array([[1]*len(a)]).T
a = np.concatenate((ones, a), axis=1)
lg = LogisticRegression()
lg.fit(a, t)
print(lg.coef_) # the estimated beta from the logistic regression model is [[ 0.24941991 2.41880381]]
我预设的 beta 是 6,但是逻辑回归的 beta 是 2.39662781。尽管我做了一个只得到 1 和 0 的近似值,但这两个 beta 仍然相差太大。此外,当我增加我预设的 beta 时,模型估计的 beta 有时会增加但有时会降低,例如,如果我将 beta 预设为 7,则模型估计的 beta 为 2.15344631。
谁能向我解释发生了什么事?或如何估计接近我创建的测试版?
【问题讨论】:
标签: python numpy scikit-learn logistic-regression