6.Write a program for k-NN classifier to predict the class of the person on available attributes. Consider diabetes.cs dataset. Also calculate the performance measures of the model
Sun Nov 03 2024 12:59:31 GMT+0000 (Coordinated Universal Time)
Saved by
@varuntej
#python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report
# Load the dataset
df = pd.read_csv('diabetes.csv')
# Display the first few rows to understand the dataset structure (optional)
print(df.head())
# Separate features and target
X = df.drop(columns=['Outcome']) # Assuming 'Outcome' is the target column (0 = No Diabetes, 1 = Diabetes)
y = df['Outcome']
# 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_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Initialize and train the k-NN classifier
k = 5 # You can tune this value
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train_scaled, y_train)
# Predict on the test set
y_pred = knn.predict(X_test_scaled)
# Calculate performance measures
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
# Display the performance measures
print("Performance Measures for k-NN Classifier:")
print(f"Accuracy: {accuracy:.4f}")
print(f"Precision: {precision:.4f}")
print(f"Recall: {recall:.4f}")
print(f"F1-Score: {f1:.4f}")
# Detailed classification report
print("\nClassification Report:\n", classification_report(y_test, y_pred))
content_copyCOPY
Comments