Astrophysics Dataset: Pandora

Inizio i lavori sul dataset Pandora fornitomi dal prof. Longo, basandomi sulle sue direttive.

  • Verrà usato un sottoinsieme delle colonne
  • Un primo clustering verrà effettuato depurando il dataset da missing values
  • Un successivo clustering verrà effettuato sul dataset non depurato
  • I due clustering verranno confrontati, utilizzando il primo come baseline di riferimento.
  • Maggiori dettagli sul dataset saranno disponibili al più presto.

    Il clustering verrà affrontato con Bregman Co-clustering, per affrontare il problema dei missing values.
    Il metodo di aggiornamento dei mediodi/centroidi sarà il Local Search, che evita minimi locali e ci permette, partendo da un numero iniziale sovrastimato di cluter, di “scovare” il numero effettivo di cluster (o nei casi difficili una buona approssimazione di esso), lavorando per raffinamenti successivi.
    In questo esperimento l’inizializzazione del co-clustering sarà lasciata casuale.

    In successive prove proveremo ad utilizzare l’inizializzazione spettrale proposta in

    per migliorare la qualità del risultato finale.

    Infine, essendo presenti valori negativi nella matrice, l’istanza di Co-clustering basata su di divergenza KL e Mutua Informazione non potrà essere utilizzata

    SVC: politica per classificazione BSV

    L’algoritmo di Cluster Assignment usato

    come tutti gli altri proposti in letteratura non tratta esplicitamente la classificaizione dei Bounded Support Vector, ovvero di quei punti che, per effetto del valore della costante di margine morbido, finiscono fuori dalla sfera di descrizione del dominio anche se in realtà fanno parte di una delle classi del problema.

    Il Cone Cluster Labeling prevede due passi:

    • classificazione dei SV
    • classificazione di tutti gli altri punti in relazione ai SV

    che di fatto comprende anche i BSV in “tutti gli altri punti”.

    Si è scelto di modificare in questo modo l’algoritmo:

    • classificazione dei SV
    • classificazione di tutti gli altri punti (tranne i BSV) in relazione ai SV
    • classificazione dei BSV in relazione a tutti gli altri punti già classificati

    Nel caso dell’IRIS data set, questa modifica ha portato l’accuratezza da un valore di 89,333% a un valore del 90%.

    Co-clustering – Synthetic Dataset Test #1

    Macchina usata:
    PowerPC G4, 1.5GHz, 768MB RAM, Mac OS X

    Software usato:

    Dataset usato:
    Il dataset usato in questo test è un dataset sintetico, generato grazie a

    Il dataset è così composto:
    Oggetti: 1000
    Attributi: 10
    Classi: 5, per un totale di 888 punti (Cluster 0: 327, Cluster 1: 134, Cluster 2: 162, Cluster 3: 132, Cluster 4: 133)
    Punti di disturbo: 112 (punti non classificabili)

    Algoritmo di co-clustering usato: Euclidean Distance Based, Minimum Sum Squared, Information Theoretic

    Problemi: Da questo primo test condotto su un dataset disturbato, lo schema di co-clustering sembra non essere pensato per identificare il rumore e separarlo dal resto della classificazione, col risultato che tutte le istanze di co-clustering tendono a classificare il rumore in una delle cinque classi richieste, sfalsando i risultati.

    Eliminazione punti di rumore: Eliminando i punti di rumore, abbiamo ottenuto un dataset di 888 punti e l’algoritmo (Euclidean Distance Based, con 5 co-cluster richiesti) ha separato perfettamente le 5 classi senza alcun errore in un tempo così espresso:
    User = 0 second(s) 138552 ms
    System = 0 second(s) 6630 ms
    Time/Run = 0.138552 second(s)

    Co-clustering – Real World Dataset Test #2

    Macchina usata:
    PowerPC G4, 1.5GHz, 768MB RAM, Mac OS X

    Software usato:

    Dataset Usato:
    Mushrooms Database
    Number of instances: 8124
    Number of Attributes: 22
    2480 missing values for attribute #12
    Original Class Distribution: edible: 4208 (51.8%), poisonous: 3916 (48.2%)
    Mushroom records drawn from The Audubon Society Field Guide to North
    American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf
    Donor: Jeff Schlimmer (Jeffrey.Schlimmer@a.gp.cs.cmu.edu)
    Date: 27 April 1987

    Algoritmo di co-clustering usato: Minimum Sum Squared Residue

    Prova #1
    Richiesti 2 cluster di riga e 1 di colonna. Totale: 2 co-cluster

    Tempo impiegato: User = 2 second(s) 127370 ms, System = 0 second(s) 40949 ms, Time/Run = 2.12737 second(s)

    Risultato: 3670 elementi nella classe “poisonous”, 4454 elementi nella classe “edible”.

    Percentuale d’errore (elementi non classificati correttamente): ~3%

    Prova #2
    Richiesti 2 cluster di riga e 2 di colonna. Totale: 4 co-cluster

    Tempo impiegato: User = 2 second(s) 158490 ms, System = 0 second(s) 40654 ms, Time/Run = 2.15849 second(s)

    Risultato: 3915 elementi nella classe “poisonous”, 4209 elementi nella classe “edible”.

    Percentuale d’errore: ~1.23 x 10^-4 (1 solo elemento è stato classificato erroneamente)

    Co-clustering – Real World Dataset Test #1

    Macchina usata:
    PowerPC G4, 1.5GHz, 768MB RAM, Mac OS X

    Software usato:

    Dataset usato:
    Iris Plant Database
    From Fisher, 1936
    3 classes, 4 numeric attributes, 150 instances
    1 class is linearly separable from the other 2, but the other 2 are not linearly separable from each other

    Algoritmo di co-clustering usato: Euclidean Distance Based.

    Prova #1:
    Richiesti 3 cluster di riga (sulle righe abbiamo gli oggeti, sulle colonne gli attributi) e 1 solo cluster di colonna. In tal modo non viene effettuato alcun feature clustering (che ricordiamo è contestuale al data clustering).

    Tempo impiegato: User = 0 second(s) 9193 ms, System = 0 second(s) 2709 ms, Time/Run = 0.009193 second(s)

    Risultato: Co-Cluster 1: 54 elementi di riga, Co-Cluster 2: 40 elementi di riga, Co-Cluster 3: 56 elementi di riga. Avendo specificato 1 solo cluster per le colonne, tutti i co-cluster hanno gli stessi elementi di colonna.

    Conclusioni: L’algoritmo è riuscito a separare i cluster sovrapposti (classi 2 e 3 del dataset), ma ha commesso svariati errori di classificazioni. Al cluster 2 mancano 10 elementi, 4 dei quali sono nel primo cluster e i restanti 6 nel terzo cluster.

    Prova #2:
    Richiesti 3 cluster di riga e 2 cluster di colonna.

    Tempo impiegato: User = 0 second(s) 8397 ms, System = 0 second(s) 3042 ms, Time/Run = 0.008397 second(s)

    Risultato: Le tre classi sono state perfettamente separate. Nello specifico, sono stati prodotti 6 co-cluster, poiché, detto C il numero di cluster di colonna, e R il numero di cluster di riga, si ottengono sempre C*R co-cluster. Per ogni cluster di riga chiesto, si ottengono in pratica C co-cluster.

    Conclusioni: Separare 2 cluster (classi 2 e 3 del dataset in esame) non linearmente separabili è notevole per un algoritmo non kernel-based.

    Dataset sintetici per Clustering Benchmark

    Molto spesso, nell’eseguire i test di algoritmi di clustering, è molto utile avere a disposizione degli insiemi di dati campione sintetici, ovvero creati artificialmente e che non rispecchiano dei dati reali.

    A tale scopo molto utile si rivela il lavoro fatto dal Center for Data Engineering, International Institute of Information Technology, Hyderabad, INDIA

    Lo strumento riesce a produrre dataset sintetici molto rapidamente; in genere un insieme con spazio delle feature 2D, con un milione di punti e centinaia di cluster, viene prodotto in pochi secondi.

    Per ogni insieme prodotto, viene fornito dettagli sul clustering, come:

    - quali punti appartengono a quali cluster
    - quanti cluster
    - quanti punti per cluster
    - forma dei cluster
    - etc.