Bioinformatica Classificazione Dr. Giuseppe Pigola – [email protected].
-
Upload
udalrico-parisi -
Category
Documents
-
view
227 -
download
0
Transcript of Bioinformatica Classificazione Dr. Giuseppe Pigola – [email protected].
BioinformaticaClassificazione
Dr. Giuseppe Pigola – [email protected]
Classificazione e PredizioneCLASSIFICAZIONEProcesso 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);
PREDIZIONELa predizione modella una funzione continua (mentre la classificazione ha a che fare con valori discreti) e consente di individuare dati sconosciuti o mancanti.
Bioinformatica2
ClassificazioneCLASSIFICAZIONE: 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;
Bioinformatica3
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;
Bioinformatica4
Support Vector Machines - SVM
Bioinformatica5
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
Bioinformatica6
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;
Bioinformatica7
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;
Bioinformatica8
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;
Bioinformatica9
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.
Bioinformatica10
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
Bioinformatica11
1 Se 0
1 Se 0
ii
ii
ybxw
ybxw
}0|{ bxwRxH n
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
Bioinformatica12
2
1
Per 1
Per 1
Hbxw
Hbxw
i
i
1 quando 1
1 quando 1
ii
ii
ybxw
ybxw
1)( bxwy ii
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
Bioinformatica13
22
21
22110),(),(ww
xwxwwrPdHPd
222
221 ...
),(w
bxw
www
bxwHPd
n
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
Bioinformatica14
ibxwy ii 1)(
222
221 ...
),(w
bxw
www
bxwHPd
n
1 se 1
2
yw
1 se 1
2
yw
2
12w
m
SVM – Classificazione Lineare Possiamo formulare la massimizzazione del margine come
un problema di ottimizzazione quadratica vincolata
Con vincoli
Metodo dei moltiplicatori di Lagrange
Bioinformatica15
ibxwy ii 1)(
2min
2
2,
wbw
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;
Bioinformatica16
SVM – Classificazione Non Lineare
Bioinformatica17
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);
Bioinformatica18
SVM – Classificazione Non Lineare Potremo esprimere allora i vincoli
O euqivalentemente
Bioinformatica19
1 quando 1
1 quando 1
ii
ii
ybxw
ybxw
1 quando 1
1 quando - 1
i
ii
iii
ybxw
ybxw
iii bxwy 1)(
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);
Bioinformatica20
i
iF )(
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
Bioinformatica21
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
Bioinformatica22
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
Bioinformatica23
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.
Bioinformatica24
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;
Bioinformatica25