Metodi di inizializzazione di K-significa raggruppare


11

Sono interessato allo stato dell'arte attuale per la selezione dei semi iniziali (centri di cluster) per K-medie.

Googling porta a due scelte popolari:

  1. selezione casuale di semi iniziali e,
  2. usando la tecnica di selezione KMeans ++: Arthur & Vassilvitskii 2006 k-means ++: I vantaggi di una semina attenta

Esistono altri metodi promettenti di cui qualcuno è a conoscenza, che potrebbero non essere così popolari?

Risposte:


12

Consentitemi, senza andare lontano, semplicemente di copiare e incollare un elenco di opzioni dalla mia funzione !kmini(una macro per SPSS), che si trova nella raccolta "Clustering" qui .

Metodo per creare o selezionare i centri cluster iniziali. Scegliere:

  • RGC - centroidi di sottocampioni casuali . I dati sono partizionati casualmente per knon sovrapposizione, per appartenenza, gruppi e centroidi di questi gruppi sono nominati come centri iniziali. Pertanto, vengono calcolati i centri, non selezionati dai casi del set di dati esistenti. Questo metodo produce centri vicini l'uno all'altro e al centroide generale dei dati.
  • RP - punti selezionati casualmente . kcasi distinti dei dati sono scelti casualmente come centri iniziali.
  • RUNFP - punti più lontani (selezione in corso). I primi kcasi vengono presi come centri e poi durante il resto dei casi del set di dati vengono effettuate progressivamente sostituzioni tra i centri; lo scopo delle sostituzioni è quello di ottenere nei kpunti finali più distanti tra loro nello spazio variabile. Questi punti (casi) che occupano posizioni periferiche nel cloud di dati sono i centri iniziali prodotti. (Il metodo viene utilizzato come predefinito nella procedura SPSS k-mean QUICK CLUSTER. Vedere i dettagli in Algoritmi SPSS. Vedere anche descritto qui ).
  • SIMFP - punti più lontani (selezione semplice). Il primo centro viene selezionato come caso casuale dall'insieme di dati. Il secondo centro viene selezionato come il caso al massimo distante da quel centro. Il 3 ° centro viene selezionato come caso al massimo distante da quei due (dal più vicino dei due), - e così via.
  • KMPP - punti più lontani casuali o k-significa ++. Il primo centro viene selezionato come caso casuale dall'insieme di dati. Anche il 2 ° centro viene selezionato in modo casuale, ma la probabilità di selezione di un caso è proporzionale alla distanza (euclidea quadrata) da quel centro (1 °). Il 3 ° centro viene selezionato anche in modo casuale con la probabilità di selezione proporzionale alla distanza di un caso dal più vicino di quei due centri, e così via. (Arthur, D., Vassilvitskii, S .. K-significa ++: i vantaggi di un'attenta semina. // Atti del 18 ° simposio annuale ACM-SIAM sugli algoritmi discreti. 2007., 1027-1035.)
  • GREP - punti rappresentativi del gruppo . L'idea del metodo: collezionare come centrikcasi più rappresentativi, "vice". Il 1 ° centro viene preso come il caso più vicino al cenroid di dati generali. Quindi il resto dei centri viene selezionato dai punti dati in modo tale che ciascun punto sia considerato se è più vicino (e quanto, in termini di distanza euclidea quadrata) a un insieme di punti rispetto a ciascuno di questi ultimi è uno dei centri già esistenti. Vale a dire che ogni punto viene indicato come candidato per rappresentare un gruppo di punti non ancora sufficientemente rappresentati dai centri già raccolti. Il punto più rappresentativo in questo senso è selezionato come centro successivo. (Kaufman, L. Rousseeuw, PJ Trovare gruppi nei dati: un'introduzione all'analisi dei cluster., 1990. Vedi anche: Pena, JM et al. Un confronto empirico di quattro metodi di inizializzazione per l'algoritmo K-medie // Pattern Recognition Lett. 20 (10), 1999,
  • [Esiste anche un bel metodo, non ancora implementato da me nella macro, per generare kpunti che provengono dall'uniforme casuale ma "meno casuali che casuali", a metà tra casuale e avidità; vedi potenziali basi teoriche per quel metodo]
  • Un altro metodo è fare il clustering gerarchico secondo il metodo di Ward. È possibile farlo su un sottocampione di oggetti se il campione è troppo grande. Quindi i mezzi dei kcluster da esso prodotti sono i semi iniziali per la procedura k-medie. Ward's è preferibile rispetto ad altri metodi di clustering gerarchico perché condivide l' obiettivo target comune con k-medie.

I metodi RGC, RP, SIMFP, KMPP dipendono da numeri casuali e possono cambiare il loro risultato da una corsa all'altra.

Il metodo RUNFP può essere sensibile all'ordine dei casi nell'insieme di dati; ma il metodo GREP non lo è (a parte le occasioni in cui ci sono molti casi, legami, dati identici). Il metodo GREP potrebbe non riuscire a raccogliere tutti i kcentri se kè elevato rispetto al numero di casi nei dati ( n), specialmente quando k>n/2. [La macro informerà se i dati non consentono a tale metodo di raccogliere kcentri]. Il metodo GREP è il più lento, calcola [nella mia implementazione] la matrice delle distanze tra tutti i casi, quindi non andrà bene se ci sono molte decine di migliaia o milioni di casi. Tuttavia, è possibile farlo su un sottocampione casuale dei dati.

Attualmente non sto discutendo quale metodo sia "migliore" e in quale circostanza, perché finora non ho fatto approfonditi sondaggi simulazionali della domanda. Le mie impressioni preliminari e superficiali sono state che il GREP è particolarmente degno (ma è costoso) e che se si desidera un metodo veramente economico ancora abbastanza competitivo, allora solo punti k casuali, RP, è una scelta decente.



Sarei felice di vedere la tua risposta a qualcosa del genere: modi deterministici ma efficaci per inizializzare i K-medie.
Royi

@Royi, se hai una domanda al riguardo, perché non pubblicare la domanda?
ttnphns

Hai molti metodi da condividere? Ho creato alcuni trucchi "Trova i campioni più lontani", ma sono molti quelli su cui vale la pena aprire una domanda?
Royi

Se hai qualcosa che ritieni degno, condividilo sotto forma di una domanda se alla domanda si può fare qualcosa di degno.
ttnphns

5

L'ultima volta che ho fatto una revisione esauriente della letteratura su questo, che è stato ammesso quasi 20 anni fa, le due raccomandazioni principali erano:

  1. Per utilizzare il metodo di Ward (questo è un algoritmo di analisi di cluster gerarchico standard) per trovare i centri iniziali.
  2. Usa avviamenti casuali.

Nelle applicazioni per big data, il metodo di Ward non funziona così bene, sebbene possa essere applicato a un sottocampione.

Ho fatto alcune simulazioni, che non ho mai avuto a che fare con la pubblicazione, e ho scoperto che:

Il principale risultato che ho preso da questo è che l'algoritmo SPSS è sorprendentemente buono, ma se uno ha le risorse, 1000+ punti di partenza casuali sono la strada da percorrere.


Nelle tue simulazioni hai notato cambiamenti nel comportamento di dati ad alta dimensione?
Arin Chaudhuri,

Non che io possa ricordare. Tuttavia, le mie simulazioni non avrebbero usato più di circa 20 variabili, credo. Tuttavia, maggiore è la dimensionalità, maggiore è il numero di avviamenti casuali richiesto che tutto il resto sia lo stesso.
Tim

Una nota: l'algoritmo SPSS predefinito (a parte il collegamento è interrotto) è ciò che ho definito RUNFP nella mia risposta.
ttnphns,

4

Con la nomenclatura ttnphns, ho testato RGC, RP e KMPP su:

  • Punti 2D / 3D
  • sacco di parole da documenti testuali
  • L2

Non consiglio l'RGC perché i centri risultanti sono molto vicini tra loro: la media di molti punti è vicina alla media globale (legge dei grandi numeri). Questo può rallentare molto la convergenza: ci vuole del tempo prima che i cluster inizino a individualizzare.

RP è generalmente buono e lo consiglierei come prima scelta facile.

KMPP è molto popolare e funziona molto bene in piccole dimensioni: rispetto a RP tende a ridurre la probabilità di terminare in un minimo locale.

Tuttavia, quando stavo lavorando su grandi set di dati (1 milione di punti che sono un sacco di parole da documenti testuali di grande dimensione), RP ha leggermente sovraperformato KMPP, nel senso che si è concluso con un numero leggermente inferiore di iterazioni. Ne sono stato sorpreso. Nel set di dati di grandi dimensioni / alta dimensione, la convergenza al minimo globale è impossibile, si misura la qualità come "quanto è buono il minimo locale" = "quanto è piccolo il SOD finale". Entrambi i metodi avevano la stessa qualità.

Si noti che è importante utilizzare un metodo randomizzato se si desidera utilizzare le repliche per migliorare la qualità.


Grazie. Mi occuperò di dati di grandi dimensioni, quindi questo è abbastanza utile.
Arin Chaudhuri,
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.