An applied machine learning project using real-world Criteo data to measure the incremental effect of ad exposure. This project highlights uplift modeling, a powerful technique for decision-making when traditional classification isn't enough.
π― Built for interpretable causal analysis β not just prediction.
- Source: Criteo Uplift Modeling Dataset (Kaggle)
- Size: 140K+ samples
- Context: Ad exposure logs with binary treatment/control, conversions, and anonymized features
Instead of predicting who will convert, the goal is to identify who will convert because they saw an ad. This is modeled via uplift β the incremental effect of treatment vs control.
| Step | Tools / Methods |
|---|---|
| Data Cleaning | Pandas, NumPy |
| Balanced Sampling | Stratified subsampling by treatment |
| Uplift Modeling | 2-model approach with LightGBM |
| Uplift Curve Analysis | Qini & Uplift Curves |
| Feature Attribution | SHAP (treatment & control models separately) |
| Interpretation | Net uplift gain, top features, visual ranking |
| Insight Area | Output File Name |
|---|---|
| Uplift Curve (sorted ranking) | uplift_curve.png |
| Qini Curve | qini_curve.png |
| SHAP: Treatment Model | shap_treatment.png |
| SHAP: Control Model | shap_control.png |
| Feature Attribution Diff | shap_diff_barplot.png |
| Delta SHAP vs Uplift Score | delta_vs_uplift_scatter.png |
All plots exported in .png format and designed for clean, web-optimized display.
- Top uplift-driving features differ between treatment and control groups β a key insight missed by vanilla classifiers.
- Visualizing the delta SHAP between models highlighted features that were positively leveraged only in the presence of an ad.
- The uplift model improved targeting efficiency by 20% in the top decile.
This project is integrated into my interactive personal site powered by React, Tailwind, and Firebase.
- Clone the repo
git clone https://github.com/LukaJurisic/Criteo-Causal-Inference.git cd Criteo-Causal-Inference