Prova di convergenza di k-medie


20

Per un incarico mi è stato chiesto di fornire una prova che k-mean converge in un numero finito di passaggi.

Questo è quello che ho scritto:

C

E(C)=ΣXminio=1KX-cio2
E(C)

Il passaggio 2 si riferisce al passaggio che etichetta ciascun punto dati in base al centro cluster più vicino e il passaggio 3 è il passaggio in cui i centri vengono aggiornati prendendo una media.

Ciò non è sufficiente per dimostrare la convergenza in un numero finito di passaggi. L'energia può continuare a ridursi, ma non esclude la possibilità che i punti centrali possano saltare senza cambiare molto l'energia. In altre parole, potrebbero esserci più minimi energetici e l'algoritmo può saltare tra di loro, no?


5
Suggerimento: quante possibili raccolte di punti centrali possono esserci?
whuber

Risposte:


34

Innanzitutto, esistono al massimo modi per partizionare punti dati in cluster; ciascuna di queste partizioni può essere definita un "clustering". Questo è un numero grande ma finito. Per ogni iterazione dell'algoritmo, produciamo un nuovo clustering basato solo sul vecchio clustering. Notare cheKNNK

  1. se il clustering precedente è uguale al nuovo, il clustering successivo sarà nuovamente lo stesso.
  2. Se il nuovo clustering è diverso dal vecchio, il nuovo ha un costo inferiore

Poiché l'algoritmo esegue l'iterazione di una funzione il cui dominio è un insieme finito, l'iterazione deve infine entrare in un ciclo. Il ciclo non può avere una lunghezza maggiore di perché altrimenti (2) si avrebbe un cluster che ha un costo inferiore rispetto a se stesso impossibile. Quindi il ciclo deve avere una lunghezza esattamente . Quindi k-significa converge in un numero finito di iterazioni.11


Perché l'ordine conta? Cioè, perché non abbiamo sceglie clustering? NK
rrrrr,

@rrrrr La formula corretta è dove è un numero Stirling del secondo tipo . Non importa perché ho detto al massimo . {nK}{nK} KN
jkabrg,

6

Per aggiungere qualcosa: se l'algoritmo converge o meno dipende anche dal criterio di arresto. Se interrompi l'algoritmo una volta che le assegnazioni del cluster non cambiano più, allora puoi effettivamente dimostrare che l'algoritmo non converge necessariamente (a condizione che l'assegnazione del cluster non abbia un breaker deterministico nel caso in cui più centroidi abbiano la stessa distanza).

inserisci qui la descrizione dell'immagine

Qui hai 8 punti dati (punti) e due centroidi (croci rosse). Ora i punti di dati verdi hanno la stessa distanza sia dal centroide sinistro che destro. Lo stesso vale per i punti dati blu. Supponiamo che la funzione di assegnazione non sia deterministica in questo caso. Inoltre supponiamo che all'iterazione 1 i punti verdi siano assegnati al cluster sinistro e i punti blu siano assegnati al cluster destro. Quindi aggiorniamo i centroidi. Si scopre che in realtà rimangono nello stesso posto. (questo è un calcolo semplice. Per il centroide di sinistra calcolate la media delle coordinate dei due punti neri di sinistra e dei due punti verdi -> (0, 0,5). Lo stesso per il centroide di destra).

Quindi all'iterazione 2 la situazione appare di nuovo la stessa, ma ora assumiamo che la nostra funzione di assegnazione non deterministica (in caso di legami) assegni i punti verdi al cluster destro e i punti blu al cluster sinistro. Anche in questo caso i centroidi non cambieranno.

L'iterazione 3 è di nuovo la stessa dell'iterazione 1. Quindi abbiamo un caso in cui le assegnazioni dei cluster cambiano continuamente e l'algoritmo (con questo criterio di arresto) non converge.

Fondamentalmente abbiamo solo la garanzia che ogni passaggio in k-mean riduce il costo o lo mantiene uguale (ovvero anziché ). Questo mi ha permesso di costruire un caso in cui il costo rimane lo stesso attraverso iterate, anche se l'assegnazione cambia ancora.<

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.