Ce rapport est une version smoke reproductible. Il vérifie le pipeline, les
métriques et les diagnostics sur un échantillon de 1000000
lignes. Il ne remplace pas le rapport final sur échantillon dev/full.
Un modèle de propension estime P(Y=1|X) : il classe les individus selon leur
probabilité de visite ou conversion observée. Un modèle uplift cherche plutôt à
estimer une différence conditionnelle :
P(Y=1|X,T=1) - P(Y=1|X,T=0)
La décision marketing doit dépendre de l'effet incrémental attendu, pas seulement de la probabilité naturelle de convertir.
- Variante :
official Criteo v2.1 CSV streaming_sample=1000000. - Loader :
https://go.criteo.net/criteo-research-uplift-v2.1.csv.gz. - Colonnes disponibles :
f0|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|treatment|conversion|visit|exposure. - Features modèle :
f0|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11. - Traitement principal :
treatment. - Outcome principal :
visit.
exposure est une variable post-traitement. Elle est reportée comme diagnostic
mais n'est pas utilisée comme traitement principal.
Taux globaux :
| column | rate | n_positive | n |
|---|---|---|---|
| treatment | 0.8505 | 85046 | 100000 |
| exposure | 0.02966 | 2966 | 100000 |
| visit | 0.04744 | 4744 | 100000 |
| conversion | 0.00279 | 279 | 100000 |
Outcomes par groupe :
| outcome | group | treatment_value | n | outcome_rate |
|---|---|---|---|---|
| visit | treated | 1 | 85046 | 0.04896 |
| visit | control | 0 | 14954 | 0.03879 |
| conversion | treated | 1 | 85046 | 0.002928 |
| conversion | control | 0 | 14954 | 0.002006 |
Équilibre marginal des covariables, plus grands SMD :
| feature | standardized_mean_difference | abs_standardized_mean_difference |
|---|---|---|
| f3 | -0.03825 | 0.03825 |
| f6 | -0.02956 | 0.02956 |
| f9 | 0.02809 | 0.02809 |
| f8 | -0.02455 | 0.02455 |
| f1 | 0.01567 | 0.01567 |
| f5 | -0.01367 | 0.01367 |
| f11 | -0.01006 | 0.01006 |
| f10 | 0.008379 | 0.008379 |
Figures :
Politiques comparées :
- random policy ;
- modèle de propension Logistic Regression ;
- modèle de propension HistGradientBoosting ;
- T-Learner Logistic Regression ;
- T-Learner HistGradientBoosting ;
- Class Transformation scikit-uplift HistGradientBoosting.
Les modèles sont sélectionnés sur validation. Le test set est utilisé seulement après sélection.
Résumé validation à k=0.2 :
| model_name | score_type | qini_auc | auuc | uplift_at_k | incremental_outcome_at_k | roc_auc_secondary |
|---|---|---|---|---|---|---|
| propensity_hist_gradient_boosting | propensity | 78.59 | 0.0354 | 0.05267 | 210.7 | 0.9461 |
| sklift_class_transformation_hgb | uplift | 78.53 | 0.03414 | 0.0543 | 217.2 | NA |
| propensity_logistic_regression | propensity | 76.05 | 0.03686 | 0.05059 | 202.4 | 0.9355 |
| t_learner_logistic_regression | uplift | 64.82 | 0.02462 | 0.02515 | 100.6 | NA |
| t_learner_hist_gradient_boosting | uplift | 58.32 | 0.03324 | 0.04544 | 181.8 | NA |
| random_policy | random | -6.035 | 0.006625 | 0.008079 | 32.32 | NA |
Intervalles bootstrap validation, 50 itérations :
| model_name | score_type | metric | k | mean | ci_low | ci_high |
|---|---|---|---|---|---|---|
| sklift_class_transformation_hgb | uplift | qini_auc | NA | 82.49 | 41.05 | 123.3 |
| propensity_hist_gradient_boosting | propensity | qini_auc | NA | 73.79 | 27.12 | 128.6 |
| propensity_logistic_regression | propensity | qini_auc | NA | 73.13 | 25.53 | 109.8 |
| t_learner_logistic_regression | uplift | qini_auc | NA | 67.36 | 28.48 | 103.3 |
| t_learner_hist_gradient_boosting | uplift | qini_auc | NA | 54.58 | 7.128 | 113.7 |
| random_policy | random | qini_auc | NA | 0.1171 | -33.95 | 34.42 |
| sklift_class_transformation_hgb | uplift | uplift_at_k | 0.2 | 0.05527 | 0.03343 | 0.08152 |
| propensity_hist_gradient_boosting | propensity | uplift_at_k | 0.2 | 0.04748 | 0.01653 | 0.07793 |
| propensity_logistic_regression | propensity | uplift_at_k | 0.2 | 0.04719 | 0.01707 | 0.07484 |
| t_learner_hist_gradient_boosting | uplift | uplift_at_k | 0.2 | 0.04596 | 0.0166 | 0.06989 |
| t_learner_logistic_regression | uplift | uplift_at_k | 0.2 | 0.0255 | 0.01477 | 0.03882 |
| random_policy | random | uplift_at_k | 0.2 | 0.007034 | -0.00724 | 0.02301 |
La meilleure politique sur validation selon qini_auc est
propensity_hist_gradient_boosting avec score type propensity.
La politique sélectionnée sur validation est évaluée sur test sans re-sélection.
| model_name | score_type | k | qini_auc | auuc | uplift_at_k | incremental_outcome_at_k | roc_auc_secondary |
|---|---|---|---|---|---|---|---|
| propensity_hist_gradient_boosting | propensity | 0.2 | 57.61 | 0.02429 | 0.04046 | 161.8 | 0.9487 |
Bootstrap test de la politique sélectionnée :
| model_name | score_type | metric | k | mean | ci_low | ci_high |
|---|---|---|---|---|---|---|
| propensity_hist_gradient_boosting | propensity | qini_auc | NA | 57.88 | 10.31 | 113.1 |
| propensity_hist_gradient_boosting | propensity | uplift_at_k | 0.2 | 0.044 | 0.007534 | 0.07488 |
Overlap top-k entre politiques de propension et politiques uplift sur validation, à k=0.2 :
| left_model_name | right_model_name | spearman | k | overlap_rate | jaccard |
|---|---|---|---|---|---|
| propensity_logistic_regression | t_learner_logistic_regression | 0.004127 | 0.2 | 0.3237 | 0.1931 |
| propensity_hist_gradient_boosting | t_learner_logistic_regression | -0.01212 | 0.2 | 0.338 | 0.2034 |
| propensity_logistic_regression | t_learner_hist_gradient_boosting | 0.4617 | 0.2 | 0.6565 | 0.4886 |
| propensity_hist_gradient_boosting | t_learner_hist_gradient_boosting | 0.4934 | 0.2 | 0.7117 | 0.5525 |
| propensity_logistic_regression | sklift_class_transformation_hgb | 0.7505 | 0.2 | 0.8065 | 0.6757 |
| propensity_hist_gradient_boosting | sklift_class_transformation_hgb | 0.8042 | 0.2 | 0.8482 | 0.7365 |
Lecture smoke : les overlaps montrent que certaines politiques uplift ciblent des lignes différentes des politiques de propension. Sur ce sample, les modèles uplift simples peuvent être plus ou moins proches des classements de propension selon leur forme fonctionnelle.
Sur ce smoke sample, les modèles de propension ont les meilleurs scores Qini ponctuels. Cela ne valide pas l'usage de la propension comme objectif final :
- les intervalles bootstrap restent larges ;
- les modèles uplift simples ne sont pas encore stabilisés ;
- l'overlap montre que les politiques peuvent cibler des individus différents ;
conversionreste rare et doit être étudiée comme outcome secondaire.
Le résultat actuel démontre surtout que la comparaison est traçable et que les métriques uplift changent la lecture par rapport à l'AUC.
- Échantillon smoke de 100k lignes, pas résultat final.
- Features anonymisées, donc pas de segment métier directement nommé.
- Dataset publicitaire, pas bancaire.
- Hypothèses causales à rappeler : randomisation/ignorabilité, SUTVA, positivité, cohérence et mesure correcte de l'outcome.
exposurene doit pas être traité comme assignation principale.- L'AUC ROC est secondaire ; les décisions doivent s'appuyer sur Qini, AUUC, uplift@k, policy value, déciles et incertitude.
Passer au mode dev si les ressources le permettent, puis comparer la stabilité
des résultats avec bootstrap plus large et outcome secondaire conversion.






