Software per clustering analysis
Salve.
Mi servirebbe sapere dove posso trovare dei software open source per fare una clustering analysis in quanto, avendo una matrice grossa, con numerose variabili, è impensabile che io possa fare manualmente questo lavoro di divisione in cluster del campione. Sapevo che esistevano software che facevano questo tipo di lavoro ma non sono riuscito fino adesso a trovarne.
Grazie per l'eventuale aiuto.
Ciao.
Mi servirebbe sapere dove posso trovare dei software open source per fare una clustering analysis in quanto, avendo una matrice grossa, con numerose variabili, è impensabile che io possa fare manualmente questo lavoro di divisione in cluster del campione. Sapevo che esistevano software che facevano questo tipo di lavoro ma non sono riuscito fino adesso a trovarne.
Grazie per l'eventuale aiuto.
Ciao.
Risposte
Se non ricordo male con R dovrebbe essere possibile farla

Ok. Ho visto che si tratta di un software abbastanza semplice da utilizzare leggendo il manuale.
Il problema è che vorrei fare un clustering adesso ed ho visto che c'è una riga di codice apposita hclust(d, method="complete", members=NULL) dove d è la matrice delle distanze ottenuta a partire dalla matrice dati, method indica il metodo di clustering scelto. Members non so cosa significhi comunque credo che si un dettaglio insignificante
.
Il mio problema però è quello di costruirmi la matrice delle distanze a partire dalla matrice dei dati. Anche qui c'è il comando apposito dist(x, method="euclidean", diag=FALSE, upper=FALSE, p=2), dove x è il nome del file con estensione data in cui si trova immagazzinata la matrice dei dati ma deve essere in formato data, almeno ho letto così. Come fare a trasformarlo in formato data visto che si tratta di un file con estensione txt ottenuto salvando un file Excel in formato tsv (testo delimitato da tabulazione)?
Io riesco solo ad aprirlo con il software mediante il comando apri (icona della cartella aperta che solitamente indica nei programmi la funzionalità che consente di aprire un file preso dal computer locale.) Provo a salvarlo in formato data ma nell'elenco delle tipologie di file consentite non compare la tipologia data. Che fare? Qualcuno potrebbe suggerirmi una soluzione?
E poi vorrei sapere, se non è troppo, il tipo di output fornito da R quando si fa il clustering di un insieme di dati. Cioè andrò incontro ad un dendrogramma relativo al clustering realizzato oppure qualcos'altro, tipo la gerarchia delle partizioni ottenute con il clustering? Cioè l'output è di tipo grafico o è un elenco insiemistico? Spero di essermi spiegato chiaramente o, almeno, in modo accettabile.
Grazie.
Ciao.
Il problema è che vorrei fare un clustering adesso ed ho visto che c'è una riga di codice apposita hclust(d, method="complete", members=NULL) dove d è la matrice delle distanze ottenuta a partire dalla matrice dati, method indica il metodo di clustering scelto. Members non so cosa significhi comunque credo che si un dettaglio insignificante

Il mio problema però è quello di costruirmi la matrice delle distanze a partire dalla matrice dei dati. Anche qui c'è il comando apposito dist(x, method="euclidean", diag=FALSE, upper=FALSE, p=2), dove x è il nome del file con estensione data in cui si trova immagazzinata la matrice dei dati ma deve essere in formato data, almeno ho letto così. Come fare a trasformarlo in formato data visto che si tratta di un file con estensione txt ottenuto salvando un file Excel in formato tsv (testo delimitato da tabulazione)?
Io riesco solo ad aprirlo con il software mediante il comando apri (icona della cartella aperta che solitamente indica nei programmi la funzionalità che consente di aprire un file preso dal computer locale.) Provo a salvarlo in formato data ma nell'elenco delle tipologie di file consentite non compare la tipologia data. Che fare? Qualcuno potrebbe suggerirmi una soluzione?
E poi vorrei sapere, se non è troppo, il tipo di output fornito da R quando si fa il clustering di un insieme di dati. Cioè andrò incontro ad un dendrogramma relativo al clustering realizzato oppure qualcos'altro, tipo la gerarchia delle partizioni ottenute con il clustering? Cioè l'output è di tipo grafico o è un elenco insiemistico? Spero di essermi spiegato chiaramente o, almeno, in modo accettabile.
Grazie.
Ciao.

