Ce dépôt est une mini-étude de causal machine learning. Les contributions doivent préserver la distinction entre prédiction de conversion, propension au traitement et uplift causal.
P(Y=1 | X)mesure une probabilité de conversion.P(Y=1 | X,T=1) - P(Y=1 | X,T=0)mesure l'uplift conditionnel.P(T=1 | X)mesure la propension à recevoir le traitement.- Les conclusions causales doivent rappeler les hypothèses : randomisation ou ignorabilité, SUTVA, positivité, cohérence et absence d'interférences majeures.
- Ne pas optimiser l'accuracy comme métrique principale.
- Utiliser Qini, AUUC, uplift@k, incremental gain, policy value et diagnostics par décile pour comparer les politiques.
- Conserver
treatmentcomme traitement primaire pour l'analyse principale. - Traiter
exposurecomme variable post-traitement exploratoire. - Ne pas versionner les données brutes ou intermédiaires.
- Tracer chaque expérience : ID, seed, variante dataset, taille d'échantillon, colonnes, modèle, hyperparamètres et métriques.
- Garder la logique lourde dans
src/uplift_study, pas dans les notebooks. - Sauvegarder les résultats dans
reports/oudata/processed/.
- Python 3.11+.
- Fonctions courtes, typées et testables.
- Tests dédiés pour les métriques et les diagnostics de politique.
- Séparation stricte train/validation/test.
- Seuils et sélection de politique décidés sur validation, jamais sur test.
- Les notebooks doivent rester narratifs et légers.
- Les rapports doivent préciser la base des déciles : classement par score d'uplift ou par score de politique.
- Les limites méthodologiques doivent rester visibles.
- Les recommandations doivent être actionnables : ciblage proposé, gain incrémental attendu et segments à éviter lorsque les données le permettent.