classificazione pazienti con la sla tramite svm integration
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
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 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)
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.
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.
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)
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