python怎么输出logistic回归系数_python - Logistic回归scikit学习系数与统计模型的系数 - SO中文参考 - www.soinside.com...

本文探讨了在Python中使用scikit-learn和statsmodels进行Logistic回归时,如何正确输出和比较模型系数。强调了添加截距、正则化的影响,并提供了修正后的代码示例,展示了等价的Logistic回归模型参数的一致性。
摘要由CSDN通过智能技术生成

您的代码存在一些问题。

首先,您在此处显示的两个模型是not等效的:尽管您将scikit-learn LogisticRegression设置为fit_intercept=True(这是默认设置),但您并没有这样做statsmodels一;来自statsmodels docs:默认情况下不包括拦截器,用户应添加。参见statsmodels.tools.add_constant。

另一个问题是,尽管您处于二进制分类设置中,但您在multi_class='multinomial'中要求输入LogisticRegression,事实并非如此。[scikit-learn中无法关闭正则化,但是可以通过将调整参数C设置为较大的值来使其无效。

这使得这两个模型在原理上再次不可比,但是您已经通过设置C=1e8在此成功解决了。实际上,自那时(2016年)以来,scikit-learn确实添加了一种关闭正则化的方法,方法是根据penalty='none'设置docs:如果为'none'(liblinear求解器不支持),则不应用任何正则化。

现在应视为关闭正则化的规范方法。

因此,将这些更改合并到您的代码中,我们有:np.random.seed(42) # for reproducibility

#### Statsmodels

# first artificially add intercept to x, as advised in the docs:

x_ = sm.add_constant(x)

res_sm = sm.Logit(y, x_).fit(method="ncg&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值