Python下的Logistic回归模型

以前都是写杂文,今天也写写专业文章。

不讲理论,Logistic回归模型(中文简称逻辑回归)的形式就是:

f(y)=\frac{1}{1+e^{-y}}

其中,

y=\sum \beta x

有的人会把Logistic回归模型的形式写成:

f(y)=\frac{e^{y}}{1+e^{y}}

 其实,它和第一个公式没有区别,只是分子分母同时乘以了e^y而已。

不管是R或者SAS或者Python要求解的都是y=\sum \beta x这个部分。

用Python做逻辑回归可以用几个方式实现:

(1)采用 statsmodels.api中的 Logit 函数(注意Python中字母的大小写有区别),缺点是没有截距项,需要自己 sm.add_constant 加入

(2)采用statsmodels.formula.api中的 logit 函数,优点是自动含有截距项

(3)采用 statsmodels.api中的 Logit.from_formula 函数,优点也是自动含有截距项,其实它与第(2)个做法是一个做法的两个形式

(4)采用 statsmodels.api中的 GLM 函数,family选二项分布就可以,因为默认的连接函数就是Logit,缺点也是没有截距项

(5)采用statsmodels.formula.api中的 glm 函数,也是family选二项分布,优点是自动含有截距项

(6)采用 statsmodels.api中的 GLM.from_formula 函数,优点也是自动含有截距项,道理同上面的第(3)点

(7)采用sklearn.linear_model中的 LogisticRegression 函数,缺点是看结果比较麻烦statsmodels中一个 summary 看到所有关键结果的快感

需要说明的是,Logit函数采用的是极大似然估计法来求解模型参数,而 GLM采用的是迭代加权最小二乘法来求解参数的。

推荐使用上面的方法2、3或者5、6。

    

你可能感兴趣的:(python,回归)