Regolarizzazione e incremento nella modellazione predittiva

Molti utenti di Tableau potrebbero non utilizzare la modellazione predittiva, né tanto meno cercare modi per migliorare l’adattamento e la qualità delle previsioni di un modello predittivo. Questo articolo è destinato agli utenti avanzati interessati a questo settore della data science.

Oltre agli argomenti predefiniti, come l’espressione di destinazione (la misura da prevedere) e l’espressione del predittore (la misura e/o le dimensioni utilizzate per formulare la previsione), puoi aggiungere altri due argomenti per ottimizzare le previsioni: lambda, un parametro di regolarizzazione, e l’incremento. Questo comporta l’aggiunta dei nuovi argomenti alla sintassi del calcolo.

Quali modelli funzionano con la regolarizzazione e l’incremento?

Le funzioni di modellazione predittiva in Tableau supportano tre modelli: la regressione lineare (anche denominata regressione ordinaria dei minimi quadrati, o OLS), la regressione lineare regolarizzata (o regressione ridge) e la regressione con processo gaussiano. Se utilizzi la regressione lineare o ridge, l’incremento consente di aumentare la capacità dei modelli di individuare schemi non lineari. Se utilizzi la regressione ridge, il parametro di regolarizzazione è uno scalare che puoi utilizzare per impostare l’effetto di regolarizzazione sul modello.

La regolarizzazione e l’incremento non sono applicabili alla regressione con processo gaussiano.

Prima di descrivere più approfonditamente la regolarizzazione e l’incremento, esaminiamo questi due modelli:

La regressione lineare è ideale quando vi sono uno o più predittori che hanno una relazione lineare tra la previsione e la destinazione di previsione, non sono influenzati dalle stesse condizioni sottostanti e non rappresentano due istanze degli stessi dati (ad esempio, vendite espresse sia in dollari che in euro).

La regressione lineare regolarizzata viene utilizzata per aumentare la stabilità, ridurre l’impatto della collinearità e migliorare l’efficienza computazionale e la generalizzazione. In Tableau viene utilizzata la regolarizzazione L2. Per maggiori informazioni sulla regolarizzazione L2, consulta questa lezione sulla regressione ridge.

Che cos’è la regolarizzazione?

La regressione ridge è un tipo specifico di regressione lineare regolarizzata. La regolarizzazione impone una penalità per la dimensione dei coefficienti del modello. L’intensità della regolarizzazione è controllata da lambda, uno scalare utilizzato per ottimizzare l’impatto complessivo della regolarizzazione. Maggiore è il valore, maggiore è la penalità (ovvero, maggiore è la regolarizzazione).

La regressione ridge risolve alcuni dei problemi della regressione lineare:

  • Rimuove le problematiche introdotte dalla multicollinearità tra i predittori.

  • Se il problema dei minimi quadrati è condizionato male, ad esempio se il numero di punti dati è inferiore al numero di funzionalità, lambda selezionerà una soluzione univoca.

  • Fornisce un modo per migliorare la generalizzazione del modello lineare.

Per impostazione predefinita, la regressione ridge in Tableau ha lambda=0.5perché questo valore funziona bene in molti casi. Per modificare il valore lambda, è sufficiente modificare il calcolo tabella (vedi gli esempi riportati di seguito).

Che cos’è l’incremento?

L’incremento in MODEL_QUANTILE e MODEL_PERCENTILE è un semplice esempio di incremento dei dati: i predittori sono espansi in polinomi di ordine superiore. In Tableau sono disponibili due tipi di incrementi polinomiali integrati nelle funzioni di modellazione predittiva.

  • Per le dimensioni ordinate, i polinomi di Legendre fino all’ordine 3 consentono al modello lineare di individuare relazioni quadratiche e cubiche tra il predittore incrementato e la risposta.

  • Per le misure, i polinomi di Hermite di 2° grado consentono al modello lineare di individuare relazioni quadratiche tra il predittore incrementato e la risposta.

Nella regressione lineare, solo le dimensioni ordinate vengono incrementate per impostazione predefinita con augmentation=on. Nella regressione ridge dove model=rl, solo le misure vengono incrementate per impostazione predefinita. Per ignorare l’impostazione e disabilitare l’incremento per ogni predittore nel calcolo, utilizza augmentation=off. Non verranno aggiunti polinomi di ordine superiore.

Disattivare gli incrementi è vantaggioso quando l’insieme di dati è molto piccolo perché gli incrementi potrebbero causare l’overfitting di qualsiasi rumore presente nei dati originali e anche perché la relazione risultante è più semplice e intuitiva.

Nota: l’incremento viene attivato/disattivato per ogni predittore (ovvero all’interno dell’argomento predittore del calcolo). Lambda (e il modello) vengono applicati al livello superiore (al di fuori di qualsiasi espressione predittore).

Configurazione di lambda e dell’incremento nel calcolo

Ora che conosci il parametro di regolarizzazione (o lambda) e l’incremento dei dati, esaminiamoli nel contesto di un calcolo di previsione:

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

Di seguito è riportata una tabella che riepiloga rapidamente se la modifica dell’incremento e di lambda rispetto all’impostazione predefinita influisce sui modelli lineari:

 IncrementoLambda
Regressione ridge
Regressione lineareNon applicabile

Considerazioni relative alla regolarizzazione e all’incremento

  • Se disponi del modello errato per i dati, è probabile che la modifica del parametro di regolarizzazione o dell’incremento non produca risultati significativamente migliori. Valuta se i tipi di dati sono corretti (confronto tra misure e dimensioni). Se i dati sottostanti sono una serie temporale, ad esempio, valuta l’utilizzo della regressione con processo gaussiano, modificando il modello nel calcolo tabella con model=gp.

  • Poiché la regressione OLS non è regolarizzata, non esiste alcun valore lambda che possa essere modificato.

  • Se l’insieme di dati è estremamente piccolo e disponi di dimensioni (in particolare dimensioni con cardinalità elevata), valuta l’utilizzo della regressione ridge aggiungendo model=rl al calcolo tabella.

  • A parità di condizioni (per lo stesso insieme di dati e con l’incremento attivato o disattivato), un valore lambda basso può migliorare l’adattamento, ma danneggiare la generalizzazione (overfitting).

  • Al contrario, un valore lambda elevato può spingere l’adattamento verso un modello costante, senza alcuna dipendenza dai predittori. Ciò ridurrà la capacità del modello (underfitting).

Esempio 1

Questo esempio mostra la relazione tra colesterolo medio e malattie cardiache negli uomini e nelle donne, dove gli uomini sono rappresentati da indicatori quadrati e le donne sono rappresentate da cerchi.

Nella prima visualizzazione gli indicatori blu mostrano la destinazione di previsione e gli indicatori arancioni sono i valori modellati. Puoi vedere che è presente un notevole rumore nei dati e che con l’incremento attivato e un valore lambda piccolo di 0,01 osserviamo tassi irrealistici di malattie cardiache superiori a 1. C’è una dipendenza troppo ripida, probabilmente a causa di tutti gli outlier nei dati rumorosi.

Malattie cardiache per sesso con destinazione di previsione e un modello poco adatto

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Destinazione]), ATTR([Sesso]), "augmentation=on", AVG([Colesterolo]))

Nella visualizzazione successiva confrontiamo la destinazione di previsione con un modello diverso, con l’incremento disattivato e un valore lambda pari a 10. Puoi notare che questo modello è più realistico e nessun indicatore supera un tasso di malattia di 1.

Malattie cardiache per sesso con destinazione di previsione e un modello migliore

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Destinazione]), ATTR([Sesso]), "augmentation=off", AVG([Colesterolo]))

Esempio 2

Quindi, diamo un’occhiata a un altro esempio reale utilizzando i dati del sistema di bike sharing Bluebikes (in precedenza Hubway) di Boston. In questo caso, la regressione lineare funziona bene. Confronta le visualizzazioni seguenti, aggregate in base ai trimestri del 2017:

Grafico dei dati di Hubway senza overfitting

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Durata.Percorso]), AVG([Temperatura]))

Grafico dei dati di Hubway senza overfitting

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Velocità]), AVG([Temperatura]))

Nessuno dei due è incline all’overfitting, quindi la dipendenza da lambda è debole per un valore lambda piccolo.

Ora osserva quest’ultima visualizzazione:

Grafico dei dati di Hubway senza overfitting

MODEL_QUANTILE('model=rl, lambda=2', 0.5, sum([Durata.Percorso]), AVG([Temperatura]))

Puoi notare che con l’aumentare di lambda, l’adattamento si appiattisce fino a non avere alcuna pendenza (ovvero diventa sovra-regolarizzato o con "underfitting").

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!