Gradient Boosting per la previsione dei dati - ALTEN Italy

Gradient Boosting per la previsione dei dati

Dal 3 al 7 giugno scorso, ALTEN ha ospitato la sua prima International Tech Week, con una serie di webinar distintivi e approfonditi sul tema: Comprendere l’impatto di AI e ML sulle nostre industrie e sulla vita quotidiana. Una sessione di spicco è stata “Gradient boosting for forecasting data”, tenuta da Gian Paolo Bernardini, Software Engineer di ALTEN Italia.

Ben addentrato nel mondo del Machine Learning e dotato di 14 anni di esperienza nello sviluppo di software, Gian Paolo esplora i due principali elementi costitutivi del Gradient Boosting Regressor, ovvero gli alberi di regressione e il modello additivo. Approfondiamo le sue considerazioni sull’apprendimento predittivo e sulla modellazione.

Breve introduzione al Machine Learning

Esistono due tipi principali di apprendimento: supervisionato e non supervisionato. La differenza principale è che l’apprendimento supervisionato utilizza dati di addestramento con risultati corrispondenti, mentre quello non supervisionato usa dati senza risultati.

Nell’apprendimento supervisionato, il modello apprende le relazioni tra l’input e l’output, mentre nell’apprendimento non supervisionato il modello cerca di catturare le correlazioni all’interno del set di dati.

ESEMPI

Supervisionati:

  • Regressione: prevedere i risultati di dati in continua evoluzione e scoprire le tendenze.
  • Classificazione: previsione dei dati in ingresso come parte di una classe.

Non supervisionati:

  • Clustering: raggruppare i punti di dati con proprietà simili.
  • Associazione: comprensione del modo in cui le variabili sono correlate l’una all’altra.

Nota: il “semi-supervisionato” è un altro tipo di apprendimento, ma riguarda solo argomenti specifici, ad esempio i grafici.

1. Cosa sono i Regression Trees?

Gli alberi di regressione sono elementi decisionali in grado di eseguire operazioni di regressione. Il processo inizia dividendo lo spazio degli input in due regioni e modellando la risposta, utilizzando la media degli output Y, in base alle variabili X in ciascuna regione.

La variabile e il punto di partizione dello spazio di input, vengono scelti con il metodo della minima somma dei residuali al quadrato. La suddivisione continua in modo ricorsivo fino all’applicazione di una regola di arresto, di solito al raggiungimento di una certa soglia.

Figura 1. Esempio di spazio di input partizionato con diversi valori medi.
Figura 2. Esempio di output prodotto con alcuni input forniti.

Per esempio, supponiamo di voler fare una previsione per una nuova istanza con una variabile di input X1 > 4 e una variabile di input X2 <= 5. Si percorre l’albero a partire dalla radice e si raggiunge il nodo foglia che predice il valore = 0,554. Questa previsione è il valore medio di Y delle 24 istanze di addestramento associate a questo nodo foglia.

2. Cos’è un modello additivo?

Sebbene sia semplice e attrattivo, il modello lineare tradizionale per la regressione spesso fallisce in situazioni in cui ci sono molte variabili. Nella vita reale, infatti, gli effetti spesso non sono lineari. Il modello additivo descrive un metodo statistico che può essere utilizzato per caratterizzare gli effetti non lineari della regressione. Nel contesto della regressione, un modello additivo generalizzato ha la forma seguente:

Il valore atteso, dato un certo numero di variabili, è una combinazione lineare di un fattore, α, più un’applicazione ripetuta di una funzione a ciascuna delle variabili. Più genericamente, una forma generalizzata dell’algoritmo di backfitting per i modelli additivi ha la seguente struttura:

Figura 4. Algoritmo di backfitting per modelli additivi.

Come illustrato, si ripeterà più volte l’applicazione della funzione su ogni variabile, per formare uno stimatore fj, che è il risultato di: l’output attuale (Yi) meno la media di tutti gli output  (α ) meno una funzione kernel fk applicata al resto delle variabili, e non la variabile effettiva considerata.

Lo stimatore fj, è il risultato del passo precedente meno la media della nostra funzione kernel applicata alla variabile effettiva considerata.

N indica il numero di record dell’insieme di addestramento.

Continueremo questo processo fino al raggiungimento di una certa soglia.

Gradient Boosting & Regression trees

Formeremo il regressore di gradient boosting combinando gli alberi di regressione e il gradient boosting (modello additivo). Il gradient boosting costruisce modelli di regressione additivi applicando un albero di regressione a pseudo-residuali utilizzando il metodo della minima somma dei residuali al quadrato, a ogni iterazione.

Gli pseudo-residuali rappresentano il gradiente della funzione di perdita, rispetto ai valori del modello in ogni punto dell’insieme di addestramento. L’introduzione della randomizzazione in questo processo (gradient boosting stocastico) migliorerà sia l’accuratezza che la velocità. Ciò comporta la selezione casuale di un sottocampione del training set per ogni iterazione, il che aumenta la robustezza e impedisce l’overfitting dello stimatore, ovvero uno stimatore troppo aderente ai dati.

In che modo ALTEN ha applicato tutto ciò?

Per un cliente del settore energetico, ALTEN ha applicato un regressore gradient boosting utilizzando una libreria ben nota nella comunità del Machine Learning, Scikit Learn, per prevedere il carico sostenuto dai trasformatori, per il giorno successivo (domani). Il modello fa parte di una soluzione aziendale scritta in C#, NodeJS e Python, suddivisa in container utilizzando Docker. La soluzione adottata in Python, addestra fino a 5 set di dati contemporaneamente e produce previsioni accurate al volo.

Figura 5. Risultati ottenuti rispetto a un set di prova.

Qui sopra, possiamo vedere un grafico che rappresenta le previsioni e i valori reali di una giornata espressi in kW, in un modello con un training set di 300.000 record, con un coefficiente di determinazione (bontà della previsione) di 0,82, il migliore è 1.

Conclusioni

Attraverso la sua forza lavoro, ALTEN continua a fornire servizi su misura per i suoi clienti, sfruttando l’arrivo di nuove tecnologie in grado di svolgere compiti impegnativi in mercati sempre più complessi e in continua evoluzione.