Health Insurance Premium Prediction
Regression on 1,338 records, where one binary feature dominates everything else.
- ~0.77
- Linear regression R², testmeasured in repo
- 1,337
- Records after dedupemeasured in repo
- smoker status
- Strongest predictormeasured in repo
The problem
Predicting insurance charges from demographics looks like a standard regression until you plot it: smoker status splits the data into two nearly separate populations. The modelling question becomes whether ensembles find structure beyond that dominant split, or just relearn it in a more complicated way.
Architecture
A progression from linear regression with incrementally added features, through decision tree and random forest regressors tuned with both GridSearchCV and RandomizedSearchCV, to a tuned XGBoost regressor.
What broke
The repo reports XGBoost as best performing without recording its final R² or RMSE, which means the headline comparison is not reproducible from the README as written — a documentation gap rather than a modelling one, and exactly the kind of thing that makes results unverifiable later. At 1,337 records the dataset is also small enough that tuning gains sit within the noise of the train/test split.
Results
Linear regression establishes the floor at roughly 0.77 test R². Ensembles with tuning outperform linear approaches, with XGBoost best. Smoking status is the dominant predictor, followed by age and BMI.