ML Project – Diabetes Prediction using Gradient Boosting

Machine Learning courses with 100+ Real-time projects Start Now!!

Program 1

Diabetes Prediction Dataset

# 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

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *