08. Parameter Fitting

Slide PDF

Indice


Idea di Base

Parameter Fitting

Definizione

Il parameter fitting e il problema di trovare i valori dei parametri di una funzione matematica parametrica in modo che la funzione rappresenti al meglio un insieme di dati osservati.

In pratica: abbiamo punti misurati e un modello gia scelto. Non stiamo ancora decidendo quale forma abbia il modello, ma quali numeri inserire nei suoi parametri per farlo aderire ai dati.

Esempio: se vogliamo descrivere una nuvola di punti con una retta y = theta0 + theta1 x, il fitting consiste nel trovare intercetta theta0 e pendenza theta1 migliori.

Il tema compare con nomi diversi:

  • parameter estimation: enfasi statistica sulla stima dei parametri;
  • parameter fitting: enfasi pratica sull’adattamento ai dati;
  • curve fitting: caso in cui si adatta una curva;
  • regression analysis: formulazione statistica e predittiva collegata.

Collegamenti utili: modelli statistici predittivi, machine learning predittivo, statistica inferenziale.

Fitting come Problema di Ottimizzazione

Definizione

Il fitting puo essere formulato come un problema di ottimizzazione: minimizzare una funzione di errore che misura la distanza tra valori osservati e valori predetti dal modello.

Dato un modello f(x; theta), dove theta e il vettore dei parametri, cerchiamo:

theta* = argmin_theta Loss(y, f(x; theta))

In pratica: proviamo diversi valori dei parametri e scegliamo quelli che producono l’errore piu basso. La funzione di errore trasforma la qualita del modello in un numero: piu e basso, meglio il modello fitta i dati.

Note

In Operational Analytics questo schema e centrale: molti problemi di previsione, regressione e taratura di modelli sono riconducibili a “scegliere parametri che minimizzano un costo”.


Funzioni di Errore

Metriche Principali

Definizione

Una funzione di errore misura quanto le previsioni del modello differiscono dai dati osservati.

Indichiamo con y_i il valore reale e con f_i il valore predetto. Le metriche piu comuni sono:

MetricaIdeaQuando e utile
BIAS / MEmedia degli errori f_i - y_icapire se il modello sovrastima o sottostima sistematicamente
MAD / MAEmedia degli errori assolutirobusta e interpretabile nella scala originale
MSEmedia degli errori quadraticipenalizza molto gli errori grandi
RMSE / Standard Errorradice del MSEcome MSE, ma nella scala della variabile target
MAPEerrore percentuale medio assolutoconfrontare errori su scale diverse, se i valori reali non sono vicini a zero

Esempio

Se prevediamo domanda giornaliera e sbagliamo di +10, -5, +15, il BIAS segnala se in media siamo troppo alti o troppo bassi. MAE dice di quanto sbagliamo mediamente. MSE/RMSE rendono piu pesanti gli errori grandi, quindi sono severi quando un picco non viene previsto.

Scelta della Metrica

Attenzione

La metrica scelta cambia il modello considerato “migliore”. Non e un dettaglio tecnico: esprime quale tipo di errore vogliamo penalizzare.

Scelte pratiche:

  • usa MAE se vuoi interpretabilita e minore sensibilita agli outlier;
  • usa MSE/RMSE se errori grandi sono particolarmente costosi;
  • usa MAPE se ti interessa l’errore relativo, ma evita casi con y_i vicino a zero;
  • controlla BIAS per capire se il modello ha una direzione di errore sistematica.

Collegamento: la valutazione delle prestazioni si aggancia ai concetti di statistica descrittiva e predictive analytics.


Least Squares e Regressione Lineare

Modello Lineare

Definizione

La regressione lineare cerca una combinazione lineare delle variabili di input che approssimi il valore target.

Forma generale:

y = theta0 + theta1 x1 + ... + thetan xn

Nel caso a una sola variabile:

y = theta0 + theta1 x

