Modelli predittivi per LTV e churn
Costruire modelli predittivi per Customer Lifetime Value e churn probability nel marketing.
Cosa imparerai
- Comprendere il problema analitico e il contesto decisionale
- Applicare esempi, metriche e controlli a casi reali
Collegamenti
Modelli predittivi per LTV e churn
Un modello ordina clienti per rischio di churn, ma il marketing può contattarne solo una parte e alcune offerte costano più del valore recuperato. Predire non basta: bisogna sapere chi intervenire, quando e con quale ritorno atteso. Modelli predittivi per LTV e churn collega probabilità, valore e azione commerciale.
Una scena da cui partire
Leggi la lezione come progettazione di un intervento, non solo di un classificatore. Una buona previsione deve rispettare timing, capacità operativa, margine e rischio di trattare clienti che sarebbero rimasti comunque.
- Contesto: Quale azione concreta seguirà il punteggio di churn?
- Metodo: Quale baseline mostra valore oltre al ranking?
- Applicazione: Quando non interverresti anche se il rischio previsto è alto?
Churn prediction: feature che contano
Le feature più predittive di churn in ordine di importanza (confermato su decine di implementazioni):
- Recency (giorni da ultima azione significativa) — il singolo miglior predittore, universalmente
- Usage trend (attività recente / attività precedente) — la direzione conta più del livello
- Eventi negativi: pagamento fallito, ticket supporto, downgrade piano
- Engagement depth: quante feature core usa abitualmente
- Tenure: clienti nuovi churnano più degli storici (paradosso apparente ma vero)
df['recency'] = (df['today'] - df['last_active_date']).dt.days
df['usage_trend'] = df['active_days_last_14'] / df['active_days_prev_14'].clip(lower=1)
df['has_payment_failure'] = (df['failed_payments_30d'] > 0).astype(int)
df['engagement_depth'] = df[['feature_A', 'feature_B', 'feature_C', 'feature_D']].sum(axis=1)
df['tenure_months'] = (df['today'] - df['signup_date']).dt.days / 30.44
Attenzione: non usare MAI accuracy per valutare il modello su dataset sbilanciati. Con churn rate 5%, un modello che dice sempre “no churn” ha accuracy 95% — ma è completamente inutile. Metriche corrette: AUC-ROC (>0.80 buono), precision@K (es. precision nel top 20% dei più a rischio), lift.
LTV prediction: due approcci
Approccio probabilistico: BG/NBD + Gamma-Gamma
Per retail/e-commerce con acquisti discreti e non subscription. Modella frequenza e valore come processi stocastici:
from lifetimes import BetaGeoFitter, GammaGammaFitter
# BG/NBD per frequenza acquisti futuri
bgf = BetaGeoFitter(penalizer_coef=0.01)
bgf.fit(df['frequency'], df['recency'], df['T'])
# Gamma-Gamma per valore medio per acquisto
ggf = GammaGammaFitter(penalizer_coef=0.01)
ggf.fit(df['frequency'], df['monetary_value'])
# LTV predetto a 12 mesi
ltv_12m = ggf.customer_lifetime_value(
bgf, df['frequency'], df['recency'], df['T'],
df['monetary_value'], time=12, discount_rate=0.01)
Vantaggio: interpretabile, robusto, basato su assunzioni esplicite. Limite: adatto solo a pattern di acquisto discreti, non subscription.
Approccio machine learning: Gradient Boosting Regression
Per SaaS/subscription o dati con molte feature comportamentali:
from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5)
model = HistGradientBoostingRegressor(
max_iter=200, max_depth=5, learning_rate=0.05,
early_stopping=True, validation_fraction=0.1, random_state=42)
# Feature: comportamento prime 4 settimane
features = ['w1_sessions', 'w2_sessions', 'w3_sessions', 'w4_sessions',
'features_used_w4', 'support_tickets_w4', 'plan_type',
'acquisition_source', 'country', 'device_type']
model.fit(X_train, y_train)
predicted_ltv = model.predict(X_test)
Vantaggio: flessibile, cattura relazioni non lineari, gestisce molte feature. Limite: meno interpretabile, richiede più dati.
Implementazione in produzione
# Pipeline di scoring batch (giornaliera)
import joblib
# Carica modello
model = joblib.load('models/churn_model_v3.joblib')
# Estrai feature da warehouse
query = """
SELECT c.customer_id,
DATEDIFF('day', c.last_active, CURRENT_DATE) AS recency,
...
FROM customers c
LEFT JOIN activity a ON c.customer_id = a.customer_id
"""
df = pd.read_sql(query, warehouse_engine)
# Predici
df['churn_probability'] = model.predict_proba(df[feature_cols])[:, 1]
# Segmenta per azione
df['action'] = pd.cut(df['churn_probability'],
bins=[0, 0.3, 0.6, 0.8, 1.0],
labels=['low_risk', 'monitor', 'high_risk', 'critical'])
# Scrivi su tabella di activation
df[['customer_id', 'churn_probability', 'action']].to_sql(
'mrt_activation__churn_prediction', warehouse_engine,
if_exists='replace', index=False)
Monitoring del modello in produzione
I modelli predittivi degradano nel tempo perché il comportamento dei clienti cambia. Monitora:
def check_model_health(recent_data, actual_outcomes):
# Predici sul periodo recente
preds = model.predict_proba(recent_data[feature_cols])[:, 1]
auc = roc_auc_score(actual_outcomes['churned'], preds)
# Verifica feature drift
for col in feature_cols:
ks_stat = ks_2samp(
training_data[col].dropna(),
recent_data[col].dropna()
).statistic
if ks_stat > 0.15: # feature significativamente diversa dal training
print(f"WARNING: {col} distribution shifted (KS={ks_stat:.3f})")
# Alert se AUC scende sotto soglia
if auc < AUC_THRESHOLD_ALERT:
send_alert(f"Model AUC dropped to {auc:.3f}")
Ricorda: un modello in produzione è un processo continuo, non un artefatto statico.
Controllo di qualità
Prima di usare modelli predittivi per ltv e churn in una decisione, controlla sempre completezza, duplicati, timezone, definizioni cambiate e segmenti esclusi. Molte analisi apparentemente sofisticate falliscono perché il dato di partenza misura un comportamento diverso da quello che il team crede di osservare.
Interpretazione per segmenti
La media aggregata è solo il punto di partenza. Segmenta per canale, coorte, piano, paese, device e maturità dell’utente. Se due segmenti si muovono in direzioni opposte, la media non rappresenta nessuno dei due e può portare a una decisione sbagliata.
Decisione operativa
Ogni analisi deve terminare con una scelta possibile: continuare, fermare, iterare, investire, rimuovere o approfondire. Se modelli predittivi per ltv e churn non cambia una decisione, probabilmente manca ancora il collegamento tra metrica e azione.
Problema reale
Nel dominio di marketing data science, Modelli predittivi per LTV e churn serve a risolvere questo problema: usare modelli e segmentazioni per decidere dove intervenire, non per produrre complessità fine a se stessa. La lezione non va trattata come teoria isolata, ma come un modo per migliorare una scelta concreta con dati, assunzioni esplicite e controlli minimi.
Obiettivo operativo: Comprendere il problema analitico e il contesto decisionale; Applicare esempi, metriche e controlli a casi reali. Se alla fine non sai indicare quale decisione cambia, quale dato osservi e quale errore vuoi evitare, la lezione non è ancora diventata competenza applicata.
Modello concettuale
| Fase | Cosa chiarire | Output |
|---|---|---|
| Domanda | Quale scelta reale deve migliorare? | Decisione da prendere |
| Misura | Quale segnale osservabile rappresenta il problema? | Metrica o dato sorgente |
| Controllo | Quale baseline rende il risultato interpretabile? | Confronto credibile |
| Azione | Che cosa cambia dopo l’analisi? | Prossimo passo operativo |
Il modello concettuale è intenzionalmente semplice: decisione, dato, controllo, azione. Ogni approfondimento tecnico deve rafforzare almeno uno di questi quattro punti.
Formalizzazione rigorosa
Per rendere Modelli predittivi per LTV e churn analizzabile, definisci prima l’unità di lavoro: cliente, campagna, segmento, previsione o feature. Poi collega questa unità a una metrica osservabile: lift, errore, stabilità, valore marginale e costo operativo. Infine dichiara la decisione attesa: modello, esperimento, segmento attivabile o raccomandazione.
| Elemento | Specifica richiesta |
|---|---|
| Unità di analisi | cliente, campagna, segmento, previsione o feature |
| Segnale principale | lift, errore, stabilità, valore marginale e costo operativo |
| Baseline | Periodo precedente, gruppo comparabile, benchmark o scenario controfattuale |
| Decisione | modello, esperimento, segmento attivabile o raccomandazione |
| Rischio | Scambiare un numero disponibile per una prova sufficiente |
La formalizzazione e solida quando un altro analista può riprodurre la logica, criticare le assunzioni e ottenere la stessa decisione partendo dagli stessi dati.
Esempio o caso studio
Il modello identifica clienti ad alto rischio, ma metà di loro ha LTV basso e non giustifica un’offerta costosa. Il caso mostra perché churn prediction deve combinare probabilità di abbandono, valore atteso e costo dell’intervento, altrimenti il team salva clienti non profittevoli.
| Evidenza osservata | Lettura prudente | Azione consigliata |
|---|---|---|
| Il numero migliora | Potrebbe essere effetto reale o variazione normale | Cercare confronto e segmento |
| Un segmento cambia più degli altri | La media aggregata nasconde una differenza | Separare coorti o casi d’uso |
| Il costo cresce insieme al risultato | L’impatto va letto sul margine | Stimare trade-off e sostenibilità |
Lab / esercizio
Livello base
Scrivi una scheda di una pagina per Modelli predittivi per LTV e churn: decisione da supportare, metrica primaria, baseline, rischio principale e azione se il segnale e confermato.
Livello intermedio
Costruisci una tabella con tre segmenti, periodi o scenari. Per ciascuno indica cosa cambia, quale spiegazione alternativa e plausibile e quale controllo useresti prima di raccomandare un azione.
Livello research-grade
Prepara un decision memo: ipotesi, dati richiesti, criteri di esclusione, controlli di qualità, soglia decisionale, rischio residuo e piano di monitoraggio dopo la decisione.
Dataset e materiali consigliati
Usa CRM, campagne, transazioni, feature marketing, testo, embeddings e serie storiche. Se non hai accesso a dati reali, crea un dataset sintetico con almeno 200 righe, una dimensione temporale, una dimensione segmento e una metrica di outcome.
Errore tipico da evitare
L’errore più comune e usare Modelli predittivi per LTV e churn come etichetta invece che come processo. Succede quando il team mostra un grafico senza decisione, una metrica senza baseline, o una conclusione senza indicare quale assunzione potrebbe invalidarla.
La domanda di controllo è: se questo risultato fosse instabile, quale scelta sbaglierei? Se la risposta non è concreta, manca ancora il collegamento tra analisi e azione.
Quiz o checkpoint
- Quale decisione concreta dovrebbe migliorare questa lezione?
- Quale unità di analisi rende il problema misurabile?
- Quale baseline useresti per evitare una lettura ingenua?
- Quale errore tipico potrebbe cambiare la conclusione?
- Quale output consegneresti a uno stakeholder non tecnico?
Riepilogo operativo
Modelli predittivi per LTV e churn diventa utile quando produce una decisione più chiara, non quando aggiunge terminologia. Usa il framework problema, modello, formalizzazione, esempio, lab e checkpoint per trasformare la lezione in pratica verificabile. Categoria: Tecnico. Difficoltà: advanced. Tempo stimato: 22 min.
Approfondimento di pratica
Per consolidare Modelli predittivi per LTV e churn, trattala come una piccola prova di lavoro dentro un caso growth in cui segmenti, modelli o previsioni devono cambiare una decisione commerciale. Non basta dire di aver capito la lezione: devi produrre una raccomandazione misurabile con baseline, azione, rischio e criterio di verifica. Questo passaggio serve a rendere la conoscenza trasferibile, perché obbliga a separare contesto, misura, azione e limite.
Esempio operativo
Parti da una domanda semplice: quale scelta diventerebbe migliore se applicassi bene questa lezione? Nel modulo marketing data science, la risposta deve sempre collegare un problema reale a un output osservabile. Se stai studiando una lezione di tipo Tecnico, costruisci un esempio con tre righe: il contesto in cui nasce la domanda, il dato o il modello che useresti per leggerla, e la decisione che prenderesti dopo aver controllato i rischi.
Un esempio valido non deve essere grande. Può essere una tabella con una baseline e due segmenti, una query che verifica una definizione, un disegno di esperimento, un controllo su un modello o un memo di dieci righe. La qualità non dipende dalla complessità tecnica, ma dalla tracciabilità del ragionamento: chi legge deve capire perché hai scelto quella metrica, quale alternativa hai scartato e quale evidenza ti farebbe cambiare idea.
Checkpoint di lavoro
- Scrivi la decisione che questa lezione dovrebbe migliorare, usando un verbo operativo: allocare, fermare, correggere, lanciare, misurare, priorizzare o investigare.
- Definisci il segnale principale e almeno un guardrail. Il segnale dice dove guardi; il guardrail evita che una scelta localmente buona rovini il sistema.
- Aggiungi una baseline. Senza baseline non sai se il numero e alto, basso, stabile, anomalo o solo raccontato male.
- Esplicita il rischio più probabile: produrre un modello interessante ma scollegato da budget, canali o responsabilità operative. Scrivilo prima della raccomandazione, non dopo.
- Chiudi con un output consegnabile: dashboard, query, schema, memo, esperimento, notebook o checklist. Deve essere qualcosa che un reviewer possa aprire e criticare.
Riepilogo di padronanza
Hai davvero assimilato Modelli predittivi per LTV e churn quando riesci a usarla in tre modi: spiegare il concetto senza gergo inutile, applicarlo a un caso piccolo ma realistico, e difendere una raccomandazione includendo limiti e prossimi controlli. Se manca uno di questi tre elementi, torna al modello concettuale e riduci l’ambizione dell’esempio. Meglio una prova piccola ma rigorosa di un grande progetto che non rende verificabile la decisione.
Percorso collegato
Lezioni da leggere insieme
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.