Bioinformatica Classificazione Dr. Giuseppe Pigola – pigola@dmi.unict.it
Classificazione e Predizione Processo di individuazione di una etichetta della classe categoriale di appartenenza di un oggetto; Se una banca deve decidere se assegnare o meno un prestito ad un correntista, «lo classifica» assegnando una etichetta categoriale (ad es. affidabile / non affidabile); Il medico che deve fare una diagnosi su un paziente «lo classifica» assegnando una etichetta (ad es. malato / sano); PREDIZIONE La predizione modella una funzione continua (mentre la classificazione ha a che fare con valori discreti) e consente di individuare dati sconosciuti o mancanti. Bioinformatica
Classificazione CLASSIFICAZIONE: TRE FASI ADDESTRAMENTO: Costruzione del modello tramite un training set; STIMA DELL’ACCURATEZZA: Calcolo della percentuale di correttezza nell’individuazione della classe durante il processo di classificazione. Velocità; Robustezza: Capacità di discriminare dati corretti e errati; Scalabilità; Interpretabilità di ciò che si ottiene dal classificatore; UTILIZZO: Il modello viene utilizzato per classificare input sconosciuti; Bioinformatica
Classificazione: Preparazione dei Dati DATA CLEANING: Si cerca di eliminare o ridurre il rumore provvedendo a risolvere il problema di dati mancanti; RELEVANCE ANALYSIS: Analizzare i dati e mantenere solo quelli effettivamente discriminanti per la fase di classificazione; DATA TRANSFORMATION AND REDUCTION: Si normalizzano alcuni tipi di dati. La normalizzazione consiste nello scalare i valori di un attributo in un range predefinito (ad esempio [0,1]); Dato un set di dati generalmente viene suddiviso in due parti: Una parte verrà utilizzata per addestrare il modello, l’altra verrà usata per testare il modello; Bioinformatica
Support Vector Machines - SVM Bioinformatica
Support Vector Machines - SVM Le SVM machines sono state sviluppate negli AT&T Bell Laboratories da Vapnik e Chervonenkis; Prime applicazioni: OCR (optical character recognition); Riconoscimento di oggetti [Blanz et al., 1996]; Indentificazione di oratori [Schmidt, 1996]; Identificazione di facce in immagini [Osuna, et al. 1997]; Classificazione di testi [Joachims, 1997]. Software: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ http://bengio.abracadoudou.com/SVMTorch.html Bioinformatica
Support Vector Machines - SVM Sono metodi di classificazione che garantiscono una elevata accuratezza della predizione; Necessitano di pochi dati. Non sono generalmente affette da overfitting; Spesso però è difficile modellare un problema con le SVM, specialmente quando si ha a che fare con spazi multidimensionali; Obiettivo del metodo è quello di costruire una «funzione di classificazione» che si spera possa classificare nuovi dati; Considereremo il caso di classificazione con 2 classi, ma tutto può essere esteso al caso di k classi; Bioinformatica
Support Vector Machines - SVM Per il calcolo della funzione f distinguiamo due casi: Classificazione Lineare (I dati sono linearmente separabili): Esiste nello spazio Rn almeno un iperpiano in grado di separare le tuple del training set (punti di Rn) di classe C1 da quelle di classe C2; Classificazione non Lineare (I dati non sono linearmente separabili): Non esiste nello spazio Rn un iperpiano in grado di separare le tuple di classi diverse; Bioinformatica
SVM – Classificazione Lineare Trovare l’iperpiano che separa «meglio», cioè l’iperpiano che rende massimo il margine, ovvero la distanza tra l’iperpiano e il punto di classe C1 (o C2) più vicino ad esso; Tale iperpiano è detto Maximum Marginal Hyperplane (MMH); Per R2 bisogna trovare la retta che rende massima la distanza dal punto più vicino di C1 o C2; Bioinformatica
SVM – Classificazione Lineare H1,H2 = i due iperpiani passanti, rispettivamente, per i punti di C1 e C2 più vicini al MMH. I punti di C1 e C2 per cui passano H1 e H2 sono detti vettori di supporto e m è il margine. Bioinformatica
SVM – Classificazione Lineare Date m coppie (x,y) con xRn e y{-1,1}, vogliamo trovare wRn e bR tali che: L’iperpiano separatore H è l’insieme di punti tali che Bioinformatica
SVM – Classificazione Lineare Osserviamo che l’iperpiano H1 passa per un punto (una tupla) (xi,yi) con yi=1 mentre H2 passa per un punto (xi,yi) con yi = -1. Dunque: Gli elementi del training set (xi,yi) soddisferanno i vincoli O equivalentemente Bioinformatica
SVM – Classificazione Lineare Vogliamo allora rendere massima Sia P un vettore di supporto e H l’iperpiano separatore. Nel caso di R2 P=(x1,x2) e se H è una retta Generalizzando in Rn, se P(x,y) è un vettore di supporto con xRn avremo Bioinformatica
SVM – Classificazione Lineare Il segno + (-) indica che x giace sul lato positivo (negativo) dell’iperpiano; Il problema di massimizzare il margine m allora si riduce al problema di minimizzare la norma 2 del vettore dei pesi W con la condizione Bioinformatica
SVM – Classificazione Lineare Possiamo formulare la massimizzazione del margine come un problema di ottimizzazione quadratica vincolata Con vincoli Metodo dei moltiplicatori di Lagrange Bioinformatica
SVM – Classificazione Lineare Potremo classificare una nuova tupla X mediante la funzione di classificazione: Dove è un prodotto scalare riga per colonna; Gli i e b0 sono parametri legati a W e sono ottenuti col il metodo dei moltiplicatori di Lagrange; Se allora X verrà classificata come C2; Altrimenti sta in C1; Bioinformatica
SVM – Classificazione Non Lineare Bioinformatica
SVM – Classificazione Non Lineare Nello spazio di Rn non esiste un iperpiano in grado di separare le tuple di classi diverse; Soluzione «soft margin»: Si cerca l’iperpiano che divide i punti nel modo più pulito possibile, introducendo delle costanti di scarto i per ogni tupla ti. Se H1 e H2 sono gli iperplani passanti per i vettori di supporto: i ha valore zero se la tupla ti sta nelle regioni esterne a H1 e H2 (cioè è correttamente classificata); i avrà un valore maggiore di zero (corrispondente alla distanza di ti dal vettore di supporto) se ti è classificata male (ovvero si trova nella regione compresa tra gli iperpiani H1 e H2); Bioinformatica
SVM – Classificazione Non Lineare Potremo esprimere allora i vincoli O euqivalentemente Bioinformatica
SVM – Classificazione Non Lineare La funzione Diventa un limite superiore sul numero di errori possibili; Assegnando un costo agli errori (e tenendo conto dei vincoli) la funzione da minimizzare diverrà Con c parametro (c elevato = alta penalità assegnata agli errori); Bioinformatica
SVM – Classificazione Non Lineare Un modo alternativo consiste nel proiettare il training set in uno spazio dimensionale maggiore in cui sia possibile fare una classificazione lineare Bioinformatica
SVM – Classificazione Non Lineare Ad esempio un vettore tridimensionale X=(x1,x2,x3) può essere mappato in uno spazio a 6 dimensioni utilizzando una funzione di mapping La tupla nel nuovo spazio sarà allora La funzione di classificazione sarà allora trasformata in Bioinformatica
SVM – Classificazione Non Lineare Il mapping è però un’operazione molto complessa; E’ possibile utilizzare invece le cosiddette «funzioni kernel»; Se X è lo spazio dei dati originale e Z è quello dei dati mappati, una funzione kernel K è tale che per ogni x,y Cioè K restituisce il prodotto tra le immagini di x e y. Con funzione di mapping allora possiamo calcolare la funzione di classificazione come Bioinformatica
SVM – Classificazione Non Lineare A ciò segue che, invece di applicare il mapping possiamo direttamente usare una funzione kernel K (che deve soddisfare le proprietà del prodotto scalare come commutativa, distributiva, etc etc); Alcune tipiche funzioni Kernel: Una funzione Kernel non lineare separerà (ad es. in R2) le tuple con delle curve e non rette. Bioinformatica
SVM – Applicazioni alla Bioinformatica Una sequenza proteica può essere convertita in un punto 20-dimensionale considerando la composizione aminoacidica (vettore di frequenze); Predire la struttura secondaria e 3D di proteine; Individuazione di omologie remote fra proteine; Classificazione funzionale di geni e proteine; Ricerca di pattern in sequenze biologiche; Analisi di dati di espressione genica provenienti da microarrays; Bioinformatica