classificazione pazienti con la sla tramite svm integration

50
Classificazione pazienti con la S.L.A. tramite integrazioni di SVM Luciano Giuseppe Corso di Reti Neurali - 2015 Specialistica in Informatica @UniSA

Upload: giuseppe-luciano

Post on 15-Aug-2015

111 views

Category:

Science


0 download

TRANSCRIPT

Classificazione pazienti con la S.L.A.tramite integrazioni di SVM

Luciano GiuseppeCorso di Reti Neurali - 2015

Specialistica in Informatica @UniSA

Outline• Introduzione• Feature selection– T-score e CAT score– FDR e FNDR

• MultiView Learning– SVM– CrossValidation

• Esperimenti– Intermediate Integration

• 10 fold• 7 fold

– Late Integration• 10 fold• 7 fold

– Altri esperimenti

IntroduzioneI dati

• Dataset iniziali: – DTI – DMN (estratto tramite ICA dal fMRI).

• Sample: 71 persone divisi in due classi– controlli (sani): 23 sample– pazienti : 48 sample

• Preprocessing– Riduzione delle dimensioni: da 50k a 15k voxel– Aggregazione dei voxel adiacenti tramite clustering

• Risultato finale• Diffusion tensor imaging: 71 x 400 feature• Default-mode network: 71 x 400 feature

Dati scalati

IntroduzioneIl problema

• Voglio classificare i dati usando entrambi i dataset.

• Poiché ci sono più feature che sample ci potrebbe essere il problema di overfitting

1. Riduciamo le feature2. Ottimiziamo i paramentri del

classificatore

Feature selectionPanoramica

• Date le due classi, si effettua il ranking delle feature analizzando il loro potere discriminatiorio tramite:– T-score– Correlation Adjusted t-score (CAT score)

• Selezione delle feature tramite FDR/FNDR: dal ranking prese le feature che hanno un False Non-Discovery Rate (FNDR) < 0.2

• E’ stata usata la libreria di R sda.

Feature selectionT-score

• Si utilizza per valutare il potere discriminativo di una feature, date due classi.

• Ogni feature è considerata indipendentemente dalle altre.

• Data una feature si prendono le medie dei valori per le due classi: μ1 e μ2

– Hypothesis testing• H1: la media delle feature differisce significantemente μ1 ≠ μ2

• H0: la media delle feature non differisce significantemente μ1 = μ2

Si assume vera

Feature selectionCAT score

• Correlation-adjusted t-scores (CAT-score) è la versione decorrelata del t-score.

• Stima il contributo di ogni feature nella separazione di due classi, dopo aver rimosso l’effetto di tutte le altre feature

• Se non c’è correlazione si riduce al t-score.

t-score tra la media della feature k e la media “pooled”

Matrice di correlazione

Feature selectionFDR e FNDR

• Il metodo del False Discovery Rate (FDR) gioca un ruolo importante nell’analisi di dati ad alta dimensionalità: serve a selezionare le feature per la classificazione

FDR = FP / (FP + TP)

• False Non-Discovery Rate (FNDR) serve per identificare l’insieme delle feature nulle, cioè quelle che non sono informative rispetto alla separazioni delle classi, in modo da non usarle per la classificazione: – si identificano le feature nulle controllando FNDR e quindi si useranno

tutte le altre feature.

FNDR = FN / (FN + TP)FNDR = 1 – FDR

Classe 1 Classe 0

Predizione 1 T.P. F.P

Predizione 0 F.N. T.N.

Matrice di confusione:

Feature selectionEsperimenti

• Ranking effetutato con:– CAT score– t-score

• Si sono selezionate le feature che hanno un FNDR < 0.2 (FDR < 0.8).

• Risultati:– DMN

• CAT score: solo 8 feature selezionate• t-score: 42 feature selezionate

– DTI• CAT score: 0 feature selezionate• t-score: 76 feature selezionate

Si è usato il t-score

PLOT dei t-score del DMN dato le classi

PLOT dei t-score del DTI dato le classi

MultiView Learning

• Ogni sorgente provvede a una “vista” (view) sullo stesso dominio, ma potenzialmente codifica un differente pattern rilevante.

• L’effettiva integrazione di tali viste può portare ad un modello più ricco di informazioni rispetto alla singola vista.

MultiView LearningTipi di integrazione

• Early Integration: si concatenano i dati di diverse vista, e poi si analizza il nuovo dataset

• Intermediate Integration: si concatenano i risultati delle analisi nei passi intermedi

• Late Intergration: si usano i risultati delle analisi sulle singole viste

MultiView Learning Tipi di integrazione (2)

MultiView LearningIntegrazione di SVM

• Come classificatore si è deciso di usare SVM.• Si è utilizzata la libreria di R kernlab, che

supporta sia le funzioni kernel più diffuse (lineare, gaussiano, …), che l’uso di funzioni kernel create ad hoc, che di kernel matrix

