Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
ASE.
→metodo simile ad EPE visto all’inizio. In questo caso minimizzo ASE crossvalidato (per evitare
overfitting)
Post-pruning Cart in R = Regularization/shrinkage 31
Federico Clerici
Si inserisce un parametro di complessità che penalizza gli errori per gli alberi grandi. Viene
moltiplicato per il n° di split e sommato alla loss function. È usato per controllare la
dimensione del decision tree e selezionare la dimensione ottimale dell’albero, basandosi sulla
cross-validation.
Il parametro di complessità è chiamato alpha o cp (in R).
Regularization tree (caso regressione, target quantitativo)
Obiettivo: trovare un albero con |T| gruppi finali per cui il valore della loss function
crossvalidata sia il più piccolo possibile. +∝ ||
Per la classificazione la Loss Function per il pruning è:
Regola: si fa pruning dove xerror (cross validation error) è minimo o la somma di xerror+xstd
è minima (guardo slides per capire bene, difficile da spiegare a parole)
→dopo tale numero di split |T| il valore di xerror comincia ad aumentare, causando
overfitting. Se xerror>rel_error (errore nel training) allora abbiamo overfitting.
Per indicare a che split fermarsi passiamo a Caret il parametro di complessità CP
One std error rule (rpart default)
Ci consente di trovare il miglior parametro di complessità e quindi il numero di nodi a cui
prunare
1) Cerco il CP con xerror minimo
2) Aggiungo xstd a xerror ed ottengo c*
3) Cerchiamo nella tabella se c’è un valore di CP con associato un xerror<c*
4) Se c’è, esso sarà il miglior parametro di complessità, altrimenti rimaniamo al CP trovato
allo step 1)
→ rpart tuna con l’errore crossvalidato come metrica di default. Se passiamo il cp disegna solo
albero
Importanza delle variabili negli alberi
Per importanza delle variabili in un albero di classificazione/regressione si intende l’incidenza
di esse nella classificazione (non quante volte discriminano tra i vari nodi!!!).
→
Solo variabili che discriminano hanno importanza>0 devono entrare nell’albero
• ∑
() = Δ(, )
Variable importance: ∈
È la riduzione dell’indici di Gini che la variabile porta in tutti gli split
→se una variabile ha elevata capacità discriminatoria ed entra più volte nell’albero,
allora risulterà più importante
• () = ()/( )
Relative importance: max
→misura l’importanza di una variabile rispetto alla variabile più importante
Per decidere quali variabili tenere si decide un valore di cutoff, per cui teniamo in analisi le
variabili con importanza superiore ad esso.
Se abbiamo eventi rari, l’albero non riuscirà a dividere nulla, in quanto abbiamo già lo split
migliore (c’è già purezza elevata)
→bilancio il dataset, fitto l’albero e poi correggo le prior/posterior, ottenendo l’albero corretto
Preprocessing alberi decisionali
Non è richiesto, in quanto: 32
Federico Clerici
• Robusti ai dati mancanti (vengono inseriti nel nodo con maggiore numerosità)
• Non richiedono model selection (anzi, lo fanno e sono utili come input per altri
modelli)
Model selector e input surrogati
Gli alberi tendono a selezionare poche variabili, omettendone alcune che potrebbero essere
importanti allo stesso modo. Tali variabili sono dette variabili surrogate.
Possono essere considerate analoghe alle variabili collineari, che hanno lo stesso potere
esplicativo ma non vengono incluse, in quanto ce ne sono altre che lavorano al loro posto.
Nella selezione delle variabili conviene includere le variabili surrogate, in quanto potrebbero
essere predittori importanti per il target di altri modelli (soprattutto se usiamo gli alberi per
fare model selection per altri algoritmi).
Alberi come pre-processing per i modelli lineari
Spesso gli alberi decisionali (a partecipazione binaria) vengono utilizzati come step intermedio
in modelli lineari/logistici sfruttando la loro capacità di dicotomizzare le covariate per avere
una maggiore capacità esplicativa (analogo a trasformazione con optimal grouping)
→alberi trovano un cutoff per variabili continue e le dicotomizzano
Vantaggi segmentazione binaria
• Facile leggibilità della regola di classificazione (anche per i non statistici)
→ interpretabile
• Funge da model selection (seleziona le variabili maggiormente discriminanti, con
criteri di selezione non parametrici)
• Non sono sensibili alle differenze di scala degli input, e neppure alle distribuzioni
asimmetriche (no preprocessing richiesto)
• È robusto ai dati mancanti
• Fornisce un modo di dicotomizzare gli input continui (o aggrega in due classi quelli
categorici) per essere utilizzati in modelli parametrici successivi
→ analogo a trasformazione con optimal grouping
• →
Molto veloci nella fase di training e validation hanno memoria, i risultati dal training
vengono tenuti in memoria per il validation
Svantaggi segmentazione binaria
• Instabilità: un piccolo cambiamento nei dati può generare serie di split diversi, con
annessa variazione di decision boundaries e performance
→ i classificatori generati hanno una varianza molto elevata e quindi risultano instabili
• Possibilità di cadere in regole di classificazione semplicistiche
Risoluzione instabilità alberi: Perturb and Combine
Sono metodi messi a punto per sfruttare l’instabilità degli alberi e creare modelli più “potenti”.
Si basano su:
1. Modificare la distribuzione dei dati
2. Modificare il metodo di costruzione dei risultati
Di seguito citiamo alcuni metodi di perturbazione:
- Resample
- Subsample 33
Federico Clerici →
- Add noise più l’albero si allena con rumore e più si abitua a generalizzare su nuovi
dati
- Adaptively reweight
- Randomly choose from the competitor splits
Ensemble methods
Gli insiemi di alberi si sono dimostrati più adeguati a effettuare previsioni rispetto agli alberi
singoli. Inoltre, la loro variabilità risulta essere molto inferiore.
La classificazione finale di un insieme di alberi è fatta mediante la media delle classificazioni
→
dei singoli alberi uso il metodo del maggior pivot (% più elevata sarà la classificazione
finale).
Ci sono tre modalità per combinare i modelli:
1) Modelli combinati: si calcola la media delle stime basate sui valori previsti da un
numero M di modelli predittivi diversi fittati sullo stesso dataset di training.
→
Un’alternativa è il metodo Stacking modelli diversi e stesso dataset
2) Bagging and boosting models: si combinano i valori previsti con lo stesso modello
predittivo basato su dataset di training differenti selezionati dallo stesso dataset
→
(resampling, tipo Bootstrap) modello fisso e cambio dataset
3) Bagging and boosting model con alcune differenze (Random Forest)
1) Modelli combinati
L’idea è quella di fare la media delle previsioni dei diversi modelli sullo stesso dataset
→ ottengo un indice riassuntivo, pertanto la varianza diminuisce sicuramente, oltre ad
ottenere una migliore performance classificativa.
• Target continuo: uso media delle previsioni prodotte dagli M modelli
• Target categorico: uso maggiore pivot (valore del target più frequente in %)
Aspetto migliorabile: la media è un indice riassuntivo troppo semplificativo, sarebbe meglio
procedere in un modo diverso (tba)
Come migliora l’accuracy?
Se la varianza diminuisce significa che l’errore di previsione diminuirà, in quanto è difficile che
un elevato numero di modelli sbagli a prevedere (guarda slide 8 advanced trees)
Modellazione stratificata
È una tecnica di modellazione che consiste nel creare modelli separati in base a covariate che
hanno un forte potere predittivo, in modo da ottenere un albero ancora più puro.
Es. creo un modello per sex=male e per sex=female
o Pro: se la varianza spiegata è una componente importante della varianza del target (?)
o Contro: se non ci sono sufficienti osservazioni in alcuni strati il modello sarà meno
potente, con stime instabili e pessima generalizzazione
Stacking (metodo alternativo a modelli combinati)
Consiste nell’allenamento di diversi algoritmi sui dati disponibili, dopodiché le previsioni sono
combinate mediante un algoritmo “meta-classifier”, che viene tunato per effettuare la
34
Federico Clerici
previsione finale. Le previsioni p degli altri modelli sono quindi gli input del nuovo meta-
i
algoritmo. Viene utilizzata la regressione logistica come meta-algoritmo.
Steps:
1) I dati di training sono separati in A e B (50%-50%). Si fittano K modelli sui dati A
2) Si calcolano le previsioni su B (p ) con i K modelli fittati prima
iB
3) Si fitta il meta-modello usando le previsioni p come input e y come target sul dataset
iB
B
4) Previsioni con il meta-modello su dati di validation
→comparare metriche di validation calcolate agli step 2 e 3
5) Applicare il meta-classificatore sul dataset di score usando le posterior ottenute sui
dataset di score allo step 4 per trovare le previsioni finali di y sul dataset di score
Nello step 3 avviene lo stacking, in cui si combinano i diversi modelli tramite il meta-modello
Lo stacking performa tipicamente meglio rispetto ad un singolo modello.
Ottiene risultati migliori anche rispetto ai modelli combinati con utilizzo di maggiore pivot o
media semplice per diminuire la varianza, che talvolta può risultare troppo semplificativo
2) Bagging trees
Obiettivo: ridurre la varianza degli alberi (solitamente elevata)
È il metodo di default di Caret in R.
Steps:
1) Creazione M campioni Bootstrap dal dataset a disposizione
→i dati non inclusi nei campioni bootstrap vengono utilizzati come “naturale” dataset
di validation (Out Of Bag data)
2) Fittare un albero (massima larghezza possibile, unpruned) su ogni campione creato
3) Aggregare le previsioni degli alberi e classificare con il maggior pivot (nel caso di
variabili categoriche) o media delle previsioni (nel caso di target continuo)
Parametro di tuning: numero di campioni M da creare con Boostrap (solitamente ne bastano
500)
→notiamo che i bagged trees lavorano molto bene con elevato numero di sample Bootstrap
Durante il campionamento le decision rules per le singole iterazioni potrebbero sembrare
assurde, ma nel complesso si otterrà un ottimo risultato 35
Federico Clerici
→il risultato del bagging applicato ai decision tree sar&agr