2017-06-25 14 views
3

ロジスティック回帰については、私はWikipedia logistic regressionページの結果を再現しようとしています。だから、私のコードは以下のようになります。Python Sklearnロジスティック回帰モデルが正しくない適合

import numpy as np 
from sklearn.linear_model import LogisticRegression 

x = np.array([0.5, 0.75, 1, 1.25, 1.5, 1.75, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 4, 4.25, 4.5, 4.75, 5, 5.5]) 
y = np.array([0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1]) 

logistic = LogisticRegression() 
logistic.fit(x[:, None], y) 

しかし、どのように、その後あてはめたモデルのサマリーを取得するには、特にこのような何か:

  Coefficient Std.Error z-value P-value (Wald) 
Intercept −4.0777  1.7610  −2.316 0.0206 
Hours  1.5046  0.6287  2.393 0.0167 

これはWikipediaのページを当てはめモデルのために持っているものです。明らかである

print(logistic.coef_) 
print(logistic.intercept_) 

[[0.61126347]]

[-1.36550178]

:私は、係数と切片の印刷を使用しようとすると、私のようなものを受け取ることになります異なる。

私の結果はWikipediaのページで得られた結果とどう違うのですか?

答えて

3

sklearnにRタイプのサマリーレポートはありません。

分類作業のために、いくつかのタイプの(予測的な)スコアを計算するsklearn.metrics.classification_reportという関数が存在します。

Rスタイルのサマリーレポートを表示するには、statsmodelsライブラリをご覧ください。

4

wikipediaの例では、モデルパラメータの正規化は含まれていませんが、sklearnのLogisticRegressionではデフォルトでL2正規化が使用されています。 Set the inverse regularization strength, C, to a very high value to use no regularization、例えば、

logistic = LogisticRegression(penalty='l2', C=1e4) 
logistic.fit(x[:, None],y) 

print(logistic.coef_) 
print(logistic.intercept_) 

# [[ 1.50459727]] 
# [-4.07757136] 
関連する問題