K-significa: quante iterazioni in situazioni pratiche?


10

Non ho esperienza nel settore del data mining o dei big data, quindi mi piacerebbe sentirti condividere qualche esperienza.

Le persone eseguono effettivamente k-mean, PAM, CLARA, ecc. Su un set di dati davvero grande? Oppure scelgono a caso un campione da esso? Se prendessero solo un campione del set di dati, il risultato sarebbe affidabile se il set di dati non fosse normalmente distribuito?

In situazioni pratiche durante l'esecuzione di questi algoritmi, possiamo dire quante iterazioni normalmente impiegherebbero fino a quando non si verifica la convergenza? O il numero di iterazioni aumenta sempre con la dimensione dei dati?

Lo sto chiedendo perché sto pensando di sviluppare un approccio per terminare gli algoritmi iterativi prima della convergenza, eppure i risultati sono ancora accettabili. Penso che valga la pena provare se il numero di iterazioni è, diciamo più di 1.000, in modo da poter risparmiare un po 'di tempo e costi computazionali. Cosa ne pensi?


number of iterations always grow with the data sizeNon necessariamente.
ttnphns,

Esistono vari criteri per fermare le iterazioni in K-medie. È interessante notare che semplicemente impostare il numero di iterazioni su un valore fisso (diciamo 10 o 20) è tra i modi ragionevoli. K-mean è dedicato ad essere un metodo veloce, quindi se si desidera verificare un criterio di convergenza dopo ogni iterazione, tale criterio deve essere facile / veloce da calcolare.
ttnphns,

1
Esiste un modo "scientifico" per determinare il numero massimo di iterazioni da eseguire?
pippo

Il tuo ultimo commento è una buona domanda. Onestamente, non lo so. forse altre persone rispondono.
ttnphns,

Risposte:


6
  1. K-significa che è economico. Puoi permetterti di eseguirlo per molte iterazioni.

  2. Ci sono algoritmi cattivi (quello standard) e buoni algoritmi. Per buoni algoritmi, le iterazioni successive costano spesso molto meno dell'1% della prima iterazione.

  3. Ci sono implementazioni molto lente. Non usarli.

  4. K significa che i dati "grandi" non esistono. Perché funziona solo su dati vettoriali a bassa dimensione. Non supererai la memoria di un server moderno con tali dati. sì, esistono dati più grandi, ma non puoi usare k-mean su un mese di dati Twitter, perché non ti darà nulla di utile.

Con una buona implementazione, su un server moderno, il set di dati più grande che puoi trovare dove k-mean fornisce ancora un risultato utile probabilmente richiede meno di 1 minuto per il calcolo fino alla convergenza. Quindi perché preoccuparsi di pensare a un limite di iterazione?


1
Essere d'accordo. In questo articolo ( K-medie scalabili per recupero classificato ), gli autori hanno dichiarato che K-significa converge dopo 20-50 iterazioni in tutte le situazioni pratiche, anche su set di dati ad alta dimensione durante il test. Quindi, a parte i mezzi K, conosci qualche algoritmo che richiede un numero enorme di iterazioni fino alla convergenza?
Foo

Forse allenando un SVM? Credo che sia iterativo, cercare di trovare il migliore (e il più piccolo, poiché la previsione dipende da questo!) Insieme di vettori di supporto.
Ha QUIT - Anony-Mousse il

La soluzione ovvia all'esecuzione di k-mean su set di dati ad alta dimensione è eseguire prima PCA o altri metodi di riduzione della dimensionalità, quindi eseguire k-
mean
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.