• Non ci sono risultati.

9.6 Applicazione degli algoritmi genetici nella selezione di variabili spettrali

9.6.2 Implementazioni dell’algoritmo per ridurre il rischio di overfitting e

La presenza di correlazioni casuali è sicuramente il fattore principale che limita l’utilizzo degli algoritmi genetici [Jouan-Rimbaud, 1996] ed un modello costruito senza tenerne conto non è sicuramente un modello affidabile e robusto. Inoltre, osservando l’evoluzione delle risposte durante la corsa dell’algoritmo, si può vedere che il miglioramento avviene in modo repentino nelle fasi iniziali del processo ma subisce un decremento di velocità nelle fasi successive. Dopo che viene utilizzata la parte informativa dei dati per la costruzione del modello, c’è il rischio che si utilizzi anche il rumore per completare il modellamento. L’algoritmo genetico deve quindi essere fermato ad un certo punto dell’elaborazione, evitando così la presenza di overfitting.

Marco Caredda. Messa a punto e validazione di metodi analitici aspecifici online impieganti strumentazione a Trasformata di Fourier per la determinazione di macro e microanaliti in latte ovino. Tesi di dottorato in Scienze chimiche, Ciclo XXVI, Università degli studi di Sassari.

Per questi motivi, l’algoritmo genetico per la selezione delle variabili spettrali è stato implementato con alcune operazioni da effettuare prima, durante e dopo la corsa dell’algoritmo.

Test di randomizzazione

Attraverso l’utilizzo di un test di randomizzazione è possibile valutare l’efficacia dell’algoritmo genetico nel risolvere il problema in esame prima ancora di iniziare la selezione delle variabili, e decidere quante valutazioni far effettuare all’algoritmo in ogni sua corsa. Il test si basa sul seguente metodo: l’ordine degli elementi della matrice Y della variabile risposta sperimentale viene definito in modo casuale così che ogni riga della matrice X dei predittori corrisponda ad un valore di Y che in realtà non è il suo. Così facendo, il data set non ha in sé informazione; perciò, se si riesce ad ottenere un modellamento da questi dati, allora il modello è ottenuto esclusivamente da rumore. L’algoritmo genetico utilizza il test in ogni corsa, valutando 100 cromosomi in ognuna di esse, prendendo poi in considerazione la risposta migliore. Alla fine del ciclo dell’algoritmo (dove un ciclo è dato dal numero totale delle corse), viene calcolata la media delle risposte migliori di ogni corsa. Al diminuire di questo valore, aumenterà l’affidabilità del data set. Se il valore è invece molto alto, vorrà dire che l’algoritmo genetico riesce a modellare i dati anche quando non è presente informazione. Un ottimo data set presenta un valore di risposte medie minore di 4. Di norma, un algoritmo genetico può essere utilizzato con sicurezza quando la risposta media ottenuta dal test non supera il valore 8 [Leardi, 1998].

La decisione sul quando bloccare una corsa dell’algoritmo genetico, e quindi evitare l’overfitting, è presa utilizzando lo stesso test: l’algoritmo effettua un numero prefissato di corse, normalmente 100, con 200 valutazioni ognuna, nella prima metà delle quali si utilizza il vettore Y originale e nella seconda metà si utilizza il vettore Y randomizzato. Vengono calcolate le risposte di tutti i cromosomi di ogni corsa e viene presa in considerazione la risposta migliore di ogni corsa. A questo punto viene fatta la media delle migliori risposte ottenute con la matrice Y originale e la media delle migliori risposte ottenute con la matrice Y randomizzata. Il miglior momento in cui fermare l’algoritmo genetico è quello in cui si ha la massima differenza tra le due medie calcolate; si cerca quindi il numero di valutazioni per cui si ha la massimizzazione della differenza tra le due medie. Questo corrisponde a dire che le corse con il vettore Y originale mostrano l’abilità

Marco Caredda. Messa a punto e validazione di metodi analitici aspecifici online impieganti strumentazione a Trasformata di Fourier per la determinazione di macro e microanaliti in latte ovino. Tesi di dottorato in Scienze chimiche, Ciclo XXVI, Università degli studi di Sassari.

dell’algoritmo genetico di modellare l’informazione ed il rumore, mentre le corse con il vettore Y randomizzato mostrano l’abilità dell’algoritmo genetico di modellare solo il rumore. Il vettore differenza è l’abilità di modellare solo l’informazione [Leardi, 1998].

