Astronomical Data, Missing Values and SVC

Un test effettuato più che per curiosità che per altro ha dato risultati inaspettati.

Premessa: ho da poco introdotto l’utilizzo del kernel Laplaciano nel Support Vector Clustering. Senza soffermarmi troppo su questo particolare, sottolineo soltanto che l’utilizzo di questo Kernel permette spesso di trovare buone se non ottime soluzioni in 1/3 cicli, anche se non sempre superiori a quelle trovate col kernel Gaussiano.

Veniamo al dunque. Avevo bisogno di dataset astronomici più managgevoli per fare dei test, così spulciando varie pubblicazioni in merito, trovo lo SDSS Sky Server. Seguendo le linee guida e le pubblicazioni, ho estratto dai database dello SkyServer finora due piccoli dataset (i nomi li ho inventati io):

  • S2kG3k
    2000 stelle e 3000 galassie, rappresentate da 20 features (point spread function fluxes, petrosian radii, in arcsec, small-scale roughness of object, shapes).
    Numero di oggetti riportanti missing values: 1364.
    Numero di missing values: 2354
  • S3k5G1k5
    3500 stelle e 1500 galassie, rappresentate da 20 features (point spread function fluxes, petrosian radii, in arcsec, small-scale roughness of object, shapes).
    Numero di oggetti riportanti missing values: 2352.
    Numero di missing values: 4157

Dopo aver appurato che dataset simili ma senza missing values erano intrisecamente difficili da separare (strongly overlapping clusters), prima di tentare nuovi dataset per il Co-clustering, ho preferito, per curiosità, usare i succitati dataset con l’SVC.

Arriviamo direttamente al nocciolo, ovvero l’esecuzione dei test (separazione di stelle da galassie) con la seguente configurazione: SVC con Kernel Laplaciano e distanza euclidea L1.

Trattamenti al dataset:

  • imputazione del valore 0 per i missing values
  • normalizzazione dei dati ai vettori unitari (processo implicito quando si usa il kernel Gaussiano)
  • .

    Risultati di SVC sul primo dataset (ottenuto in un solo ciclo di SVC):

    Class 0
    TP: 2000 FP: 318
    FN: 0 TN: 2682

    Precision: 86.2813 – Recall: 100 – F1: 92.6355

    Class 1
    TP: 2682 FP: 0
    FN: 318 TN: 2000

    Precision: 100 – Recall: 89.4 – F1: 94.4034

    Accuracy: 93.64

    Risultati di SVC sul secondo dataset (ottenuto in un due cicli di SVC):

    Class 0
    TP: 3500 FP: 16
    FN: 0 TN: 1484

    Precision: 99.5449 – Recall: 100 – F1: 99.7719

    Class 1
    TP: 1484 FP: 0
    FN: 16 TN: 3500

    Precision: 100 – Recall: 98.9333 – F1: 99.4638

    Accuracy: 99.68

    Questi test risultano incoraggianti per il clustering di dati astronomici tipicamente affetti dalla presenza di missing data values.

    PS: nei test sopra la classe 0 è quella delle stelle, la 1 quelle delle galassie.

    2 thoughts on “Astronomical Data, Missing Values and SVC

    1. Sicuro di non aver fatto errori? a me i risultati sembrano
      un po’ troppo buoni. Non ci sara` una feature che ha una correlazione altissima col risultato?

    2. Sono rimasto abbastanza scosso pure io dai risultati, ma, avendo seguito alcune pubblicazioni per estrarre i dataset dallo SkyServer, è ragionevole pensare di aver estratto delle feature non troppo distintive, ovvero che pilotano fortemente il risultato.

      Ulteriore prova che viene a confortarmi è il fatto che eseguendo il Co-clustering (diversi schemi, diversi parametri, etc.) non sono riuscito ad ottenere lo stesso risultato in alcun modo. Anzi, ho avuto diverse difficoltà a separare i dati.

      In altri casi in cui avevo dei risultati troppo buoni, invece, entrambi i metodi mi davano un’accuratezza altissima, evidenziando così una banalità del dataset o cmq la presenza di una particolare feature.

      Per esser certi, è chiaro, eseguirò altri esperimenti e sottoporrò i dataset all’esame del prof Longo.