In pratica: theta0 sposta la retta verso l’alto o il basso, theta1 ne determina l’inclinazione. Il fitting sceglie questi coefficienti per far passare la retta il piu vicino possibile ai punti.

Soluzione Analitica e Gradient Descent

Definizione

Il metodo dei minimi quadrati trova i parametri che minimizzano la somma o media degli errori quadratici.

Per una retta, l’errore tipico e:

Loss(theta0, theta1) = sum_i ((theta0 + theta1 x_i) - y_i)^2

In alcuni casi semplici, come la regressione lineare 1D, esistono formule analitiche per theta0 e theta1. Quando pero i dati o il modello crescono di complessita, si preferisce una soluzione iterativa.

Note

La soluzione analitica e precisa e veloce per problemi piccoli o ben strutturati. Il gradient descent e piu generale: non richiede una formula chiusa, ma dipende da learning rate, inizializzazione e numero di iterazioni.


Gradient Descent

Derivate, Jacobiano e Hessiano

Definizione

Il gradient descent e un algoritmo iterativo di primo ordine che cerca un minimo locale muovendosi nella direzione opposta al gradiente della funzione di costo.

Regola base:

x_{t+1} = x_t - lambda * grad f(x_t)

Termini matematici utili:

  • la derivata prima indica la pendenza locale di una funzione;
  • il gradiente generalizza la derivata a piu variabili e indica la direzione di massima crescita;
  • il Jacobiano raccoglie derivate parziali di primo ordine di funzioni vettoriali;
  • l’Hessiano raccoglie derivate parziali di secondo ordine e descrive la curvatura locale.

In pratica: il gradiente dice in che direzione l’errore aumenta di piu. Per minimizzare, ci muoviamo nella direzione opposta.

Learning Rate

Definizione

Il learning rate lambda controlla la lunghezza del passo compiuto a ogni iterazione del gradient descent.

Punto critico

Se lambda e troppo piccolo, la convergenza e lenta. Se e troppo grande, l’algoritmo puo oscillare o divergere.

Esempio intuitivo: scendere da una collina al buio. Passi minuscoli sono sicuri ma lenti; passi troppo lunghi rischiano di superare la valle e risalire dall’altra parte.

Nel fitting lineare, il gradient descent aggiorna direttamente i parametri theta:

theta = theta - learning_rate * grad Loss(theta)

Fitting Non Lineare

Regressione Gaussiana

Definizione

La regressione gaussiana adatta ai dati una funzione con forma a campana, controllata da parametri come ampiezza, centro e dispersione.

Una forma comune e:

g(x; A, mu, sigma) = A * exp(-((x - mu)^2) / (2 sigma^2))

Dove:

  • A controlla l’altezza della curva;
  • mu controlla la posizione del picco;
  • sigma controlla la larghezza della campana.

In pratica: se i dati hanno un picco centrale e valori piu bassi ai lati, una gaussiana puo essere una buona funzione di mapping. Il fitting cerca A, mu e sigma che minimizzano l’errore tra curva e punti.

Esempio

Se osserviamo tempi di arrivo concentrati attorno a un orario medio, una gaussiana puo modellare la distribuzione: mu e l’orario tipico, sigma indica quanto gli arrivi sono dispersi, A scala l’intensita del fenomeno.

Curve Fit in SciPy

Definizione

curve_fit() di SciPy esegue curve fitting tramite nonlinear least squares, stimando i parametri ottimali di una funzione definita dall’utente.

Schema pratico:

popt, covar = curve_fit(objective, x_values, y_values)
yfit = objective(x_values, *popt)

popt contiene i parametri stimati. covar contiene una matrice di covarianza, utile per valutare l’incertezza delle stime.

Tip

Per funzioni non lineari, l’inizializzazione dei parametri puo influenzare molto il risultato. Un buon p0 spesso evita convergenze lente o soluzioni locali poco sensate.


Ricerca di Parametri e Iperparametri