MultiView LearningIntegrazione di SVM: Intermediate Integration

Si è effettuata l’intermediate integration tramite questa procedura

1. Calcolo della kernel matrix dei dataset– K1 = DMN * DMN’ : matrice 71x71

– K2 = DTI * DTI’ : matrice 71x71

2. Si è fatta la mistura delle matrici– Kinput = p*K1+(1-p)*K2

– 0 ≤ p ≤ 1

MultiView LearningIntegrazione di SVM: Late Integration

• Non si è potuto optare per un meccanismo di voting: ci sono solo due view.

• Si sono sfruttati i decision values dati dalla predizione del SVM.

z è il decision value

SVM: selezione del modello

• Si è scelto di usare un classificatore lineare.– Selezionare il valore C migliore per i dati:

Provati valori tra 1 e 10

• Pochi sample problemi di overfitting• Per generalizzare scelta dei C migliori

tramite CrossValidation

CrossValidation

• K-fold CrossValidation: – Si divide il dataset in k parti– Si effettua k volte l’addestramento, ogni volta su fold di

validazione diverso• Leave-One-Out:– Viene usato un solo sample alla volta per la validazione

del modello• Nested CrossValidation:– Si effettua il K-Fold CrossValidation, dove sul training

set si effettua il L.O.O. per scegliere le C migliori– E’ stata creata una funzione ad hoc in R

(METODO UTILIZZATO)

Nested CrossValidation

K FOLD CROSSVALIDATION

LEAVE ONE OUT

VALIDATION SET

TRAINING SET

K Fold• Il dataset non è bilanciato: 23 controlli (32%) e 48 pazienti

(68%).• In ogni fold ci deve essere:

– 1/k dei controlli– 1/K dei pazienti

• K scelti: 10 e 7• E’ stata creata una funzione ad hoc in R• Oltre l’accuratezza si sono misurati:

– Recall: TP su tutte le predizioni positive– Precision: TP su tutti i sample positivi– P-value: l’accuratezza è maggiore del No Information Rate

Se entrambi i valori sono alti, ho un buon risultato (nel caso di dataset sbilanciati)

Classe 1 Classe 0

Predizione 1 T.P. F.P

Predizione 0 F.N. T.N.

Esperimenti

Intermediate Integration - C migliori:10 Fold CrossValidation sul DMN

Accuratezza: 0.79583, Recall: 0.8541667, Precision: 0.8367347, P-Value: 0.02547

Intermediate Integration - C migliori:10 Fold CrossValidation sul DTI

Accuratezza: 0.8369, Recall: 0.875, Precision: 0.893617, P-Value: 0.001032

Intermediate Integration - C migliori:10 Fold CrossValidation su mistura migliore

Peso DTI: 0.7 , Peso DMN: 0.3 Accuratezza: 0.82083, Recall: 0.8541667, Precision: 0.8723404, P-Value: 0.006086

Risultati Intemediate Integration su 10 Fold

• La mistura migliore ha risultati peggiori del SVM sul singolo dataset DTI– Come Pavlidis et all in “Gene functional

classification from heterogeneous data” (2001) ho riscontrato che: “the intermediate integration scheme fails to learn to classify only two classes”

• Con 10 Fold ci sono troppi pochi sample nel validation set

Intermediate Integration - C migliori:7 Fold CrossValidation sul DMN

Accuratezza: 0.81601, Recall: 0.875, Precision: 0.8571429, P-Value: 0.006086

Intermediate Integration - C migliori:7 Fold CrossValidation sul DTI

Accuratezza: 0.804617, Recall: 0.8958333, Precision: 0.8269231, P-Value: 0.01296

Intermediate Integration - C migliori:7 Fold CrossValidation su mistura migliore

Peso DTI: 0.7 , Peso DMN: 0.3; Accuratezza: 0.83189, Recall: 0.8958333,

Precision: 0.86, P-Value: 0.002624

Peso DTI: 0.2 , Peso DMN: 0.8; Accuratezza: 0.83189, Recall: 0.8541667,

Precision: 0.8913043, P-Value: 0.002624

Risultati Intemediate Integration su 7 Fold

In questo caso si sono avute due misture con accuratezza migliore delle singole viste

Confronto tra Intermediate Integration10 Fold 7 Fold

DMN Accuratezza: 0.79583,Recall: 0.8541667,

Precision: 0.8367347, P-Value: 0.02547

Accuratezza: 0.81601,Recall: 0.875,

Precision: 0.8571429, P-Value: 0.006086

DTI Accuratezza: 0.8369,Recall: 0.875,

Precision: 0.893617, P-Value: 0.001032

Accuratezza: 0.804617,Recall: 0.8958333,

Precision: 0.8269231, P-Value: 0.01296

Peso DTI: 0.7 Peso DMN: 0.3

Accuratezza: 0.82083, Recall: 0.8541667,

Precision: 0.8723404, P-Value: 0.006086

