2017-01-31 10 views
0

のこの実装を理解する:次が生成され、予測実行した後 https://analyticsdataexploration.com/logistic-regression-using-python/scikit-学ぶからロジスティック回帰のこの実装例に続いてロジスティック回帰

predictions=modelLogistic.predict(test[predictor_Vars]) 
predictions 
array([0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 
     0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 
     0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 
     1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 
     1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
     0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
     1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 
     0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 
     1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 
     0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 
     0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 
     0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 
     0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
     0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 
     0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
     1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 
     1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 
     1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 
     1, 0, 0, 0], dtype=int64) 

私は理解して失敗していますarray値。私は彼らがロジスティック関数に関連していると思うし、ラベルが何を考えているかを出力していますが、これらの値は0または1の代わりに0と1の間にあるべきですか? predict機能のためにドキュメントを読み取り

第5値をとる
predict(X) 
Predict class labels for samples in X. 
Parameters: 
X : {array-like, sparse matrix}, shape = [n_samples, n_features] 
Samples. 
Returns:  
C : array, shape = [n_samples] 
Predicted class label per sample. 

:0、1、0、0、1、これらのラベルとして解釈される方法返される配列の?

完全なコード:

import numpy as np 
import pandas as pd 
from sklearn import linear_model 
from sklearn import cross_validation 


import matplotlib.pyplot as plt 
%matplotlib inline 

train=pd.read_csv('/train.csv') 
test=pd.read_csv('/test.csv') 

def data_cleaning(train): 
    train["Age"] = train["Age"].fillna(train["Age"].median()) 
    train["Fare"] = train["Age"].fillna(train["Fare"].median()) 
    train["Embarked"] = train["Embarked"].fillna("S") 


    train.loc[train["Sex"] == "male", "Sex"] = 0 
    train.loc[train["Sex"] == "female", "Sex"] = 1 

    train.loc[train["Embarked"] == "S", "Embarked"] = 0 
    train.loc[train["Embarked"] == "C", "Embarked"] = 1 
    train.loc[train["Embarked"] == "Q", "Embarked"] = 2 

    return train 

train=data_cleaning(train) 
test=data_cleaning(test) 

predictor_Vars = [ "Sex", "Age", "SibSp", "Parch", "Fare"] 

X, y = train[predictor_Vars], train.Survived 

X.iloc[:5] 

y.iloc[:5] 

modelLogistic = linear_model.LogisticRegression() 

modelLogisticCV= cross_validation.cross_val_score(modelLogistic,X,y,cv=15) 

modelLogistic = linear_model.LogisticRegression() 
modelLogistic.fit(X,y) 
#predict(X) Predict class labels for samples in X. 
predictions=modelLogistic.predict(test[predictor_Vars]) 

更新:テストデータセットから

印刷最初の10個の要素:

enter image description here

それを見ることができますが、配列の最初の10個の要素の予測と一致しました:

0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0 

これは、trainデータセットにロジスティック回帰を適用した後のtestデータセットに関するロジスティック回帰の予測です。

答えて

2

ドキュメントに記載されているとおり、predict関数によって返される値は、クラスラベル(fitの関数としてyとして指定した値)です。あなたのケースでは生き残った1人と生き残っていない0人。あなたは、各予測のスコアをしたい場合は

私はこれがあなたの質問に答えを期待-1と1

間で値を返すdecision_functionを使用する必要があります。

+0

ありがとうございます、私はあなたの答えが公式化の助けとなる質問を更新しました。 –

関連する問題