In the Documents section are available the slides entitled: “Novel Clustering Techniques: Support Vector Methods and Minimum Bregman Information principle”
SVC has been explained with more care because it still is a very experimental technique.
Diario di lavoro della tesi di Vincenzo Russo / Work-log of Vincenzo Russo’s Thesis
From the category archives:
In the Documents section are available the slides entitled: “Novel Clustering Techniques: Support Vector Methods and Minimum Bregman Information principle”
SVC has been explained with more care because it still is a very experimental technique.
{ 0 comments }
This is the continuation of the experiments started few days ago.
Two other datasets have been involved in this type of experiments. Both of them are Astrophysics datasets, more precisely two dataset containing Stars and Galaxies.
Star/Galaxies separation is a problem usually tackled with supervised learning methodologies. In our work several clustering testes are conducted on such type of data.
These two datasets was chosen to be quite simple to separate, because we are interested in the robustness with respect missing values.
Starting from the original datasets, I have created eight variants for each of them, in this way
The experiments was done with Euclidean Co-clustering (Information-theoretic cannot work with negative values) and SVC.
An archive with all results is available for download (it contains also the results of the previous stage).
In the files above:
- “MV� stands for “Missing Values�
- “FC� stands for “Feature Clusters�
- FC1 means no feature clustering
- FC2 means two clusters of feature requested
- FC3 means three clusters of feature requested
- CC stands for Co-clustering
{ 0 comments }
Few days ago I made ready a tool to induce pseudo-random missing values within datasets. This tool allow us to test the robustness of both Bregman Co-clustering and SVC with respect to missing values.
The tool accepts two parameters: the fraction of objects that will be affected by the process, and the list of features involved.
As is my custom, I started this series of experiments with the IRIS data. So, I created these IRIS dataset variants
- IRIS 5a: 5% of objects with missing values. One feature (#3) involved.
- IRIS 5b: 5% of objects with missing values. Two features (#3, #4) involved.
- IRIS 10a: 10% of objects with missing values. One feature (#3) involved.
- IRIS 10b: 10% of objects with missing values. Two features (#3, #4) involved.
- IRIS 20a: 20% of objects with missing values. One feature (#3) involved.
- IRIS 20b: 20% of objects with missing values. Two features (#3, #4) involved.
- IRIS 30a: 30% of objects with missing values. One feature (#3) involved.
- IRIS 30b: 30% of objects with missing values. Two features (#3, #4) involved.
We recall the IRIS data have 4 features.
Here you can download the results.
The experiments was done with Co-clustering and SVC. Information-theoretic co-clustering results are not in the files above, because they were irrelevant (very poor performance).
In the files above:
- “MV” stands for “Missing Values”
- “FC” stands for “Feature Clusters”
- FC1 means no feature clustering
- FC2 means two clusters of feature requested.
- CC stands for Co-clustering
{ 1 comment }
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):
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:
.
Risultati di SVC sul primo dataset (ottenuto in un solo ciclo di SVC):
Class 0
TP: 2000 FP: 318
FN: 0 TN: 2682Precision: 86.2813 - Recall: 100 - F1: 92.6355
Class 1
TP: 2682 FP: 0
FN: 318 TN: 2000Precision: 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: 1484Precision: 99.5449 - Recall: 100 - F1: 99.7719
Class 1
TP: 1484 FP: 0
FN: 16 TN: 3500Precision: 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 comments }
Uno degli obiettivi di tesi è avere buone prestazioni su high dimensional dataset. L’altro è quello di poter combinare le due tecniche studiate in maniera concreta e con buoni risultati.
Il test illustrato di seguito coinvolte entrambi i punti.
Il dataset coinvolto è stato l’Internet Advertisement dall’UCI repository of Machine Learning. Ne cito la descrizione
This dataset represents a set of possible advertisements on Internet pages. The features encode the geometry of the image (if available) as well as phrases occuring in the URL, the image’s URL and alt text, the anchor text, and words occuring near the anchor text. The task is to predict whether an image is an advertisement (”ad”) or not (”nonad”).
Number of Instances: 3279 (2821 nonads, 458 ads)
Number of Attributes: 1558One or more of the first three features are missing in 28% of the instances.
Trattiamo dunque con un dataset in 1558D che possiede tra l’altro dei missing values.
Co-clustering
Il test effettuato col solo Co-clustering mette in evidenza i vantaggi dell’implicita capacità di questa tecnica di ridurre la dimensionalità effettuando feature clustering contestuale al data clustering.
Effettuando il test con lo schema 5 e la distanza euclidea, senza richiedere feature clustering, si ottiene quanto segue
Class 1
TP: 223 FP: 98
FN: 223 TN: 2735
Class 2
TP: 98 FP: 223
FN: 98 TN: 2860Class 1 - Precision: 69.47% Recall: 50% F1: 58.148%
Class 2 - Precision: 30.53% Recall: 50% F1: 37.912%Accuracy: 9.79%
Stesso schema, ma con feature clustering (10 cluster di feature richiesti), dà luogo a quanto segue
Class 1
TP: 223 FP: 98
FN: 236 TN: 2722
Class 2
TP: 2722 FP: 236
FN: 98 TN: 223Class 1 - Precision: 69.47% Recall: 48.584% F1: 57.18%
Class 2 - Precision: 92.022% Recall: 96.525% F1: 94.22%Accuracy: 89.814%
La riduzione della dimensionalità ha dato i suoi frutti (ricordiamo che il dataset possiede anche missing values)
SVC
Le risorse computazionali a disposizione insieme con la natura ancora non stabile del software sviluppato per il SVC non ha permesso di effettuare il test del SVC direttamente in 1558D. Ad ogni modo la letteratura riporta un forte degrado di prestazioni all’aumentare delle dimensioni dello spazio vettoriale, poiché allo stesso tempo si rende necessario un numero elevato di SV per la descrizione del contorno dei cluster.
Inoltre la letteratura mostra anche come la PCA perda di efficacia quando si necessita di un certo numero di componenti.
Co-clustering + SVC
Sappiamo che il Co-clustering, durante il processo di clustering, calcola una approssimazione della matrice di dati originale.
Pertanto, abbiamo usato il Co-clustering richiedendo un co-clustering di dimensioni 3279 x 3, ovvero abbiamo richiesto un numero di cluster di riga pari al numero di righe (quindi il numero di oggetti) e un numero di cluster di colonna considerevolmente inferiore al numero di colonne originale (3 feature clusters invece di 1558 features).
Così facendo il Co-clustering calcola una matrice di approssimazione dove ogni riga rappresenta ancora un solo oggetto della matrice originale, ma a differenza dell’originale, questa matrice è in 3D.
Ricordiamo inoltre che il processo di approssimazione genera una matrice priva di missing values.
Abbiamo così preso tale matrice approssimata e usata come input del SVC. Il risultato è stato addirittura superiore (anche se non di molto) al massimo ottenuto col Co-clustering
Class 0
TP: 218 FP: 70
FN: 241 TN: 2750Precision: 75.6944 - Recall: 47.4946 - F1: 58.3668
Class 1
TP: 2750 FP: 241
FN: 70 TN: 218Precision: 91.9425 - Recall: 97.5177 - F1: 94.6481
Accuracy: 90.5154
Tempo macchina
È importante notare che SVC ha impiegato soltanto 0.06 secondi in totale per concludere il processo, trovando il giusto valore di Kernel Width al secondo ciclo. Il Co-clustering ha invece impiegato 117 secondi a concludere il processo (ricordiamo completo anche della sua parte di clustering e non solo del calcolo della matrice approssimata, poiché allo stato attuale il software non permette di scindere le due operazioni).
Abbiamo dunque un totale di 117.06 secondi.
L’SVC su un dataset di 3000 elementi in 20 dimensioni ha impiegato circa 400 secondi per compiere due cicli. E il tempo impiegato cresce all’aumentare delle dimensioni e anche coll’avanzare dei cicli, poiché valori più alti di Kernel Width rallentano il processo di domain description. È facile dunque capire come si potrebbe comportare il solo SVC con un dataset di 1558D.
Conclusioni
Altri test simili erano stati effettuati su dataset troppo piccoli per avere dei risultati significativi.
Questo test mostra come è possibile combinare le due tecniche, sfruttando la capacità di ridurre la dimensionalità e di trattare i missing values dell’uno, e l’accuratezza, la gestione degli outliers e dei cluster di forma arbitraria dell’altro.
Altri test saranno successivamente condotti.
{ 0 comments }
Data la complessità nell’eseguire gli esperimenti con il Co-clustering e al fine di eseguire dei test ben ponderati, ho oggi deciso di eseguire dei test su dataset di dimensioni ridotte per capire la linea da seguire su dataset più complicati.
In riferimento agli esperimenti preliminari già eseguiti, ancora una volta oggetto dei test è l’IRIS data set.
Il test in questione è stato eseguito con lo Squared Euclidean Co-clustering. Nei test preliminari, con tale istanza di Co-clustering si era raggiunta un’accuratezza che oscillava tra l’88% e l’89%.
Nel test di oggi sono stati introdotti missing values nell’IRIS dataset, secondo una politica casuale.
Data la matrice di dati rappresentate il dataset (150 oggetti x 4 attributi), sono stati introdotti, nell’ordine, prima il 5, poi il 10 e poi il 20 per cento di missing values.
Nel primo caso l’accuratezza è stata del 88.667%, praticamente immutata.
Nel secondo caso l’accuratezza è stata del 84%.
Nel terzo caso l’accuratezza è stata del 81%.
Considerando la perdita di informazione introdotta, il Co-clustering ha fornito ugualmente risultati rispettabili, con una perdita di accuratezza non lineare rispetto al numero di missing values introdotti.
In giornata eseguirò altri test simili, per poi ritornare sul Pandora Dataset del prof. Longo e infine passare su un dataset di documenti testuali, come Reuters.
{ 0 comments }
Ottime slide che riassiumono le caratteristiche e le applicazioni del Bregman Framework per il Co-clustering e il Missing-values Prediction.
N.B. nelle slide il termine matrice sparsa è usato secondo l’accezione geometrica classica.
{ 0 comments }
Impegni di lavoro non mi hanno permesso di lavorare al 100% sul test del Pandora Dataset, che data la mole di dati che produce a ogni test, ha necessitato, tra l’altro, la scrittura di strumenti di analisi, seppur abbastanza grezzi, per il momento.
Ad ogni modo, ciò che è possibile fornire allo stato attuale delle cose è il numero di oggetti per cluster, sia nel caso di “Pandora depurato” sia nel caso di “Pandora originale”. Il numero di cluster richiesti in entrambi i casi è stato 21, numero che dovrebbe essere un’ottima stima della realtà , in seguito ai ripetuti test effettuati per stimare appunto tale numero. Ad ogni modo, ripeto ancora una volta, l’obiettivo primario di questi test è assicurare un comportamento stabile del Co-clustering in presenza di oggetti con missing values. Un raffinamento della stima dei cluster potrà essere ottenuto, ad esempio, applicando relative criteria per la valutazione dei risultati (vedere prima bozza tesi)
Di seguito si fa riferimento all’ Information-Theoretic Co-clustering.
Co-clustering di “Pandora depurato” - Richiesti 21 Cluster
2724
5840
8064
8365
11825
12340
15119
15591
18449
19838
20086
22064
23863
25575
26577
26650
28016
30956
33215
40045
40746
435948 tot
Co-clustering di “Pandora originale” - Richiesti 21 Cluster
666
5176
5999
9961
13076
13336
14091
16104
17879
18135
19523
20632
23703
25933
30699
31505
32621
33934
35085
38781
42432
449271 tot (i 13304 oggetti in più sono quelli riportanti missing values)
Di seguito si fa riferimento al Minimum Sum Squared Co-clustering (v. II)
Co-clustering di “Pandora depurato” - Richiesti 21 Cluster
2427
3375
8471
10682
11176
11521
11702
12682
13262
15596
16760
19127
20744
20886
24549
28716
29123
30408
38123
41477
65141
435948 tot
Co-clustering di “Pandora originale” - Richiesti 21 Cluster
1106
1441
2288
3350
3597
5492
8232
8329
13267
16174
19508
19696
21329
23955
24489
26848
29635
41147
55983
56935
66470
449271 tot
Si sta sviluppando un ulteriore strumento di analisi, per l’analisi incrociata dei cluster.
Dato che il Co-clustering non produce i cluster sempre nello stesso ordine, è necessario un’analisi più complessa degli stessi per calcolare una misura di quanto il co-clustering sia rimasto stabile.
Inoltre si stanno riconducendo i test richiedendo 20 cluster, perché dagli ultimi test con 21 cluster, pur non essendoci cluster vuoti, è risultato in media, su 20 iterazioni, 1 cluster singleton.
{ 0 comments }
Innanzitutto, le prime operazioni sul dataset Pandora sono state quelle di “preparazione” all’esperimento:
Partendo da un numero sovrastimato di cluster che si voleva ottenere, 50, si è iniziato a far girare il Co-clustering. Una serie di esecuzioni successive hanno rilevato che 50 era effettivamente sovrastimato, riportando il numero di cluster che restavano vuoti. Questo numero è stato sottratto a 50 ed è stato poi ripetuta l’esecuzione del co-clustering.
Questa operazione è stata ripetuta finché non si è avuta una media di cluster vuoti su 20 iterazioni di al più 1 cluster. Il numero di cluster stimato sembra così essere 20-21.
Già con input di 24 cluster richiesti, su 20 iterazioni si otteneva cmq una media di cluster vuoti di 1.5 cluster.
Ad ogni modo, questa prima fase non si è concentrata sulla stima esatta del numero di cluster, ma sul paragonare il comportamento dei test eseguiti sul dataset Pandora “depurato” dai missing values e quello originale.
Gli stessi test sono stati dunque ripetuti sul dataset originale, dove però al valore -9999.0 è stato sostituito 0, così come indicato dalla letteratura (una serie di test di prova direttamente col valore -9999.0 è stato effettuato e portava all’individuazione di soli 2-3 cluster). Il comportamento è stato praticamente simile, ottenendo la stessa stima di numero di cluster e un valore simile di funzione obiettivo alla fine del processo.
Tra l’altro, un controllo veloce dei cluster in entrambi i testi rivela che il contenuto dei cluster è molto simile, comunicandoci che la qualità del clustering non è stata gravemente inficiata dalla presenza di oggetti con missing values.
I successivi passi saranno questi:
{ 1 comment }
Inizio i lavori sul dataset Pandora fornitomi dal prof. Longo, basandomi sulle sue direttive.
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
@inproceedings{cho04minimum,
author = {H. Cho and I. Dhillon and Y. Guan and S. Sra},
Booktitle = {Proceedings of the Fourth SIAM International Conference on Data Mining},
Date-Added = {2007-04-12 11:30:35 +0200},
Date-Modified = {2007-06-19 15:14:55 +0200},
Keywords = {clustering, co-clustering, bioinformatics},
Month = {April},
Pages = {114–125},
Title = {Minimum sum squared residue co-clustering of gene expression data},
Url = {http://www.cs.utexas.edu/users/inderjit/public_papers/mssrcc_siam.pdf},
Year = {2004},
Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICVRyb290gAGoCwwXGBkaHiVVJG51bGzTDQ4PEBMWWk5TLm9iamVjdHNXTlMua2V5c1YkY2xhc3OiERKABIAFohQVgAKAA4AHXHJlbGF0aXZlUGF0aFlhbGlhc0RhdGFfEFkuLi8uLi8uLi9QYXBlcnMvQ2hvL01pbmltdW0gc3VtIHNxdWFyZWQgcmVzaWR1ZSBjby1jbHVzdGVyaW5nIG9mIGdlbmUgZXhwcmVzc2lvbiBkYXRhLnBkZtIbDxwdV05TLmRhdGFPEQJYAAAAAAJYAAIAAAlEb2N1bWVudHMAAAAAAAAAAAAAAAAAAAAAAAC+zniuSCsAAAA3JQAfTWluaW11bSBzdW0gc3F1YXJlZCAjMkEzOTY0LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACo5ZMI6vZZQREYgAAAAAAADAAMAAAkAAAAAAAAAAAAAAAAAAAAAA0NobwAAEAAIAAC+zlyOAAAAEQAIAADCOqF2AAAAAQAUADclAAA3G4AAALLyAAASxgAAEq0AAgBORG9jdW1lbnRzOm5lbW86RG9jdW1lbnRzOlVuaXZlcnNpdGE6UGFwZXJzOkNobzpNaW5pbXVtIHN1bSBzcXVhcmVkICMyQTM5NjQucGRmAA4AjABFAE0AaQBuAGkAbQB1AG0AIABzAHUAbQAgAHMAcQB1AGEAcgBlAGQAIAByAGUAcwBpAGQAdQBlACAAYwBvAC0AYwBsAHUAcwB0AGUAcgBpAG4AZwAgAG8AZgAgAGcAZQBuAGUAIABlAHgAcAByAGUAcwBzAGkAbwBuACAAZABhAHQAYQAuAHAAZABmAA8AFAAJAEQAbwBjAHUAbQBlAG4AdABzABIAay9uZW1vL0RvY3VtZW50cy9Vbml2ZXJzaXRhL1BhcGVycy9DaG8vTWluaW11bSBzdW0gc3F1YXJlZCByZXNpZHVlIGNvLWNsdXN0ZXJpbmcgb2YgZ2VuZSBleHByZXNzaW9uIGRhdGEucGRmAAATABIvVm9sdW1lcy9Eb2N1bWVudHMAFQACABf//wAAgAbSHyAhIlgkY2xhc3Nlc1okY2xhc3NuYW1loyIjJF1OU011dGFibGVEYXRhVk5TRGF0YVhOU09iamVjdNIfICYnoickXE5TRGljdGlvbmFyeQAIABEAGwAkACkAMgBEAEkATABRAFMAXABiAGkAdAB8AIMAhgCIAIoAjQCPAJEAkwCgAKoBBgELARMDbwNxA3YDfwOKA44DnAOjA6wDsQO0AAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA8E=},
Bdsk-Url-1 = {http://www.cs.utexas.edu/users/inderjit/public_papers/mssrcc_siam.pdf}
}
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
@inproceedings{dhillon:mallela:modha:03,
author = {I. S. Dhillon and S. Mallela and D. S. Modha},
Booktitle = {Proceedings of The Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining ({KDD}-2003)},
Date-Modified = {2007-07-14 15:32:35 +0200},
Keywords = {clustering, co-clustering, relative entropy},
Pages = {89–98},
Title = {Information-Theoretic Co-Clustering},
Url = {http://www.cs.utexas.edu/users/inderjit/public_papers/kdd_cocluster.pdf},
Year = {2003},
Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICVRyb290gAGoCwwXGBkaHiVVJG51bGzTDQ4PEBMWWk5TLm9iamVjdHNXTlMua2V5c1YkY2xhc3OiERKABIAFohQVgAKAA4AHXHJlbGF0aXZlUGF0aFlhbGlhc0RhdGFfED8uLi8uLi8uLi9QYXBlcnMvRGhpbGxvbi9JbmZvcm1hdGlvbi1UaGVvcmV0aWMgQ28tQ2×1c3RlcmluZy5wZGbSGw8cHVdOUy5kYXRhTxECCgAAAAACCgACAAAJRG9jdW1lbnRzAAAAAAAAAAAAAAAAAAAAAAAAvs54rkgrAAAANyNdH0luZm9ybWF0aW9uLVRoZW9yZXRpIzIzQThBNi5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjqKbCBy5VAAAAAAAAAAAAAwADAAAJAAAAAAAAAAAAAAAAAAAAAAdEaGlsbG9uAAAQAAgAAL7OXI4AAAARAAgAAMIHIEUAAAABABQANyNdADcbgAAAsvIAABLGAAASrQACAFJEb2N1bWVudHM6bmVtbzpEb2N1bWVudHM6VW5pdmVyc2l0YTpQYXBlcnM6RGhpbGxvbjpJbmZvcm1hdGlvbi1UaGVvcmV0aSMyM0E4QTYucGRmAA4AUAAnAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAtAFQAaABlAG8AcgBlAHQAaQBjACAAQwBvAC0AQwBsAHUAcwB0AGUAcgBpAG4AZwAuAHAAZABmAA8AFAAJAEQAbwBjAHUAbQBlAG4AdABzABIAUS9uZW1vL0RvY3VtZW50cy9Vbml2ZXJzaXRhL1BhcGVycy9EaGlsbG9uL0luZm9ybWF0aW9uLVRoZW9yZXRpYyBDby1DbHVzdGVyaW5nLnBkZgAAEwASL1ZvbHVtZXMvRG9jdW1lbnRzABUAAgAX//8AAIAG0h8gISJYJGNsYXNzZXNaJGNsYXNzbmFtZaMiIyRdTlNNdXRhYmxlRGF0YVZOU0RhdGFYTlNPYmplY3TSHyAmJ6InJFxOU0RpY3Rpb25hcnkACAARABsAJAApADIARABJAEwAUQBTAFwAYgBpAHQAfACDAIYAiACKAI0AjwCRAJMAoACqAOwA8QD5AwcDCQMOAxcDIgMmAzQDOwNEA0kDTAAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAANZ},
Bdsk-Url-1 = {http://www.cs.utexas.edu/users/inderjit/public_papers/kdd_cocluster.pdf}
}
{ 0 comments }