Project 1
In this project I was learn to check accuracy of given dataset using different algorithms like Logistic Regression,KNN,SVM,DT,RF algorithms.
import time
Start_time = time.time()
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score,confusion_matrix
import matplotlib.pyplot as plt
#Logistic Regression
data = pd.read_csv(r"C:UserssambaDownloadsheart.csv")
data.head()
data.isna().sum().sum()
data.isnull().sum().sum()
data.info()
data = data.astype("float64")
features = list(set(data.columns)-set(["output"]))
target = list(["output"])
x = data[features].values
y = data[target].values
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state=0)
scaler = StandardScaler()
scaler.fit(train_x)
train_x =scaler.transform(train_x)
test_x = scaler.transform(test_x)
logistic = LogisticRegression()
logistic.fit(train_x,train_y.ravel())
pred_logistic = logistic.predict(test_x)
print(pred_logistic)
confusion_matrix = confusion_matrix(pred_logistic,test_y)
print(confusion_matrix)
import seaborn as sns
plt.figure(figsize=(10,10))
sns.heatmap(confusion_matrix,annot=True)
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.show()
accuracy_logistic = accuracy_score(pred_logistic,test_y)
print("accuracy_score_logistic :",accuracy_logistic)
print("Misclassified Samples :",(test_y != pred_logistic).sum())
print("Classified Samples:",(test_y == pred_logistic).sum())
# KNN
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
data = pd.read_csv(r"C:UserssambaDownloadsheart.csv")
data.head()
data.isna().sum().sum()
data.isnull().sum().sum()
data.info()
data = data.astype("float64")
features = list(set(data.columns)-set(["output"]))
target = list(["output"])
x = data[features].values
y = data[target].values
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state=3)
scaler = StandardScaler()
scaler.fit(train_x)
train_x =scaler.transform(train_x)
test_x = scaler.transform(test_x)
KNN = KNeighborsClassifier(n_neighbors = 3)
KNN.fit(train_x,train_y.ravel())
pred_KNN = KNN.predict(test_x)
print(pred_KNN)
#confusion_matrix = confusion_matrix(test_y.ravel(),pred_KNN)
#print(confusion_matrix)
accuracy_KNN = accuracy_score(test_y,pred_KNN)
print("accuracy_KNN:",accuracy_KNN)
'''import seaborn as sns
plt.figure(figsize=(10,10))
sns.heatmap(confusion_matrix,annot=True)
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.show()'''
print('Misclassified samples: %d' % (test_y != pred_KNN).sum())
Misclassifiedsample = []
for i in range(1,20):
knn = KNeighborsClassifier(n_neighbors = i)
knn.fit(train_x,train_y.ravel())
pred_i = knn.predict(test_x)
Misclassifiedsample.append((test_y !=pred_i).sum())
print(Misclassifiedsample)
plt.figure(figsize=(8,8))
plt.plot(range(1,20,1),Misclassifiedsample,color = 'red',linestyle = 'dashed',
marker = '*',markerfacecolor = 'blue',markersize =10)
plt.title("Effect of K")
plt.xlabel("K Value")
plt.ylabel("Misclassified samples")
plt.show()
# RandomForest Classifier
from sklearn.metrics import mean_squared_error
from pprint import pprint
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
data = pd.read_csv(r"C:UserssambaDownloadsheart.csv")
data.head()
data.isna().sum().sum()
data.isnull().sum().sum()
data.info()
data = data.astype("float64")
features = list(set(data.columns)-set(["output"]))
target = list(["output"])
x = data[features].values
y = data[target].values
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state=1)
base_pred = data[target].mean().values
base_pred = np.repeat(base_pred,len(test_y))
base_rmse = (mean_squared_error(test_y,base_pred))**0.5
scaler = StandardScaler()
scaler.fit(train_x)
train_x =scaler.transform(train_x)
test_x = scaler.transform(test_x)
rf = RandomForestClassifier(n_estimators=100,random_state=1)
rf.fit(train_x,train_y.ravel())
pred_rf = rf.predict(test_x)
rf_rmse = (mean_squared_error(test_y,pred_rf))**0.5
rf_rmse
#confusion_matrix = confusion_matrix(test_y.ravel(),pred_rf)
#print(confusion_matrix)
"""import seaborn as sns
plt.figure(figsize=(10,10))
sns.heatmap(confusion_matrix,annot=True)
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.show()'"""
accuracy_RF = accuracy_score(test_y,pred_rf)
print("accuracy_RF:",accuracy_RF)
# SVM
from seaborn import pairplot
from sklearn.svm import SVC
data = pd.read_csv(r"C:UserssambaDownloadsheart.csv")
data.head()
data.isna().sum().sum()
data.isnull().sum().sum()
data.info()
data = data.astype("float64")
features = list(set(data.columns)-set(["output"]))
target = list(["output"])
x = data[features].values
y = data[target].values
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state=100)
clf = SVC(kernel = 'linear')
clf.fit(train_x,train_y.ravel())
pred_clf = clf.predict(test_x)
print(pred_clf[:5])
#confusion_matrix = confusion_matrix(test_y.ravel(),pred_clf)
#print(confusion_matrix)
'''import seaborn as sns
plt.figure(figsize=(10,10))
sns.heatmap(confusion_matrix,annot=True)
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.show()'''
accuracy_clf = accuracy_score(test_y,pred_clf)
print("accuracy_SVM:",accuracy_clf)
# Decision Tree Classifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
data = pd.read_csv(r"C:UserssambaDownloadsheart.csv")
data.head()
data.isna().sum().sum()
data.isnull().sum().sum()
data.info()
data = data.astype("float64")
features = list(set(data.columns)-set(["output"]))
target = list(["output"])
x = data[features].values
y = data[target].values
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state=100)
clf_gini = DecisionTreeClassifier(criterion = 'gini',random_state=100,max_depth = 3,min_samples_leaf = 5)
clf_gini.fit(train_x,train_y)
pred_DT = clf_gini.predict(test_x)
#confusion_matrix = confusion_matrix(test_y.ravel(),pred_DT)
#print(confusion_matrix)
'''import seaborn as sns
plt.figure(figsize=(10,10))
sns.heatmap(confusion_matrix,annot=True)
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.show()'''
accuracy_DT = accuracy_score(test_y,pred_DT)
print("accuracy_DT:",accuracy_DT)
classification_report(test_y,pred_DT)
print("Accuracy Details of Different algorithms")
print("accuracy_score_logistic :",accuracy_logistic)
print("accuracy_KNN:",accuracy_KNN)
print("accuracy_RF:",accuracy_RF)
print("accuracy_SVM:",accuracy_clf)
print("accuracy_DT:",accuracy_DT)
End_time = time.time()
print(Start_time)
print(End_time)
print('Time taken:',End_time-Start_time)