K veloce significa algoritmo per 10 ^ 10 punti?


14

Sto cercando di fare un cluster di k-medie su un insieme di punti 10-dimensionali. Il trucco: ci sono 10 ^ 10 punti .

Sto cercando solo il centro e le dimensioni dei cluster più grandi (diciamo da 10 a 100 cluster); Non mi interessa in quale cluster finisce ogni punto. L'uso specifico di k-significa non è importante; Sto solo cercando un effetto simile, qualsiasi k-media approssimativa o algoritmo correlato sarebbe fantastico (minibatch-SGD significa, ...). Poiché GMM è in un certo senso lo stesso problema di k-mean, anche fare GMM con le stesse dimensioni è interessante.

Su questa scala, il sottocampionamento dei dati probabilmente non modifica significativamente il risultato: le probabilità di trovare gli stessi 10 cluster principali usando un campione di 1/10000 di dati sono molto buone. Ma anche allora, questo è un problema di 10 ^ 6 punti che è sopra / oltre il limite di trattabile.


1
Diversi algoritmi sono descritti nel libro "Mining of Massive Dataset", che puoi scaricare gratuitamente qui . Leggi il capitolo 7 "Clustering".
lanenok,

Risposte:


12

k- medie si basa sulle medie .

Modella i cluster usando i mezzi, e quindi il miglioramento aggiungendo più dati è marginale. L'errore della stima media si riduce di 1 / sqrt (n); quindi l'aggiunta di più dati paga sempre meno ...

Le strategie per dati così grandi ruotano sempre attorno al campionamento:

Se vuoi un runtime sublineare, devi fare un campionamento!

In effetti, Mini-Batch-Kmeans ecc. Fanno esattamente questo: campionano ripetutamente dal set di dati.

Tuttavia, anche il campionamento (in particolare il campionamento imparziale) non è esattamente gratuito ... di solito, dovrai leggere i tuoi dati in modo lineare per campionare, perché non hai accesso casuale ai singoli record.

Andrei con l'algoritmo di MacQueen. È online; per impostazione predefinita esegue un singolo passaggio sui dati (anche se è popolare iterarlo). Non è facile da distribuire, ma immagino che tu possa permetterti di leggere linearmente i tuoi dati dire 10 volte da un SSD?


Non sapevo dell'algoritmo online di MacQueen! Di solito ottiene gli stessi risultati di K "classici"? Che dire invece dell'utilizzo del campionamento del serbatoio? In questo modo OP ha un campione su cui rieseguire K-medie nel caso in cui debbano essere testati più valori di K.
Victor Ma,

6

Come commento laterale nota che l'uso di K-medie per i dati 10D potrebbe finire nel nulla secondo la maledizione della dimensionalità. Naturalmente varia leggermente a seconda della natura dei dati, ma una volta che ho provato a determinare la soglia in cui K-Means inizia a comportarsi in modo strano rispetto alla dimensione, ho ottenuto qualcosa come 7D. Dopo 7 dimensioni ha iniziato a perdere i cluster corretti (i miei dati sono stati generati manualmente in base a 4 distribuzioni gaussiane ben separate e ho usato la funzione kmeans MATLAB per il mio piccolo esperimento).


Questo è possibile e, ovviamente, dipende sempre dai dati. Tuttavia, dato che il poster ha 10 ^ 10 (presumibilmente indipendenti) campioni, sembra che 10 dimensioni non siano un problema troppo grande qui.
Ryan J. Smith,

2
Grazie per il tuo commento @ RyanJ.Smith. il tuo commento è esattamente nella mia stessa direzione. Non ho visto nulla riguardo a questo problema nel post. E circa il numero di campioni; tuttavia ha molti punti di esempio che potrebbe ancora rimanere bloccato nel problema della dimensionalità. Penso che tu stia discutendo il lato opposto del Problema di dimensione del campione basso che ritengo non sia valido. Se ha dati ad alta dimensione, le dimensioni ridotte del campione saranno un problema, ma penso che una grande quantità di dati non significhi necessariamente nulla.
Kasra Manshaei,

10 dimensioni non sono ancora molte.
Ha QUIT - Anony-Mousse

1
Come determini il mio amico? quello che ho detto è stato il risultato di un esperimento progettato per rispondere a una domanda del genere, ma NON PUO 'rispondere in generale! Cosa contiene esattamente "molto" nel tuo commento? dipende da molte circostanze, come ho detto nella mia risposta. in alcune situazioni 10D potrebbe essere problematico.
Kasra Manshaei,
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.