Continuo a non riuscire nell'operazione. Sono riuscito a costruirmi il file .data, cambiando manualmente l'estensione senza usare il comando read.delim2. Ma non capisco come possa fare ad assegnare il nome x, cioè una stringa generica, alla matrice per richiamarla poi come primo argomento all'interno della funzione dist().
Inoltre, se utilizzo la riga read.delim2() ottengo una matrice formata da tanti elementi NA NA NA, che non so cosa significhino. Cioè non dovrei ottenere la matrice di partenza, anziché questa?

Inoltre, se utilizzo la riga read.delim2() ottengo una matrice formata da tanti elementi NA NA NA, che non so cosa significhino. Cioè non dovrei ottenere la matrice di partenza, anziché questa?
Innanzitutto ti ringrazio per la mano importante che mi stai dando.
Vediamo se ho capito quello che mi hai detto.
L'assegnazione di variabile si effettua con la freccia al contrario?
Str() cosa restituisce, cosa significa?
ciao.
Vediamo se ho capito quello che mi hai detto.
L'assegnazione di variabile si effettua con la freccia al contrario?
Str() cosa restituisce, cosa significa?
ciao.
"Sergio":
La vera difficoltà con R è che bisogna conoscere... la statistica per poterlo usare.
Cosa ti fa pensare che io non conosca la statistica

Poi la funzione str() mi dà una tavola di valori che riporto nell'immagine seguente:

difficilmente riconducibile alla matrice dati di partenza in quanto le colonne rappresentano dei numeri che non figurano nella matrice dati. Cioè sono numeri diversi.

A fronte di questa matrice dati:

C'è una notevole differenza.

