Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # %%
- import numpy as np
- import pandas as pd
- import matplotlib.pyplot as plt
- import seaborn as sns
- from sklearn.datasets import load_diabetes
- from sklearn.preprocessing import StandardScaler
- from sklearn.model_selection import train_test_split
- from sklearn.linear_model import LogisticRegression
- from sklearn.metrics import accuracy_score, classification_report, confusion_matrix, roc_curve, auc
- # %%
- diabetes = load_diabetes()
- X,y = diabetes.data, diabetes.target
- # %%
- y_binary = (y>np.median(y)).astype(int)
- # %%
- X_train, X_test, y_train, y_test = train_test_split(X,y_binary, test_size=0.2,random_state=42)
- # %%
- scalar = StandardScaler()
- X_train = scalar.fit_transform(X_train)
- X_test = scalar.transform(X_test)
- # %%
- model = LogisticRegression()
- model.fit(X_train,y_train)
- # %%
- y_pred = model.predict(X_test)
- accuracy = accuracy_score(y_test,y_pred)
- print("Accuracy: {:.2f}%".format(accuracy*100))
- # %%
- print("Confusion Matrix: \n",confusion_matrix(y_test,y_pred))
- print("\n Classification Report: \n", classification_report(y_test,y_pred))
- # %%
- plt.figure(figsize=(8,6))
- sns.scatterplot(x=X_test[:,2], y=X_test[:,8], hue=y_test, palette={0: 'blue', 1: 'red'}, marker='o')
- plt.xlabel("BMI")
- plt.ylabel("Age")
- plt.title("Logistic Regression Decision Boundary\n Accuracy: {:.2f}%".format(accuracy * 100))
- plt.legend(title="Diabetes", loc="upper right")
- plt.show()
- # %%
- y_prob = model.predict_proba(X_test)[:, 1]
- fpr, tpr, thresholds = roc_curve(y_test, y_prob)
- roc_auc = auc(fpr, tpr)
- plt.figure(figsize=(8, 6))
- plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC Curve (AUC = {roc_auc:.2f})')
- plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--', label='Random')
- plt.xlabel('False Positive Rate')
- plt.ylabel('True Positive Rate')
- plt.title(f'Receiver Operating Characteristic (ROC) Curve\nAccuracy: {accuracy * 100:.2f}%')
- plt.legend(loc='lower right')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement