Python中的回归总结

时间:2016-12-28 16:36:29

标签: python matplotlib scikit-learn logistic-regression

我对Python很陌生。我想得到一个像R一样的逻辑回归的总结。我创建了变量x_train和y_train,我试图得到一个逻辑回归

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

clf = linear_model.LogisticRegression(C=1e5)
clf.fit(x_train, y_train)

我得到的是:

LogisticRegression(C=100000.0, class_weight=None, dual=False,
    fit_intercept=True, intercept_scaling=1, max_iter=100,
    multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,
    solver='liblinear', tol=0.0001, verbose=0, warm_start=False)

我想有一个具有重要意义的摘要,R2 ecc。

4 个答案:

答案 0 :(得分:1)

  1. 要获得重要级别,您可以使用sklearn.feature_selection.f_regression

  2. 要获得R2,您可以使用sklearn.metrics.r2_score

答案 1 :(得分:1)

我建议您查看statsmodels库。 Sk-learn非常棒(其他答案提供了获取R2和其他指标的方法),但statsmodels提供的回归摘要与您在R中可能习惯的回归摘要非常相似。

举个例子:

import statsmodels.api as sm
from sklearn.datasets import make_blobs

x, y = make_blobs(n_samples=50, n_features=2, cluster_std=5.0,
                  centers=[(0,0), (2,2)], shuffle=False, random_state=12)

logit_model = sm.Logit(y, sm.add_constant(x)).fit()
print logit_model.summary()

Optimization terminated successfully.
         Current function value: 0.620237
         Iterations 5
                           Logit Regression Results                           
==============================================================================
Dep. Variable:                      y   No. Observations:                   50
Model:                          Logit   Df Residuals:                       47
Method:                           MLE   Df Model:                            2
Date:                Wed, 28 Dec 2016   Pseudo R-squ.:                  0.1052
Time:                        12:58:10   Log-Likelihood:                -31.012
converged:                       True   LL-Null:                       -34.657
                                        LLR p-value:                   0.02611
==============================================================================
                 coef    std err          z      P>|z|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
const         -0.0813      0.308     -0.264      0.792        -0.684     0.522
x1             0.1230      0.065      1.888      0.059        -0.005     0.251
x2             0.1104      0.060      1.827      0.068        -0.008     0.229
==============================================================================

如果要添加正则化,而不是在Logit初始化后调用.fit(),则可以调用.fit_regularized()并传入alpha参数(正则化强度)。如果你这样做,请记住sk-learn中的C参数实际上是正则化强度的

答案 2 :(得分:0)

您可以致电clf.score(test_samples, true_values)以获得R 2

重要性不是由sklearn直接提供,而是在答案here和此code

答案 3 :(得分:0)

import statsmodels.api as sm      
x_train1 = sm.add_constant(x_train1)
lm_1 = sm.OLS(y_train, x_train1).fit()
lm_1.summary()

这是一个非常有用的完整软件包,适用于曾经非常习惯R的模型摘要的人

有关更多信息,请参见以下文章:

  1. statsmodels.api
  2. stats-models-vs-sklearn