C'è una notevole differenza.
Allora, ottengo la seguente schermata, quando eseguo la seguente riga di codice:
setwd("cartella_mio_file”)
> Matrice_dati<- read.delim2("miofile.txt", header = FALSE, dec=",")
> str(Matrice_dati)

mentre la matrice dati che ho nel file con estensione txt è la seguente:

Come si può vedere il software riesce a caricare la matrice dati fino alle righe 12 e 13 dove incontra inspiegabilmente delle cose che interpreta come stringhe definite Factor. Non capisco dove stia l'errore.
Poi, come si vede dal file txt, le righe della matrice dati vanno a capo occupando la riga successiva.fino a metà. Questo non sembra creare problemi al software perchè comunque riesce a caricare i dati delle prime 11 righe tranquillamente. Quindi non credo che sia questa mancanza di spazio con conseguente andata a capo che crei problemi al computer. Sarà qualcos'altro che non riesco ad individuare. o ci ho impiegato un intero pomeriggio ieri ma non sono riuscito a trovare cosa non vada nel file originario. Potreste darmi una mano a capire assieme cosa possa esserci.
Inoltre si vede che alla fine ci sono righe con tanti NA che significa, secondo quanto detto da Sergio, che il software si aspettava di trovare dei valori e non ha trovato nulla. Ma intanto nelle ultime due righe ci sono i valori, quindi non capisco.
setwd("cartella_mio_file”)
> Matrice_dati<- read.delim2("miofile.txt", header = FALSE, dec=",")
> str(Matrice_dati)

mentre la matrice dati che ho nel file con estensione txt è la seguente:

Come si può vedere il software riesce a caricare la matrice dati fino alle righe 12 e 13 dove incontra inspiegabilmente delle cose che interpreta come stringhe definite Factor. Non capisco dove stia l'errore.
Poi, come si vede dal file txt, le righe della matrice dati vanno a capo occupando la riga successiva.fino a metà. Questo non sembra creare problemi al software perchè comunque riesce a caricare i dati delle prime 11 righe tranquillamente. Quindi non credo che sia questa mancanza di spazio con conseguente andata a capo che crei problemi al computer. Sarà qualcos'altro che non riesco ad individuare. o ci ho impiegato un intero pomeriggio ieri ma non sono riuscito a trovare cosa non vada nel file originario. Potreste darmi una mano a capire assieme cosa possa esserci.
Inoltre si vede che alla fine ci sono righe con tanti NA che significa, secondo quanto detto da Sergio, che il software si aspettava di trovare dei valori e non ha trovato nulla. Ma intanto nelle ultime due righe ci sono i valori, quindi non capisco.
Ciao Sergio, io ho provato a caricare il file, ma non mi accetta nessun formato, nè txt, nè PDF, nè xls.
Non capisco come fare a fartelo avere.
Ciao.
Non capisco come fare a fartelo avere.
Ciao.
Ho pensato di usare dropbox.
Eccoti il link al quale trovi il file.
https://www.dropbox.com/s/xic4kes7m2qbe ... E_DATI.txt
Grazie.
Eccoti il link al quale trovi il file.
https://www.dropbox.com/s/xic4kes7m2qbe ... E_DATI.txt
Grazie.
@Sergio
Sono riuscito ad ottenere la matrice delle distanze, grazie alle correzioni sulla matrice dati che Sergio mi ha detto. Quest'ultima risulta scomposta in diverse matrici, di ognuna delle quali è riportata solo la parte sottostante la diagonale principale. Tutte comprendono le righe fino all'ultima, ma ognuna parte da una riga diversa e solo un certo numero di colonne, pari al numero di osservazioni.
Posto i seguenti link per maggiore chiarezza. Si tratta dei primi due blocchi:
https://www.dropbox.com/s/eni0vejlsgft710/Matrice_distanze_blocco_1.jpg
https://www.dropbox.com/s/b8etc552m6faat0/Matrice_distanze_blocco_2.jpg
Penso che ogni blocco arrivi ad una certa colonna ed il successivo riparta dalla colonna successiva all'ultima del blocco precedente e considerando solo a partire dalla riga con indice maggiore della colonna di ripartenza.
Questo perché la matrice delle distanze è banalmente inferiormente triangolare, con gli elementi della diagonale tutti nulli.
Spero di essere stato chiaro e di avere interpretato corretttamente.
Poi ho tentato di procedere alla clusterizzazione, utilizzando il metodo completo e partendo dalla matrice delle distanze euclidee, che è quella che ho ottenuto, riportandone i primi due blocchi.
Implementando la riga di codice" hclust(d, method="complete", members=NULL)", la situazione che si presenta è la seguente:
https://www.dropbox.com/s/36t2lx1bs6wb76g/Hclust.jpg
Non mi è chiaro il significato delle righe blu.
In realtà con il comando "hclust", non dovrei ottenere il dendrogramma che, poi, devo procedere a tagliare con un criterio scelto prima?
Qualcuno ha un'idea in merito?
Grazie.
Sono riuscito ad ottenere la matrice delle distanze, grazie alle correzioni sulla matrice dati che Sergio mi ha detto. Quest'ultima risulta scomposta in diverse matrici, di ognuna delle quali è riportata solo la parte sottostante la diagonale principale. Tutte comprendono le righe fino all'ultima, ma ognuna parte da una riga diversa e solo un certo numero di colonne, pari al numero di osservazioni.
Posto i seguenti link per maggiore chiarezza. Si tratta dei primi due blocchi:
https://www.dropbox.com/s/eni0vejlsgft710/Matrice_distanze_blocco_1.jpg
https://www.dropbox.com/s/b8etc552m6faat0/Matrice_distanze_blocco_2.jpg
Penso che ogni blocco arrivi ad una certa colonna ed il successivo riparta dalla colonna successiva all'ultima del blocco precedente e considerando solo a partire dalla riga con indice maggiore della colonna di ripartenza.
Questo perché la matrice delle distanze è banalmente inferiormente triangolare, con gli elementi della diagonale tutti nulli.
Spero di essere stato chiaro e di avere interpretato corretttamente.
Poi ho tentato di procedere alla clusterizzazione, utilizzando il metodo completo e partendo dalla matrice delle distanze euclidee, che è quella che ho ottenuto, riportandone i primi due blocchi.
Implementando la riga di codice" hclust(d, method="complete", members=NULL)", la situazione che si presenta è la seguente:
https://www.dropbox.com/s/36t2lx1bs6wb76g/Hclust.jpg
Non mi è chiaro il significato delle righe blu.
In realtà con il comando "hclust", non dovrei ottenere il dendrogramma che, poi, devo procedere a tagliare con un criterio scelto prima?
Qualcuno ha un'idea in merito?
Grazie.
Scusate. Il file del clustering è stato spostato e si trova a questo indirizzo:
https://www.dropbox.com/s/4y0zuahmxl7kx8m/Hclust.jpg
Grazie.
Ciao.
https://www.dropbox.com/s/4y0zuahmxl7kx8m/Hclust.jpg
Grazie.
Ciao.
Ho fatto una domanda troppo difficile?