2016-09-21 80 views
2

我正在阅读odds ratios in logistic regression tutorial,并尝试使用scikit-learn的逻辑回归模块获得完全相同的结果。使用下面的代码,我可以得到系数和截距,但我找不到找到教程中列出的模型的其他属性的方法,例如log-likelyhood,Odds Ratio,Std。 Err。,z,P> | z |,[95%Conf。间隔]。如果有人能告诉我如何让他们与sklearn包计算,我将不胜感激。如何通过scikit-learn获得优势比和其他相关特征

import pandas as pd 
from sklearn.linear_model import LogisticRegression 

url = 'http://www.ats.ucla.edu/stat/mult_pkg/faq/general/sample.csv' 
df = pd.read_csv(url, na_values=['']) 
y = df.hon.values 
X = df.math.values 
y = y.reshape(200,1) 
X = X.reshape(200,1) 
clf = LogisticRegression(C=1e5) 
clf.fit(X,y) 
clf.coef_ 
clf.intercept_ 
+1

仅供参考,你应该做的进口为'从sklearn.linear_model进口LogisticRegression' – maxymoo

回答

3

您可以通过采取coeffecients的指数获得的优势比:

import numpy as np 
X = df.female.values.reshape(200,1) 
clf.fit(X,y) 
np.exp(clf.coef_) 

# array([[ 1.80891307]]) 

至于其他的统计数据,这些是不容易的得到scikit学习(其中模型评估主要是使用交叉验证完成),如果您需要它们,最好使用不同的库,如statsmodels

+0

感谢@maxymoo。是的,我可以用'statsmodels'获得其他摘要。 –

+0

当且仅当这些特征是独立的时候,这些值是唯一的比值比吗? (即特征之间不存在交互)。 – user48956

+2

@ user48956查看http://stats.stackexchange.com/questions/57031/interpreting-interaction-terms-in-logit-regression-with-categorical-variables关于如何解释比值比的一个很好的例子 – maxymoo

2

除了@ maxymoo的回答,要获得其他统计信息,statsmodel可以使用。假设你有一个叫DataFramedf数据,下面的代码应该表现出了很好的总结:

import pandas as pd 
from patsy import dmatrices 
import statsmodels.api as sm 

y, X = dmatrices('label ~ age + gender', data=df, return_type='dataframe') 
mod = sm.Logit(y, X) 
res = mod.fit() 
print res.summary()