Accuratezza: 0.83189, Recall: 0.8958333,

Precision: 0.86, P-Value: 0.002624

Peso DTI: 0.2 Peso DMN: 0.8

Accuratezza: 0.83189,Recall: 0.8541667,

Precision: 0.8913043, P-Value: 0.002624

Late Integration

I decision values della predizione su ogni fold di validazione vengono salvati, così da combinarli ed usarli per il Late Integration:

newDecisionValues = B1*dvDTI + B2*dvDMN

Late Integration DTI 10 Fold CrossValidation

Risultati SVM con kernel lineare

Risultati delle C migliori con SVM su DTI. Accuratezza: 0.8591549

Recall: 0.8958333Precision: 0.8958333

P-value: 0.0003677

Late IntegrationDMN 10 Fold CrossValidation

Risultati SVM con kernel lineare

Risultati delle C migliori con SVM su DMN. Accuratezza: 0.7887324

Recall: 0.8333333Precision: 0.8510638

P-Value: 0.01404

DMN DTI

I voxel colorati sono quelli individuati con la feature selection. L’intensità del colore dei voxel (giallo è il valore più alto) è dato dal peso che gli assegna SVM durante il training

Late Integration10 Fold CrossValidation

Risultati con media e regressione dei decision values

• Viene fatta la media dei vettori dei decision values– B1 e B2 = 1/2– Risultato:

• Accuratezza: 0.8732394• Recall: 0.9166667• Precision: 0.8979592• P-Value: 0.0001612

• Regressione tra il vettore dei decision values e le label.– B1: 0.542 e B2:0.24– Risultato:

• Accuratezza: 0.9014085• Recall: 0.9583333• Precision: 0.9019608• P-Value: 0.0002903

Late Integration DTI 7 Fold CrossValidation

Risultati SVM con kernel lineare

Risultati delle C migliori con SVM su DTI. Accuratezza: 0.8592

Recall: 0.8958333Precision: 0.8958333

P-value: 0.0003677

Late IntegrationDMN 7 Fold CrossValidation

Risultati SVM con kernel lineare

Risultati delle C migliori con SVM su DMN. Accuratezza: 0.8028

Recall: 0.8541667Precision: 0.8541667

P-Value: 0.01296

I voxel colorati sono quelli individuati con la feature selection. L’intensità del colore dei voxel (giallo è il valore più alto) è dato dal peso che gli assegna SVM durante il training

DMN DTI

Late Integration7 Fold CrossValidation

Risultati con media e regressione dei decision values

• Viene fatta la media dei vettori dei decision values– B1 e B2 = 1/2– Risultato:

• Accuratezza: 0.8873239• Recall: 0.9375 • Precision: 0.9• P-Value: 0.0002211

• Regressione tra il vettore dei decision values e le label.– B1: 0.4699144 e B2: 0.2528926– Risultato:

• Accuratezza: 0.9014085• Recall: 0.9375• Precision: 0.9183673 • P-Value: 2.329e-05

Late IntegrationRiassunto dei risultati

Sia con 7Fold che con 10Fold, il Late Integration migliora i risultati del SVM sulla vista che ha dato i risultati migliori:

• 5% di miglioramento dell’accuratezza se si utilizza la regressione per calcolare i pesi della somma.

• 2% se si fa una media pesata dei decision values.

Confronto dei Fold CrossValidation (1)

DMN7 FOLD

DMN10 FOLD

Confronto dei Fold CrossValidation (2)

DTI7 FOLD

DTI10 FOLD

7 FOLD

10 FOLD

10 Fold• Media:

– B1 e B2 = 1/2– Risultato:

• Accuratezza: 0.8732394• Recall: 0.9166667• Precision: 0.8979592• P-Value: 0.0001612

• Regressione:– B1: 0.542

– B2:0.24– Risultato:

• Accuratezza: 0.9014085• Recall: 0.9583333• Precision: 0.9019608• P-Value: 0.0002903

7 Fold• Media:

– B1 e B2 = 1/2– Risultato:

• Accuratezza: 0.8873239• Recall: 0.9375 • Precision: 0.9• P-Value: 0.0002211

• Regressione :– B1: 0.4699144

– B2: 0.2528926– Risultato:

• Accuratezza: 0.9014085• Recall: 0.9375• Precision: 0.9183673 • P-Value: 2.329e-05

Confronto dei Fold CrossValidation (4)

ALTRI ESPERIMENTI

Late Integration: Risultati senza feature selection

10 Fold Nested Cross Validation con SVM Linear Kernel sul DTI Accuratezza: 0.6056338 Recall: 0.75 Precision:0.6923077

10 Fold Nested Cross Validation con SVM Linear Kernel sul DMN Accuratezza: 0.6338028Recall: 0.7291667Precision: 0.7291667

Late integration• B1: 0.4682439 e B2 0.4713204• Accuratezza: 0.6619718• Recall: 0.8333333• Precision: 0.7142857

FINE!