Tous les projets
🧠
Machine Learning Production

Modèles prédictifs LTV & churn

Pipeline ML qui calcule chaque nuit la LTV (BG/NBD + Gamma-Gamma) et le score de churn de chaque client B2B, consommé par les dashboards Metabase.

Période
2025
Rôle
ML Engineer
Contexte
Meet My Mama
Stack
11 technos
Python 3.11 uv Typer lifetimes scikit-learn pandas psycopg 3 Supabase Metabase structlog pytest

Objectif

Donner aux équipes sales et finance un score actionnable par client B2B pour prioriser les efforts commerciaux et anticiper les départs.

Ce que produit le pipeline

TableGrainRefreshSource
ml.fact_client_ltv1 ligne par entreprisenightly 06:00 UTCmatview projets nettoyés
ml.fact_client_churn1 ligne par entreprisenightly 06:10 UTCmatview client 360
ml.model_runs1 ligne par exécutionper run—

Approche modélisation

LTV — BG/NBD + Gamma-Gamma

Le couple classique pour la LTV non-contractuelle :

  • BG/NBD modélise la probabilité de re-achat dans un horizon T (en fonction de recency, frequency, T)
  • Gamma-Gamma modélise le montant moyen par achat

Score final = expected_purchases(T) × expected_avg_value, projeté à 12 mois.

Churn — Gradient Boosting

Définition du churn : pas d’activité depuis > X jours (paramétrable). Features : recency, frequency, panier moyen, secteur, ancienneté, saisonnalité.

Stack & outillage

Stack Python moderne :

  • uv pour la gestion des dépendances (10× plus rapide que pip)
  • Typer pour la CLI
  • pydantic-settings pour la config typée
  • psycopg 3 pour PostgreSQL
  • structlog pour les logs structurés
  • pytest + ruff + mypy pour la qualité

Production

  • Cron Supabase déclenche le pipeline chaque nuit
  • Logs structurés JSON → Loki
  • Table model_runs pour observer drift, runtime, sample size
  • Tests unitaires + tests d’intégration sur DB de staging

Mon rôle

Conception du pipeline, choix des modèles, packaging Python moderne, intégration au data warehouse Supabase, dashboards Metabase de monitoring.