【问题标题】:Find the midpoint of a LogisticRegression by Scikitlearn通过 Scikit Learn 找到逻辑回归的中点
【发布时间】:2023-02-23 19:40:01
【问题描述】:

我正在使用 Scikit Learn 逻辑回归来拟合我的数据,如下所示:

X = np.array([200., 201., 202., 203., 204., 205., 206., 207., 208., 209., 210.,
       211., 212., 213., 214., 215., 216., 217., 218., 219., 220., 221.,
       222., 223., 224., 225., 226., 227., 228., 229., 230., 231., 232.,
       233., 234., 235., 236., 237., 238., 239., 240., 241., 242., 243.,
       244., 245., 246., 247., 248., 249.])
y =  np.array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
 
clf = LogisticRegression(C=1e5, fit_intercept=True)
clf.fit(X.reshape(-1,1), y)
X_test = np.linspace(200, 250, 1000)
loss = expit(X_test * clf.coef_ + clf.intercept_).ravel()
plt. figure()
plt.scatter(X,y)
plt.plot(X_test, loss, label="Logistic Regression Model", color="red", linewidth=3)
plt.show()

它运行良好,现在我想找到这个回归的中点,是否有一个简单的参数来获取它?

感谢您的帮助!

【问题讨论】:

  • 中点是什么意思?您发布的 y 向量的预期值是多少?
  • 中点是指拟合曲线等于 0.5 的 X 值。所以对于我的数据,我预计它在 219.5 左右。

标签: python scikit-learn scipy logistic-regression


【解决方案1】:

如果中点是指 X 的预测值为 0.5 的值,则这将是:

from scipy.special import expit, logit

midpoint = (logit(0.5) - clf.intercept_) / clf.coef_

确实可以看到:

print(midpoint)
print(expit(midpoint * clf.coef_ + clf.intercept_))
print(clf.predict_proba(midpoint))

输出:

[[219.50002001]]
[[0.5]]
[[0.5 0.5]]

【讨论】:

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