ML Project – Diabetes Prediction using Gradient Boosting
Machine Learning courses with 100+ Real-time projects Start Now!!
Program 1
# Import libraries
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
# Load dataset
df = pd.read_csv("D://scikit_data/diabetes/diabetes_prediction_dataset.csv")
df.info()
# Label Encoding for categorical column
le = LabelEncoder()
df["Gender"] = le.fit_transform(df["Gender"]) # Male = 1, Female = 0
df.head()
# Separate Independed and depended variables
X = df.drop("Outcome", axis=1) # Input
y = df["Outcome"] #Output
y
# Split dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
len(X_test)
# Train Gradient Boosting Classifier
model = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)
model.fit(X_train, y_train) #Trained
# Evaluate model
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
cm = confusion_matrix(y_test, y_pred)
print(" Model Performance")
print(f"Accuracy: {acc:.2f}")
print("Confusion Matrix:")
print(cm)
# Step 8: User input for prediction (updated)
print("\n Enter patient details to predict diabetes (1=Diabetic, 0=Not Diabetic):")
Gender = input("Gender (Male/Female): ").strip().capitalize()
if Gender == "Female":
Pregnancies = int(input("Number of Pregnancies: "))
Gender_encoded=0
else:
Pregnancies=0
Gender_encoded=1
# Not applicable to males
Glucose = int(input("Glucose Level: "))
BloodPressure = int(input("Blood Pressure: "))
SkinThickness = int(input("Skin Thickness: "))
Insulin = int(input("Insulin Level: "))
BMI = float(input("BMI: "))
DPF = float(input("Diabetes Pedigree Function: "))
Age = int(input("Age: "))
# Create input DataFrame
input_data = pd.DataFrame([{
"Pregnancies": Pregnancies,
"Glucose": Glucose,
"BloodPressure": BloodPressure,
"SkinThickness": SkinThickness,
"Insulin": Insulin,
"BMI": BMI,
"DiabetesPedigreeFunction": DPF,
"Age": Age,
"Gender": Gender_encoded
}])
# Predict
result = model.predict(input_data)[0]
print(f"\n Prediction: {'Diabetic' if result == 1 else 'Not Diabetic'}")
Did you like our efforts? If Yes, please give DataFlair 5 Stars on Google