Riduzione del numero di variabili iniziali

La procedura della selezione delle variabili è apparentemente semplice ma in realtà molto complicata in quanto esiste il forte rischio di sovrastimare l’abilità predittiva del modello a causa della possibilità di correlazioni casuali. Questo fatto risulta essere ancora più evidente quando il rapporto variabili/oggetti è molto alto. L’operazione più semplice che si può effettuare è quella di ridurre il numero di variabili utilizzando, al posto di un dato numero di lunghezze d’onda, il valore medio ottenuto su finestre di lunghezze d’onda contigue. Normalmente, le performance dell’algoritmo genetico sono ottimali quando il numero delle variabili iniziali è minore di 200 [Leardi, 2009].

Numero di corse e selezione delle variabili

I parametri dell’algoritmo genetico vengono impostati in modo tale da ottenere la massimizzazione della fase di exploitation in modo da ottenere un miglioramento molto veloce delle risposte già nei primi stadi del processo e ridurre il rischio di overfitting. Lo svantaggio è che, dato che in una singola corsa (una sola fase evolutiva) solo una minima parte del dominio totale viene esplorata, i risultati di più corse possono essere piuttosto differenti. Il risultato finale può quindi essere influenzato dalla popolazione iniziale casualmente generata. Per risolvere questo problema, l’algoritmo effettua un numero elevato di corse indipendenti, normalmente 100, per poter esplorare buona parte del dominio di ricerca.

Per non perdere l’informazione portata dalle corse precedenti, la probabilità che ogni variabile venga selezionata all’inizio di ogni corsa viene calcolata sulla base del numero di volte che quella variabile è stata precedentemente selezionata. In questo modo, ogni nuova corsa si focalizza maggiormente sulle regioni spettrali più interessanti, senza eliminare del tutto la possibilità di esplorare tutte le altre zone.

Alla fine delle 100 corse vengono considerati i 100 migliori cromosomi (il migliore di ogni corsa) sui quali si calcola la frequenza di selezione di ogni singola variabile, ottenendo un grafico frequenza di selezione/variabile. Sui valori delle frequenze si applica un’operazione di smoothing su una finestra di tre lunghezze d’onda adiacenti ed infine si

Marco Caredda. Messa a punto e validazione di metodi analitici aspecifici online impieganti strumentazione a Trasformata di Fourier per la determinazione di macro e microanaliti in latte ovino. Tesi di dottorato in Scienze chimiche, Ciclo XXVI, Università degli studi di Sassari.

effettua una selezione stepwise per la scelta delle variabili da utilizzare. La selezione stepwise si basa sul metodo forward selection descritto nel paragrafo 8.4.2 e consiste nel valutare la predizione in cross-validazione dei modelli costruiti inserendo una variabile alla volta, in base al loro valore della frequenza di selezione ottenuto dopo l’operazione di smoothing. L’aggiunta progressiva delle variabili determina, finché esiste informazione, una diminuzione dell’errore in cross-validazione RMSECV fino al raggiungimento del minimo globale. Però, il minimo di RMSECV può essere ottenuto anche a seguito di oscillazioni casuali attorno al valore di plateau e quindi corrispondere a un numero molto elevato di variabili. L’algoritmo utilizza quindi il test F di Fisher per determinare qual è il modello più parsimonioso, ovvero il modello che utilizza il minore numero di variabili ottenendo un errore RMSECV non significativamente differente dal minimo globale. I passaggi sono i seguenti:

- si localizza il valore minimo di RMSECV;

- si utilizza un test F con p<0,1 e gradi di libertà pari al numero di oggetti del training set sia al numeratore che al denominatore, e si seleziona un valore soglia corrispondente al più alto valore di RMSECV che non è significativamente differente dal valore minimo;

- si cercano le soluzioni con il minore numero di variabili che hanno un valore di RMSECV minore del valore soglia.

Questo metodo permette di costruire modelli che generano un RMSEP, errore in predizione su un set esterno, di solito leggermente inferiore utilizzando un numero minore di variabili e regione spettrali più piccole.

Il procedimento che comprende le 100 ripetizioni delle corse dell’algoritmo fino alla selezione del modello più parsimonioso costituisce un ciclo dell’algoritmo [Leardi, 2009].