I'm trying to create a logistic regression similar to the ISLR's example, but using python instead
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")
But I keep getting the graph on the left, when I want the one on the right:
Edit: plt.scatter(x,LogR.predict(x))
was my second, and also wrong guess.
To plot the logistic regression curve in base R, we first fit the variables in a logistic regression model by using the glm() function. The glm() function is used to fit generalized linear models, specified by giving a symbolic description of the linear predictor.
To visualize the logistic regression fit, we first use the predict function to generate the model predictions about probability of survival as a function of age. Having generated the predicted probabilities of survival we can then add these prediction lines to our previous plot using geom_line .
You can use seaborn regplot with the following syntax
import seaborn as sns
sns.regplot(x='balance', y='default', data=data, logistic=True)
you use predict(X)
which gives out the prediction of the class.
replace predict(X)
with predict_proba(X)[:,1]
which would gives out the probability of which the data belong to class 1.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With