algoritmo di clustering per dati non dimensionali


12

ho un set di dati di migliaia di punti e un mezzo per misurare la distanza tra due punti qualsiasi, ma i punti di dati non hanno dimensionalità. Voglio un algoritmo per trovare centri di cluster in questo set di dati. immagino che, poiché i dati non hanno dimensioni, un centro cluster potrebbe essere costituito da più punti dati e una tolleranza e l'appartenenza all'interno del cluster potrebbe essere determinata dalla media della distanza di un punto dati da ciascun punto dati nel centro cluster.

per favore perdonami se questa domanda ha una soluzione ben nota, so ben poco di questo tipo di problema! la mia ricerca (molto limitata) ha rivelato solo algoritmi di clustering per dati dimensionali, ma mi scuso in anticipo se ho perso qualcosa di ovvio.

grazie!


Perché la non dimensionalità rende speciale questo problema?
Raffaello,

1
Alcuni algoritmi che ho visto per il clustering (in realtà solo k-mean) richiedono la generazione di punti di dati casuali come seed, il che non è possibile con dati senza dimensioni. Pertanto, il requisito speciale è che i centri di cluster debbano essere rappresentati da una serie di punti dati esistenti (forse ponderati).
Paintcan,

Risposte:


15

kkkk

k

Entrambi questi problemi sono NP-difficili in generale e sono difficili da approssimare all'interno di un fattore arbitrario. Nota che se lasci cadere la condizione di essere una metrica, le cose peggiorano molto in termini di approssimabilità.

k

In definitiva, come con la maggior parte dei problemi di clustering, la scelta finale dipende dall'applicazione, dalla dimensione dei dati e così via.


3
Grazie per la panoramica rapida e chiara. Mi ci vorranno almeno alcuni giorni per determinare se hai risposto alla mia domanda. Sembra che ho molto da imparare prima di capire sufficientemente il mio problema :)
Paintcan,

5

C'è anche un cluster di correlazione , che ha come informazioni di input per ciascuna coppia di elementi che indica se appartengono allo stesso cluster o a cluster diversi.


sì, questo è un altro buon esempio. E ovviamente Warren è un esperto in questo! Non so se l'ingresso dell'OP fosse +/- o se potesse essere convertito tramite soglia. in tal caso, questa è sicuramente un'opzione praticabile.
Suresh Venkat,

5

Se stai solo cercando buone prestazioni empiriche, l'algoritmo di propagazione dell'affinità di solito funziona meglio dei k-mediani. C'è codice disponibile in diverse lingue e le pubblicazioni che descrivono l'algoritmo in modo più dettagliato sono qui: http://www.psi.toronto.edu/index.php?q=affinity%20propagation

is(i,ci)

scicis(i,i)


5

La tua domanda sembra implicare che stai cercando un algoritmo con tempo di calcolo decente. Data la dimensione dei tuoi vertici (o punti) sarebbe creare una rappresentazione grafica ponderata dei tuoi dati e usare Markov Cluster Algorithm (MCL) per raggruppare il grafico.

http://www.micans.org/mcl/

MCL si basa su percorsi casuali attraverso grafici ponderati e non ponderati per trovare sottografi densi. È in grado di gestire grafici di grandi dimensioni ed è stato utilizzato in molti programmi bioinformatici ben noti e ben utilizzati (come BLAST). -Boucher


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.