
Quando si inizia a studiare il machine learning e l’intelligenza artificiale ci si prefigge di costruire il miglior modello adatto alle proprie esigenze.
Ben presto ci si rende conto che però, per un motivo o per un altro, il modello inizia ad avere qualche inefficienza, e non funziona come ci si aspetta.
La realtà è che è impossibile costruire un modello perfetto: piuttosto diventa utile cercare di costruire un modello migliore.
Un modo per poter superare questo preconcetto può essere quello di confrontare tra di loro diversi modelli, al fine di poter scegliere, ed utilizzare in seguito per le proprie previsioni quello più adatto.
In questo articolo voglio mostrare tre tecniche che, tramite il loro confronto, ci possono aiutare nella selezione del modello più efficace.
In particolare vedremo l’Akaike Information Criterion (AIC), il Bayesian Information Criterion (BIC) e l’Hannan-Quinn Information Criterion (HQIC).
Akaike Information Criterion (AIC)
Secondo Wikipedia,
Il criterio informativo di Akaike (AIC) è uno stimatore dell’errore di previsione “fuori dal campione” e quindi della qualità relativa dei modelli statistici per un dato insieme di dati. Data una raccolta di modelli per i dati, l’AIC stima la qualità di ciascun modello, rispetto a ciascuno degli altri modelli. Pertanto, AIC fornisce un mezzo per la selezione del modello.
L’AIC rappresenta un punteggio numerico che può essere utilizzato per determinare quale di più modelli è più probabile che sia il modello migliore per un dato set di dati. Stima i modelli relativamente, il che significa che i punteggi AIC sono utili solo rispetto ad altri punteggi AIC per lo stesso set di dati.
Tra due modelli, un punteggio AIC inferiore è preferibile. Esso viene calcolato dalla seguente formula:
AIC = -2ln(L) + 2k
dove L rappresenta il valore massimo della funzione di verosimiglianza e k il numero di parametri.
Questo criterio utilizza la stima della massima verosimiglianza di un modello (log-verosimiglianza) come misura di adattamento. La verosimiglianza è una misura della probabilità di vedere i dati osservati dato un modello, e quello con la massima probabilità è quello che “si adatta” meglio ai dati.
Il logaritmo naturale della verosimiglianza viene utilizzato come convenienza computazionale. Per maggiori dettagli sulla funzione di massima verosimiglianza, puoi vedere questo articolo.
L’AIC viene utilizzato più frequentemente in situazioni in cui non è possibile testare facilmente le prestazioni del modello su un set di test nella pratica standard di machine learning.
Risulta particolarmente prezioso per le serie temporali, perché i dati più preziosi dell’analisi delle serie temporali sono spesso i più recenti, che sono bloccati nei set di convalida e test.
Di conseguenza, l’addestramento su tutti i dati e l’utilizzo dell’AIC può portare a una migliore selezione del modello rispetto ai tradizionali metodi.
Bayesian Information Criterion (BIC)
Il secondo metodo che vediamo è il BIC. Definito in italiano criterio di informazione bayesiano (o meglio come Bayesian Information Criterion o BIC), è un criterio per la selezione del modello tra un insieme finito di modelli.
Si basa, in parte, sulla funzione di verosimiglianza ed è strettamente correlato al criterio informativo di Akaike (AIC). Quando si adattano i modelli, è possibile aumentare la probabilità aggiungendo parametri, ma così facendo si potrebbe ottenere un adattamento eccessivo.
Il BIC risolve questo problema introducendo un termine di penalità per il numero di parametri nel modello, che risulta maggiore rispetto a quello utilizzato nell’AIC.
La formula di calcolo di questo stimatore è la seguente:
BIC = – 2ln(L) + ln(n)k
Con:
n: numero di punti dati;
L: è il valore massimo della funzione di verosimiglianza del modello;
k: è il numero di parametri liberi da essere stimati.
Questo criterio è stato ampiamente utilizzato per l’identificazione di modelli nelle serie temporali e nella regressione lineare. Tuttavia, può essere applicato abbastanza ampiamente a qualsiasi serie di modelli basati sulla massima verosimiglianza.
Hannan-Quinn Information Criterion (HQIC o HQC)
Infine vediamo l’ultimo metodo di selezione del modello: il criterio Hannan-Quinn (HQIC).
Simile ai due criteri precedenti, rappresenta una misura della bontà dell’adattamento di un modello statistico ed è spesso utilizzato per la selezione del modello tra un insieme finito di modelli. Dipende anch’esso dalla funzione di verosimiglianza, e come il BIC è correlato al criterio di informazione di Akaike.
L’HQIC introduce un termine di penalità per il numero di parametri nel modello, maggiore di un termine logaritmico rispetto al BIC.
La formula del calcolo è la seguente:
HQIC= – 2ln(L) +2 * k * ln(ln(n))
Dove:
- n è il numero di osservazioni.
- k è il numero di parametri del modello.
- L è il valore massimo della funzione di verosimiglianza del modello.
Dati due modelli stimati qualsiasi, si preferisce il modello con il valore HQIC inferiore; un HQIC inferiore implica o meno variabili esplicative, migliore adattamento o entrambi.
Anche se meno utilizzato rispetto ai due metodi precedenti, risulta essere un criterio robusto per elevati valori di n.
Esempio di selezione del modello
Vediamo ora un esempio di confronto di due modelli creati dallo stesso set di dati utilizzando le metodologie sopra esposte per capire quale dei due è migliore.
In questo esempio, useremo un problema di regressione di test fornito dalla funzione Scikit-learn make_regression(). Il problema avrà sei variabili di input e richiederà la previsione di un valore numerico di destinazione.
Per il modello consideriamo un piccolo dataset di 100 righe e una piccola percentuale di rumore (pari al 10%):
Il primo modello che creiamo è quello di regressione lineare e adattiamo tale modello ai dati.
Visualizziamo poi i coefficienti del modello creato:
Eseguiamo una previsione sul set di dati X e poi calcoliamo l’errore quadratico medio:
Otteniamo il seguente risultato:
Per calcolare l’AIC, il BIC e l’HQIC ci serve conoscere il numero di parametri del modello. Nell’esempio esso è rappresentato dal numero di caratteristiche più un valore costante:
Ora creiamo una funzione scelta_modello per calcolare questi indicatori, in modo da poterla richiamare anche per il secondo modello:
La funzione richiede 3 parametri, n il numero dei data points (100 per l’esempio), il valore dell’errore mse, che rappresenta la massima probabilità del modello, e il numero dei parametri calcolati al precedente passaggio. Di conseguenza, siamo già in grado di calcolarci i valori di questi indicatori per il primo modello.
Essi sono pari a:
Presi da soli essi non hanno molto senso: dobbiamo confrontarli con un altro modello creato dallo stesso set di dati.
Valutiamo perciò un secondo modello: il gradiente stocastico discendente, la cui classe per un problema di regressione è la SGDRegressor(). Allo stesso modo di prima adattiamo i dati con la funzione fit() e poi visualizziamo i coefficienti:
Il numero dei parametri sarà il medesimo del primo modello:
Eseguiamo una previsione sul set di dati X e poi calcoliamo l’errore quadratico medio:
Per il secondo modello otteniamo un errore più alto, anche se di poco, e quindi potrebbe essere quello peggiore. In realtà, controllando gli indicatori otteniamo un risultato differente.
In questo caso basta associare alla funzione scelta_modello creata in precedenza il valore effettivo dei tre parametri n, mse e numero parametri:
Otteniamo:
La regola afferma che tra due modelli, il migliore è quello con AIC più basso. Allo stesso modo tra due modelli, anche quello che ha il BIC più basso è migliore. Questo è vero anche per la tecnica HQIC. Possiamo concludere in questo caso che il modello migliore tra i due visti è il secondo, perché ha tutti gli indicatori visti minori rispetto al primo modello.
Ma allora perché non usare un solo indicatore? In genere, la scelta dell’indicatore/degli indicatori da utilizzare viene scelta dal ricercatore, e tra le scelte preferite ci sono più comunemente l’AIC e il BIC.
Potenzialmente ci potrebbero essere casi in cui un indicatore è maggiore in un modello mentre nell’altro è vero il contrario, per cui ci possono essere situazioni ibride per le quali diventa più complesso prendere una decisione.
Utilizzando tre indicatori, il modello migliore sarà quello per cui si hanno due indicatori minori su tre. Ovviamente maggiori ricerche e analisi potranno aiutare nel prendere una decisione più attendibile e concisa.
Conclusione
In questo articolo abbiamo visto 3 metodologie di selezione del modello tra più modelli costruiti nello stesso set di dati.
Il vantaggio di queste statistiche sui criteri di informazione è che non richiedono una suddivisione del dataset in set di training e set di test, sebbene un limite sia che non tengono conto dell’incertezza dei modelli e possono finire per selezionare modelli troppo semplici.
Sono comunque adatte ed efficaci quando si hanno pochi dati a propria disposizione. Infatti, se non disponi di dati sufficienti per mettere da parte una convalida e un set di test, hai bisogno di altri modi per selezionare e valutare il modello.
Potresti utilizzare certamente anche il metodo di convalida incrociata, nessuno lo vieta: tuttavia, con dati di piccole dimensioni, i criteri di informazione AIC, BIC e HQIC tendono ad essere più affidabili.
E se la convalida incrociata sarà sbilanciata a causa di pochi dati, almeno saprai che il modello che hai selezionato è quello giusto, anche se la stima dell’errore di test con convalida incrociata era tutt’altro che perfetta.