Machine learning project: predict GFR (kidney function) from clinical tabular features.
CKD_Status is not used in the final model.
CKD labels are typically derived from GFR stages, so using CKD status to predict GFR would be circular / leakage-like.
High R² is still expected because GFR is strongly linked to Creatinine (correlation ≈ -0.96).
| Model | Test R² | MAE | RMSE | CV R² |
|---|---|---|---|---|
| Gradient Boosting | 0.9983 | 0.818 | 1.336 | 0.9978 |
| Linear Regression | 0.9909 | 1.754 | 3.095 | 0.9899 |
Leakage check (Linear Regression with CKD_Status, not used finally): R² ≈ 0.9931
- EDA + correlation checks
- Drop
CKD_Statusfrom features - Train/test split
- Encode
Medicationon train only - Compare Linear Regression vs Gradient Boosting (CV + test)
- Residual diagnostics + feature importance
pip install -r requirements.txt
jupyter notebook notebooks/ckd_regression_analysis.ipynbckd-regression-analysis/
├── notebooks/ckd_regression_analysis.ipynb
├── data/kidney_dataset.csv
├── data/DATA.md
├── images/
│ ├── residuals_gb.png
│ ├── feature_importance.png
│ └── creatinine_vs_gfr.png
├── README.md
├── README.ru.md
├── requirements.txt
├── LICENSE
└── .gitignore
- Educational / portfolio project, not a clinical tool
- Near-formula relationship Creatinine→GFR can inflate R²
- Dataset provenance should be treated carefully (see
data/DATA.md)


