Skip to content

Repository files navigation

Python XGBoost RandomForest Logistic Regression Flask SMOTE

🩺 Diabetes Patients Readmission Prediction

A Machine Learning Approach to Predict 30-Day Hospital Readmission Risk

📌 Introduction

Hospital readmission among diabetes patients is a major challenge for healthcare systems. Early detection of patients with a high probability of being readmitted enables hospitals to plan interventions, reduce costs, and improve patient outcomes.

This project builds a machine learning model to predict whether a diabetes patient will be readmitted within 30 days using historical patient records, medical attributes, and clinical indicators.


🎯 Project Objective

To develop a predictive model that classifies patients into:

  • Readmitted < 30 days (high-risk)
  • Readmitted > 30 days
  • Not readmitted

Primary ML Target Variable:
readmitted_30_days1 (readmitted within 30 days), 0 (not readmitted)


🧪 Dataset Summary

The dataset contains 100,000+ hospital encounters and includes:

  • Patient demographics
  • Diagnoses & procedure codes
  • Laboratory test results
  • Outpatient / inpatient visit history
  • Medication and insulin-related features
  • Admission & discharge information

Data Cleaning Performed:

✔ Handling missing values
✔ Fixing inconsistent categories
✔ Reducing noise in diagnosis codes
✔ Creating new engineered features for better model accuracy


📊 Exploratory Data Analysis (Key Findings)

🧱 Correlation Heatmap
Most numerical features show low correlation → dataset is primarily categorical.

👵 Age Distribution
Majority of patients fall in the 50–80 age group, highlighting higher chronic diabetes prevalence.

🔁 Readmission Distribution

  • “Not readmitted” → majority class
  • “Readmitted < 30 days” → minority class requiring class-imbalance handling

⭐ Important Predictors:

  • Number of prior inpatient visits
  • Number of outpatient visits
  • Number of diagnoses
  • Change in diabetes medication
  • Insulin dosage
  • Time spent in the hospital

📉 Model Evaluation (Charts)

Generated evaluation charts include:

  • Confusion matrix
  • ROC curve
  • F1-score comparison
  • Model accuracy comparison
  • Random Forest feature importance

These visualizations help interpret model performance and identify improvement areas.


🛠️ Feature Engineering

Key transformations performed:

✔ Label encoding & one-hot encoding
✔ SMOTE oversampling for minority class
✔ Scaling numerical variables
✔ Grouping diagnosis codes
✔ Creating composite features:

  • Total number of visits
  • Diabetes medication change flags
  • Chronic illness indicators

Final processed dataset:
feature_engineered_diabetes.csv


🤖 Machine Learning Models

The following models were trained and compared:

Logistic Regression Image Random Forest Classifier Image XGBoost Classifier Image


⭐ Best Performing Models

  • XGBoost → highest accuracy
  • Random Forest → most stable & interpretable Image

Both models performed well in identifying high-risk patients.


📈 Results Summary

  • Accuracy: ~86%
  • ROC-AUC: ~0.83
  • F1-Score: strong for majority class, significantly improved for minority class after SMOTE
  • Interpretability: insights extracted from feature importance

The model delivers meaningful predictions that can support hospital decision-making and help reduce readmission rates.

About

This project builds a machine learning model to predict whether a diabetes patient will be readmitted within 30 days using historical patient records, medical attributes, and clinical indicators.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages