Skip to content

Latest commit

 

History

History
191 lines (140 loc) · 7.9 KB

File metadata and controls

191 lines (140 loc) · 7.9 KB

Propensity is not uplift — rapport smoke

Statut

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.

Question

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.

Dataset et contrat causal

  • 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.

EDA minimale

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 :

Outcome rates

Feature distributions

Feature balance

Méthodes smoke

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ésultats validation

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.

Qini curves

Uplift at k

Best deciles

Test verrouillé

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

Propensity vs uplift : ciblent-ils les mêmes individus ?

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

Policy overlap

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.

Interprétation prudente

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 ;
  • conversion reste 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.

Limites

  • É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.
  • exposure ne 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.

Prochaine étape

Passer au mode dev si les ressources le permettent, puis comparer la stabilité des résultats avec bootstrap plus large et outcome secondaire conversion.