DATA MINING PER IL MARKETING Andrea Cerioli andrea.cerioli@unipr.it Sito web del corso GLI ALBERI DI CLASSIFICAZIONE Algoritmi di classificazione Zani-Cerioli, Cap. XI
CHAID: Chi-square Automatic Interaction Detection Primo algoritmo popolare di segmentazione Y qualitativa (J 2 classi); X qualitative Utilizza il test chi-quadrato (per grandi campioni) E veloce Consente anche X quantitative (in classi) e valori mancanti + risposte non so (categoria floating ) Selezione delle variabili Consente eventualmente split non binari Non ha criteri di potatura perché meno soggetto a overfitting Struttura generalmente più semplice rispetto a altri metodi più sofisticati: talvolta è utilizzato ancora oggi CHAID esaustivo: considera tutte le possibili suddivisioni di ciascun X
CHAID - Accorpamento Accorpamento delle modalità di ogni esplicativa X j : analisi della tabella di contingenza che deriva dall incrocio di X j con Y. In particolare: tra tutti i possibili accorpamenti si sceglie quello che corrisponde alle modalità più simili (in questo modo l associazione tra Y e la X accorpata è max) Esempio (campione piccolo, quindi cautela nel test χ 2 ):
Variabile Patrimonio: incrocio con Y Sottotabella 1 (si esclude Patrimonio = basso): Sottotabella 2 (si esclude Patrimonio = alto): Si aggregano M + A: la tabella risultante ha max chi-quadrato con Y (v. pp. 538-539)
CHAID - Split La procedura di accorpamento è applicata a tutte le possibili coppie di modalità di ogni variabile esplicativa Quando si forma una nuova categoria con 3 o più modalità: si può verificare che essa non sia disaggregabile in 2 sottocategorie criterio chi-quadrato, ma più restrittivo rispetto a quello di accorpamento I passi precedenti sono ripetuti per tutte le esplicative: nuovo insieme di esplicative X 1 *, X 2 * con un numero di modalità (solitamente) ridotto Lo split prescelto è quello che max. associazione tra Y e ogni esplicativa X j * max chi-quadrato (asintotico), purché p-value < soglia Una novità di questo test è la correzione del p-value in base al numero di confronti m effettuati per giungere a X j * alcuni degli m test effettuati potrebbero essere significativi per il solo effetto del caso Se vogliamo che α sia la probabilità di errore complessiva (ad es. α=0.05), dobbiamo effettuare ogni singolo test con probabilità di soglia più piccola: α/m infatti: P(A 1 A m ) P(A 1 ) + + P(A m ) Questa modifica della procedura rende l albero più semplice e più stabile: è stato uno degli elementi cruciali per l affermazione della procedura in pratica
CHAID - esempio Il Nodo 0 è suddiviso in base a Patrimonio (con 2 modalità: {B} + {M,A}) Chi-quadrato = 4.444 indice X2 nella tab. di contingenza che incrocia Patrimonio aggregato (2 modalità: {B} + {M,A}) con Y Valore P aggregato = p- value di X2=4.444 (df=1) corretto per la molteplicità dei test (2 possibili aggregazioni): P(X2>4.444)=0.035; p-value aggregato = 0.035 2 = 0.07 (< soglia specificata) La procedura si arresta perché non ci sono altri split significativi: struttura semplice può essere preferibile che il numero di foglie (segmenti) sia << n, anche a prezzo di errori nella classificazione Selezione delle variabili
CART - CRT Classification and Regression Trees Y può essere qualitativa (alberi di classificazione) o quantitativa (alberi di regressione); X qualitative o quantitative (o combinazioni lineari) Non utilizza un test statistico di associazione tra Y e X (chiquadrato), ma il concetto di impurità di un nodo obiettivo predittivo E veloce (rispetto ad altri algoritmi) Selezione delle variabili Consente il trattamento di dati mancanti (attraverso l uso delle altre variabili esplicative: surrogati ) Utilizza criteri di potatura (pruning) per trovare la dimensione ottimale dell albero Split solo binari
Eterogeneità Misura della variabilità per una variabile qualitativa Indice di Gini: Eterogeneità max: max incertezza sulla modalità di Y (tra le J possibili) per un unità estratta a a caso Modalità di Y Freq. relativa Y 1 f 1 = 1/J Y J f J = 1/J Tot. 1 Eterogeneità nulla: nessuna incertezza sulla modalità di Y (tra le J possibili) per un unità estratta a caso. Ad es., solo Y 1 è presente: Modalità di Y G = 1 1 = 0 G J = 1 = j 1 f 2 j G = 1 J(1/J 2 ) = Y 1 f 1 = 1 = 1 1/J = (J 1)/J Y J f J = 0 Tot. 1 Freq. relativa
Impurità Impurità di un nodo = eterogeneità di Y per le unità che appartengono a quel nodo Misura di impurità (eterogeneità) del nodo t: Indice di Gini J 2 jt jt j ' t j= 1 j j' imp() t = 1 f = f f dove f j t è la frequenza relativa della modalità j di Y all interno del nodo t (distribuzione condizionata) imp(t) rappresenta: varianza della var dicotomica Y nel nodo t prob. di errata classificazione (da j a j ) se l assegnazione è casuale Obiettivo: suddividere un nodo genitore in 2 nodi figli in modo tale che la riduzione di impurità sia max analogia con la scomposizione della varianza nei gruppi e fra i gruppi
Split s = split del nodo t; l = nodo figlio di sinistra; r = nodo figlio di destra Decremento di impurità associato allo split s: imp(,) s t = imp() t f imp() l f imp( r) 0 l Si sceglie lo split, tra tutte le possibili dicotomizzazioni delle variabili esplicative, per cui imp(s,t) è max La scelta dello split ottimo è iterata per ogni nodo e per ogni livello dell albero IMP(T) = impurità totale dell albero T: media ponderata delle impurità imp(t) dei nodi terminali dell albero Max imp(s,t) è equivalente a min IMP(T) r
Esempio - CRT E lo stesso albero riportato all inizio dell esempio Ora però siamo in grado di calcolare il miglioramento associato a ogni split Nodo 0: imp(0) = 1 (0.625 2 + 0.375 2 ) = 0.46875 interpretazione Nodo 1: imp(1) = 0 Nodo 2: imp(2) = 1 (0.833 2 + 0.167 2 ) = 0.2782 Miglioramento associato allo split: 0.46875 0.25 0 0.75 0.2782 = 0.26 Etc. (imp(t) nei passi dopo tiene conto anche dei nodi terminali: 0.26+0.083+0.125 = imp(0)) Albero max: foglie omogenee 4 segmenti per n=8 clienti
Esempio - Classificazione Assegnazione dei nodi terminali: classe con frequenza max (v. regola di classificazione) La stima della probabilità di errore è 0: foglie omogenee come si può ottenere una stima più affidabile dell errore di generalizzazione? Dati diversi per adattamento e previsione Riduzione della complessità dell albero Criteri soggettivi (numero di livelli, numero di unità per nodo ) Potatura (pruning) Spesso i due criteri sono applicati simultaneamente
Esempio - Classificazione Suddivisione del data set in: Training set + Test set In realtà sarebbe necessaria una suddivisione in 3 insiemi: Training set: per l addestramento Validation set: per la riduzione della complessità dell albero (pruning) Test set: per la stima (indipendente) del tasso di errata classificazione La suddivisione del data set è casuale Però tale suddivsione è costosa (in termini di informazione): si può ottenere una stima meno ottimistica anche utilizzando solo il training set cross-validation Cross-validation: il test set è costituito da 1 unità (o da poche unità) che viene esclusa a turno dal training set la stima finale del tasso di errata classificazione è una media di quelle via via ottenute variando il test set V-fold CV: il training set è suddiviso (casualmente) in V>2 sottocampioni di numerosità n(1-1/v): CV n-fold CV
CART - Pruning Necessità di ridurre la complessità dell albero Soglie per il decremento di impurità imp(s,t) e/o per la dimensione dei nodi terminali arresto (soggettivo) della crescita; rinunciare a uno split poco efficace potrebbe precludere split importanti ai passi successivi; ci sono però elementi pratici che possono guidare nella scelta delle soglie Si può anche tenere conto del tasso di errata classificazione: potatura dell albero (pruning) L obiettivo è quello di sfrondare l albero dai rami secondari: 1. Si costruisce l albero di dimensione massima (T max ): tutte le foglie sono omogenee rispetto a Y o sono formate da 1 unità 2. Partendo da T max, si selezionano sottoalberi e si stima una funzione di perdita (errori di class.) per ciascuno di essi 3. Si sceglie il sottoalbero che fornisce la performance migliore Il punto 2 è quello cruciale
CART Pruning 2 Funzione di perdita costo-complessità per il sottoalbero T T max : R α (T) = R(T) + α T dove R(T) è la stima campionaria (per risostituzione) del tasso di errata classificazione, T è il numero di foglie (dimensione) di T e α 0 è un parametro che governa la complessità dell albero (penalizza alberi con T elevato) Se α=0, T α = T max ; se α, T α = Radice = {t 1 } Per α fissato si sceglie T α : R α (T α ) = min
CART Pruning 3 Di solito l albero ottimo non è ottenuto considerando tutti i possibili sottoalberi (troppo complesso): si implementa una procedura selettiva in cui si aumenta gradualmente α nella funzione costocomplessità si parte da α=0 (T max ); poi si trova α 1 >0 tale per cui la perdita associata a un sotto-albero (con un numero di nodi inferiore rispetto a T max ) è minore di quella di T max ; poi si trova α 2 >α 1 che semplifica il sotto-albero precedente; ecc. Ciò equivale ad aggregare in sequenza i nodi che producono il più piccolo incremento di R(T), fino a giungere a T = Radice Si ottiene quindi una sequenza ottimale (finita) di sottoalberi T max {t 1 }, con T decrescente Il sottoalbero migliore nella sequenza ottimale è quello che min tasso di errata classificazione sul Validation/Test set oppure nella V-fold CV (v. libro) Un ulteriore semplificazione si ottiene considerando la variabilità campionaria della stima del tasso di errata classificazione regola k volte lo SE: sottoalbero più semplice con tasso di errore tasso min di errore + k SE (di solito k=1 oppure k=2)
Esempio di marketing (v. libro) Obiettivo: segmentare i clienti di un insegna in base alla propensione agli acquisti in promo in una categoria (latte) Y qualitativa 3 classi di propensione: Alta: (spesa promo latte)/(spesa tot latte) > 75 percentile Media: 0 < (spesa promo latte)/(spesa tot latte) < 75 percentile Bassa: (spesa promo latte)/(spesa tot latte) = 0 8 variabili esplicative quantitative tratte dal data base dell insegna (p. 562) spesa PL; spesa PP; spesa per particolari tipologie di latte 1 variabile esplicativa nominale: PDV prevalente Altre possibili variabili esplicative (qui non considerate): marche, tipo di promo, caratteristiche socio-demografiche n > 9000 clienti (non occasionali: almeno 5 visite con acquisti nella categoria) presenti nel data base fidelity e per i quali Y è nota classificazione supervisionata Finalità di marketing: la segmentazione ottenuta potrà essere utilizzata per prevedere il comportamento di nuovi clienti oppure quello futuro dei clienti in essere (ad esempio, a seguito di azioni sulle variabili esplicative)
Esempio - opzioni Training sample: campione casuale di numerosità 0.8n 7200 clienti Nota: SPSS non calcola V-fold CV quando è selezionato il pruning quale inconveniente della suddivisione training-test?
Esempio - opzioni Pruning dell albero: criterio che rafforza la propensione verso strutture semplici rilevanza aziendale e accessibilità dei segmenti La semplicità aumenta con il criterio 2 volte SE Le altre opzioni sono quelle standard di SPSS
Esempio - training Commento split: v. libro 3 variabili di segmentazione: X6 = quota UHT normale X9 = PDV X1 = quota PP 6 nodi terminali 6 segmenti Caratteristiche dei segmenti nodo 9: clienti con alta propensione promo
Esempio - test V. libro per albero test sample di circa 1900 clienti si applicano le regole di classificazione ottenute sul training sample Ciò che cambia è la stima del tasso di errore Si può salvare l output della procedura: nodo finale e classe stimata di appartenenza
Esempio - conclusioni Un aspetto negativo della procedura è la casualità insita nella suddivisione Training + Test Si può ripetere la suddivisione più volte e verificare la stabilità dei risultati o scegliere la segmentazione più utile/interessante La replicazione casuale è alla base di alcune estensioni di CART: Bagging e Random Forests Tali estensioni migliorano anche l altro aspetto negativo degli alberi: elevata variabilità a seguito di modificazioni degli input Vantaggi importanti in pratica: selezione delle variabili e applicabilità della regola di classificazione Se Y fosse quantitativa: alberi di regressione (v. Libro)
Vantaggi degli alberi di classificazione (sintesi) L algoritmo di segmentazione è di tipo sequenziale (ricorsivo) veloce (per un computer) e in grado di gestire data set di grandi dimensioni: utile nelle applicazioni di data mining Nasce come metodo di segmentazione e di previsione: sono un obiettivo centrale, non un sottoprodotto del modello (a differenza della regressione) semplicità d uso per l utente e facilità di interpretazione dei risultati a fini di marketing: regole decisionali Non utilizzando un modello, c è meno dipendenza da ipotesi sulla forma di distribuzione delle variabili Il metodo è facilmente applicabile anche con variabili esplicative rilevate su scale differenti (variabili quantitative, ordinali e nominali) L algoritmo produce automaticamente anche una regola di selezione delle variabili (che nella regressione può essere problematica)
Svantaggi degli alberi di classificazione (sintesi) L algoritmo di segmentazione è di tipo sequenziale (ricorsivo) le scelte effettuate ad un passo influenzano anche quelle nei passi successivi: non è possibile recuperare dopo una scelta non ottimale ad un certo passo ad esempio, regole talvolta non coerenti Notevole variabilità/instabilità dei risultati In pratica, spesso miglioramento modesto rispetto alla regressione (logistica) in termini di accuratezza della classificazione Performance migliori si possono ottenere con ulteriori estensioni degli alberi di classificazione, che però sono più complesse e più difficili da implementare: random forests
Esercitazione Propensione promo Utilizzare il file: Dati_Esercitazione.sav Obiettivi: Classificare ciascun cliente come propenso / non propenso ad acquistare in promo Variabile dipendente (Y): acquista / non acquista in promo Selezione delle variabili esplicative Interpretazione delle regole di classificazione ottenute e loro impiego per azioni di marketing: segmentazione di nuovi clienti; previsione del comportamento futuro dei clienti analizzati Y dicotomica: differenti soglie Metodologie: Analisi preliminari; creazione di nuove variabili (per classi) CRT / CHAID Opzioni per la semplificazione dell albero finale Stima dell errore di classificazione: v. test set aggiuntivo (Test_Esrcitazione_alberi.sav) Interpretazione e rilevanza di marketing dei risultati
Esercitazione Filtraggio spam Utilizzare il file: Esercitazione2.zip Obiettivi (v. file di documentazione): Classificare ciascun messaggio come spam / non spam Utilizzare la regola di classificazione per costruire un filtro anti-spam; previsione delle caratteristiche dei messaggi in arrivo Metodologie: Analisi preliminari; trasformazioni dei dati; creazione di nuove variabili (per classi) CRT / CHAID Opzioni per la semplificazione dell albero finale Stima dell errore di classificazione Interpretazione dei risultati e applicazione pratica della classificazione: diversa rilevanza dei due tipi di errore