Machine Learning & Analytics
Course group project · 2026
Housing Burden Analysis
Out of more than 1,100 candidate variables on Canadian household data, which ones actually predict whether a household is housing burdened, and do the high-risk households fall into distinct types? Elastic Net and XGBoost with SHAP to find and explain the drivers, PCA, UMAP and K-Means to separate the population into profiles.
Overview
Housing affordability is easy to describe and hard to explain: which of hundreds of household characteristics actually move the needle on housing burden? In this group project for DATASCI 3000, we started from 1,100+ candidate variables and worked toward a short list that genuinely matters.
We approached it from two angles at once — finding the drivers of housing burden, and separating households into distinct, interpretable profiles.
The problem
With over a thousand candidate variables, most modeling choices drown in noise and collinearity. The challenge was to cut through that to a defensible set of drivers — and to describe the different kinds of households experiencing housing burden rather than treating them as one undifferentiated group.
Approach
- 01
Reduced dimensionality
PCA and UMAP compressed 1,100+ variables into a workable structure and exposed the dominant axes of variation.
- 02
Segmented households with K-Means
Clustering separated households into distinct profiles, turning a single "burdened" label into interpretable groups.
- 03
Identified drivers with Elastic Net and XGBoost
A regularized linear model and a gradient-boosted model were used in tandem to surface which variables actually predict housing burden.
- 04
Explained the models with SHAP
SHAP values translated the models into ranked, human-readable drivers instead of a black box.
Selected views
UMAP projection of households, colored by cluster
SHAP driver ranking for housing burden
Cluster profiles across key household characteristics