2017-09-06 2 views
1

Ich versuche, eine logistische Regression ähnlich die ISLR Beispiel zu erstellen, aber mit Python stattSklearn logistische Regression, Plotten Wahrscheinlichkeitskurve Graph

data=pd.read_csv("data/Default.csv") 

#first we'll have to convert the strings "No" and "Yes" to numeric values 
data.loc[data["default"]=="No", "default"]=0 
data.loc[data["default"]=="Yes", "default"]=1 
X = data["balance"].values.reshape(-1,1) 
Y = data["default"].values.reshape(-1,1) 

LogR = LogisticRegression() 
LogR.fit(X,np.ravel(Y.astype(int))) 

#matplotlib scatter funcion w/ logistic regression 
plt.scatter(X,Y) 
plt.xlabel("Credit Balance") 
plt.ylabel("Probability of Default") 

Aber ich bekomme immer wieder die Grafik auf der linken Seite, wenn ich will die auf der rechten Seite:

enter image description here

Edit: plt.scatter(x,LogR.predict(x)) war mein zweiter, und auch falsche Vermutung.

Antwort

1

Sie predict(X) verwenden, die die Vorhersage der Klasse gibt aus. ersetzen predict(X) mit predict_proba(X)[:,1], die die Wahrscheinlichkeit geben würde, von der die Daten zur Klasse 1 gehören.

+0

Danke, habe die Funktion predyn_proba nicht gesehen! – Tony

1

können Sie verwenden seaborn regplot mit folgenden Syntax

import seaborn as sns 
sns.regplot(x='balance', y='default', data=data, logistic=True) 
Verwandte Themen