jsammon

Cos'è

jsammon implementa l'algoritmo di Sammon [1] per la visualizzazione in 2D di punti in spazi N-dimensionali.

L'algoritmo procedere per iterazioni, ad ogni passo riducendo la differenza tra le distanze apparenti (in 2D) e quelle reali tra punto e punto in N D.

Uso

Dopo aver compilato le varie classi, basta lanciare
java jsammon dataset
apparirà la finestra con la proiezione del dataset lungo le due dimensioni a maggior varianza (N.B.: la varianza viene calcolata dopo una normalizzazione dei dati).

Ogni punto assume un colore corrispondente alla sua classe di appartenenza; spostando il puntatore vicino ad un punto se ne ottiene, nella riga in basso, la rappresentazione completa.

I pulsanti Up, Down, Left, Right, Zoom In e Zoom Out permettono di navigare nella rappresentazione 2D; Autoscale riporta il sistema nelle condizioni di visualizzare tutti i punti nel canvas.

Premendo il pulsante "Iterate" vengono compiute tante iterazioni dell'algoritmo di Sammon quanto è indicato nella casella "times" immediatamente sotto al pulsante.

Il "Magic Factor di Sammon (MF) è fisso a 0.3.

Formato del file di dati

Il file di dati è un semplice file di testo, con un record per riga; ogni record è composto da un certo numero di coordinate, separate da spazi, e da un intero, in ultima colonna, che identifica la classe (colore) del punto.

Insieme al programma sono forniti alcuni dataset di esempio. helix.data e iris.data sono gli stessi dataset utilizzati nell'articolo di Sammon, mentre vehicle.data è un sottoinsieme di un dataset di un'applicaizone reale.

Uso e ditribuzione

Essendo stato realizzato in ambito accademico, il suo uso e distribuzione sono assolutamente liberi.

Ringraziamenti

Ringraziamenti a Sergio Caggese che ha steso buona parte del codice "core".

Riferimenti

[1] J.W. Sammon "A nonlinear mapping for data structure analisys", IEEE Transactions on computers, vol.C-18, May 1969