Sohen Patel
← All projects

Classical ML · explainability

Life Expectancy Classification Pipeline

0.94

macro F1 on 882 held-out samples

The point was to build the boring parts properly: preprocessing inside the pipeline, cross-validated model selection and evaluation beyond accuracy.

What I did

  • Compared logistic regression, KNN, random forest, extra trees and XGBoost with RandomizedSearchCV, and saved every experiment's outputs.
  • Tree ensembles clearly beat linear and distance-based models; scaling mattered for KNN and logistic regression only.
  • Chose the decision threshold by F1 instead of defaulting to 0.5, and used SHAP for global and per-prediction explanations.

Stack

scikit-learnXGBoostSHAP