Customer & Product Clustering E-commerce
RFM segmentation plus future cluster prediction for personalized e-commerce
Pipeline ecommerce with RFM clustering (KMeans, K=4-6) and future cluster prediction at 30/90 days using XGBoost/RandomForest. Macro F1 score 0.70-0.85 with strict temporal split.
Highlights
- Feature RFM built at point-in-time with separate train/test snapshots (no data leakage)
- Silhouette-based K selection: identified 4-6 significant customer clusters
- Comparison of KMeans vs GMM with documented rationale
- Forecast of future cluster prediction at 30/90 days using Random Forest and XGBoost
- Macro F1 score 0.70-0.85 and balanced accuracy 0.75-0.90 on temporal holdout test
- Modular pipeline with CLI and reusable inference API
- 4 notebooks + 5 theoretical articles on RFM, clustering, temporal validation
What is the project?
Pipeline ML per la segmentazione clienti e-commerce basata su RFM (Recency, Frequency, Monetary) con un secondo livello di valore: la predizione del cluster futuro a 30 e 90 giorni. Combina clustering non supervisionato e classificazione supervisionata in un unico flusso, abilitando strategie di personalizzazione, retention e ottimizzazione del Customer Lifetime Value. Repo: github.com/fedcal/Customer-Product-Clustering-in-E-commerce.
Pipeline Architecture
- Data loading: log temporale eventi (view, add-to-cart, purchase)
- Feature RFM point-in-time: snapshot separati train/test con strict temporal split
- Feature engineering: RFM base + propensione conversione + price sensitivity
- Clustering: KMeans (primario) con K selezionato via silhouette; GMM come confronto probabilistico
- Classificatore supervisionato: Random Forest e XGBoost per predire il cluster futuro
- Two-snapshot design: previene il leak di informazioni dal futuro
- Inference: dato uno snapshot RFM corrente, predice il cluster a 30/90 giorni
Temporal Test Set Metrics
- Silhouette score per la scelta di K (range testato 3–8, ottimale 4–6)
- Macro-F1: 0.70–0.85 sulla predizione multiclasse del cluster futuro
- Balanced accuracy: 0.75–0.90 sul test holdout
- Confusion matrix con focus su segmenti high-value
- K cluster identificati: 4–6 segmenti clienti
Use Case Business
Engine di personalizzazione e-commerce: predire il valore futuro dei clienti, ottimizzare l'allocazione del budget marketing, progettare campagne retention mirate sui segmenti ad alto valore a rischio churn. Adattabile a SaaS B2C, retail omnichannel e marketplace per piani di trattamento differenziati per cluster (golden / silver / bronze / standard).
Methodological rigor
Il progetto applica un design metodologico raro nei tutorial pubblici di RFM: two-snapshot temporal design, in cui i feature di training sono calcolati su una finestra t1 e il target di test su una finestra t2 successiva, senza alcuna sovrapposizione. Questo schema replica fedelmente il setup di produzione e permette di stimare in modo onesto la generalizzazione temporale del modello.
Full technology stack
| Level | Technology | Annotation |
|---|---|---|
| Linguaggio | Python 3 | - |
| ML core | scikit-learn (KMeans, GMM), XGBoost, Random Forest | - |
| Feature | RFM (Recency / Frequency / Monetary) + propensione conversione + price sensitivity | - |
| Validazione | Two-snapshot temporal split (no leakage tra train/test) | - |
| Selezione K | Silhouette score per scegliere K=4–6 | - |
| Documentazione | Docusaurus 3 + TypeScript + KaTeX | - |
| Deploy docs | GitHub Actions + GitHub Pages | - |