Grid Search e Campionamento

Definizione

La grid search prova sistematicamente tutte le combinazioni di valori definiti su una griglia di parametri.

Esempio ARIMA:

for p in [0..3]
  for d in [0..2]
    for q in [0..2]
      valuta ARIMA(p,d,q)

In pratica: e semplice e robusta per pochi parametri discreti, ma esplode combinatoriamente quando aumentano dimensioni e valori possibili.

Per parametri continui si puo campionare casualmente nell’intervallo. Il problema e che in spazi multidimensionali il campionamento uniforme casuale puo lasciare zone vuote e sovracampionare altre zone.

Note

Metodi a bassa discrepanza come Hammersley, Sobol e Halton cercano di distribuire i punti in modo piu uniforme nello spazio dei parametri.

Nelder-Mead

Definizione

Nelder-Mead e un metodo di ottimizzazione derivative-free che usa un simplesso di n + 1 punti in uno spazio a n dimensioni.

Non richiede derivate: valuta la funzione obiettivo in punti diversi e modifica il simplesso con operazioni di:

  • reflection: prova un punto riflesso rispetto al peggiore;
  • expansion: se il riflesso e molto buono, prova ad andare oltre;
  • contraction: se il riflesso non aiuta, restringe la ricerca;
  • shrink: se tutto fallisce, riduce il simplesso attorno al punto migliore.

Limite

Nelder-Mead e semplice e spesso efficace, ma non ha garanzie generali di convergenza. Puo richiedere molti passi o restart se il simplesso collassa male.

Particle Swarm Optimization

Definizione

La Particle Swarm Optimization (PSO) e un metodo di ottimizzazione ispirato al comportamento collettivo di stormi e branchi, utile in spazi continui multidimensionali.

Ogni particella rappresenta una possibile soluzione e ha:

  • una posizione nello spazio dei parametri;
  • una velocita di movimento;
  • una memoria del proprio miglior punto trovato, detto pbest;
  • informazioni sul miglior punto globale gbest o locale lbest.

L’idea e combinare esplorazione individuale e informazione sociale:

velocita nuova = inerzia + attrazione verso pbest + attrazione verso gbest/lbest
posizione nuova = posizione corrente + velocita nuova

Esempio

Immagina molte squadre che cercano il punto piu basso di un paesaggio. Ogni squadra ricorda il proprio miglior punto e ascolta le altre: se una zona sembra promettente, piu squadre si orientano verso quella regione.

Parametri importanti:

  • numero di particelle, spesso tra 10 e 50;
  • peso dell’inerzia, che controlla quanto si mantiene la direzione precedente;
  • C1, importanza del miglior risultato personale;
  • C2, importanza del miglior risultato globale o locale;
  • velocita massima, per evitare movimenti troppo lenti o instabili.

Optuna

Definizione

Optuna e un framework per l’ottimizzazione automatica di iperparametri, trattata come problema black-box.

Elementi principali:

  • una Study rappresenta il processo di ottimizzazione;
  • un Trial rappresenta una singola configurazione testata;
  • lo spazio di ricerca si definisce dentro la funzione obiettivo con suggest_float, suggest_int, suggest_categorical;
  • la strategia di default, spesso TPE, sceglie nuove configurazioni usando i risultati precedenti;
  • il pruning interrompe prove poco promettenti.

Schema minimo:

def objective(trial):
    x = trial.suggest_float("x", -10, 10)
    return x**2
 
study = optuna.create_study(direction="minimize")
study.optimize(objective, n_trials=100)

Tip

Optuna e particolarmente utile quando addestrare un modello e costoso: invece di provare una griglia cieca, concentra le prove sulle regioni dello spazio che sembrano promettenti.

Collegamento: l’ottimizzazione degli iperparametri completa il ciclo visto in preprocessing, modelli neurali e modelli ML.


Prossimi Argomenti

Continueremo con: