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

python – “statsmodels”和“sklearn”中的Logit估计器,第1张

概述我很确定它是一个功能,而不是一个bug,但我想知道是否有办法让sklearn和statsmodel在logit估计中匹配.一个非常简单的例子: import numpy as npimport statsmodels.formula.api as smfrom sklearn.linear_model import LogisticRegressionnp.random.seed(123) 我很确定它是一个功能,而不是一个BUG,但我想知道是否有办法让sklearn和statsmodel在logit估计中匹配.一个非常简单的例子:

import numpy as npimport statsmodels.formula.API as smfrom sklearn.linear_model import LogisticRegressionnp.random.seed(123)n = 100y = np.random.random_integers(0,1,n)x = np.random.random((n,2))# Constant termx[:,0] = 1.

statsmodels的估计值:

sm_lgt = sm.Logit(y,x).fit()    Optimization terminated successfully.             Current function value: 0.675320             Iterations 4print 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是否提供推理(标准错误)或边际效应?

解决方法

Is there an option to estimate a barebones logit as in statsmodels

您可以将C(反正则化强度)参数设置为任意高的常数,只要它是有限的:

>>> sk_lgt = LogisticRegression(fit_intercept=False,C=1e9).fit(x,y)>>> print(sk_lgt.coef_)[[ 0.38440594 -1.14287175]]

关闭正则化是不可能的,因为底层求解器liblinear不支持这一点.

Also,does sklearn provIDe inference (standard errors) or marginal effects?

没有.有一个建议添加这个,但它还没有在主代码库中.

总结

以上是内存溢出为你收集整理的python – “statsmodels”和“sklearn”中的Logit估计器全部内容,希望文章能够帮你解决python – “statsmodels”和“sklearn”中的Logit估计器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存