K-Means Clustering

Laboratorio di clustering K-Means

Simulatore interattivo 2D con regioni di Voronoi, aggiornamento dei centroidi e tracciamento dell inerzia.

K-Means partiziona i dati in K cluster minimizzando la distanza quadratica intra-cluster (inerzia).

$$ J = \sum_{i=1}^{N} \min_{1 \leq j \leq K} \left\lVert x_i - \mu_j \right\rVert^2 $$

Ogni campione e assegnato al centroide piu vicino, poi i centroidi sono ricalcolati come media dei campioni assegnati.

L algoritmo alterna due passi deterministici:

$$ c_i \leftarrow \arg\min_j \lVert x_i - \mu_j \rVert^2 $$

$$ \mu_j \leftarrow \frac{1}{|C_j|}\sum_{x_i \in C_j} x_i $$

L inerzia diminuisce in modo monotono fino alla convergenza a un ottimo locale.

L inizializzazione casuale e semplice ma puo partire da semi scadenti.

k-means++ distribuisce i centroidi iniziali, spesso ottenendo convergenza piu rapida e inerzia finale piu bassa.

In produzione usa piu run con semi diversi per ridurre la sensibilita ai minimi locali.

  1. Carica punti demo, poi confronta Random vs k-means++.
  2. Prova diversi valori di K e osserva confini e dimensioni dei cluster.
  3. Usa Step per vedere un ciclo di assegnazione/aggiornamento alla volta.
  4. Esegui fino alla convergenza e confronta i valori finali di inerzia tra le impostazioni.

Clicca sulla canvas per aggiungere punti. Su touch fai pressione prolungata o clic destro per rimuovere il punto piu vicino.

Stato
Punti: 0
K: 3
Iterazione: 0
Inerzia: -
Spostamento centroidi: -
Curva di inerzia
Riepilogo cluster