Project 1
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
# Assuming your dataset is in a CSV file named 'heart_data.csv'
data = pd.read_csv(r"C:\Users\hp\Downloads\heart.csv")
# Display the first few rows of the dataset
print(data.head())
# Extract features (X) and target variable (y)
X = data.drop('output', axis=1)
y = data['output']
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Standardize the features
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Function to evaluate a model
def evaluate_model(model, X_train, X_test, y_train, y_test):
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
print(f"Classification Report:\n{classification_report(y_test, y_pred)}")
# Logistic Regression
lr_model = LogisticRegression()
print("\nLogistic Regression:")
evaluate_model(lr_model, X_train, X_test, y_train, y_test)
# K-Nearest Neighbours
knn_model = KNeighborsClassifier()
print("\nK-Nearest Neighbours:")
evaluate_model(knn_model, X_train, X_test, y_train, y_test)
# Support Vector Machine
svm_model = SVC()
print("\nSupport Vector Machine:")
evaluate_model(svm_model, X_train, X_test, y_train, y_test)
# Decision Tree Classifier
dt_model = DecisionTreeClassifier()
print("\nDecision Tree Classifier:")
evaluate_model(dt_model, X_train, X_test, y_train, y_test)
# Random Forest Classifier
rf_model = RandomForestClassifier()
print("\nRandom Forest Classifier:")
evaluate_model(rf_model, X_train, X_test, y_train, y_test)