K-mean non è un algoritmo di clustering basato sulla distanza .
K-significa ricerca della somma minima di assegnazione dei quadrati , ovvero minimizza la varianza non normalizzata (= total_SS
) assegnando punti ai centri del cluster.
Per far convergere k-medie, sono necessarie due condizioni:
- la riassegnazione dei punti riduce la somma dei quadrati
- ricalcolare la media riduce la somma dei quadrati
Poiché esiste solo un numero finito di combinazioni, non è possibile ridurre all'infinito questo valore e l'algoritmo deve convergere a un certo punto in un ottimale locale .
Ogni volta che intendi cambiare le funzioni di assegnazione, hai il rischio di non interrompere più l'algoritmo, come un cane che insegue la propria coda. In sostanza, entrambi i passaggi devono concordare la funzione obiettivo. Sappiamo che la media aritmetica è la scelta ottimale rispetto alla somma dei quadrati . E per il primo passo, possiamo semplicemente calcolare per ogni media e scegliere quale sia il minimo. Tecnicamente, non esiste un calcolo della distanza qui . Matematicamente, l'assegnazione della somma minima dei quadrati equivale all'assegnazione di una distanza euclidea quadrata chiusa, che (se si sprecano i cicli della CPU per il calcolo ) equivale a un'assegnazione minima della distanza euclidea. Quindi l' intuizione j∑i(xi−μji)2jsqrt
di assegnare ogni punto alla media più vicina è corretto, ma non ciò che fa il problema di ottimizzazione.
between_SS
probabilmente è la somma ponderata dei quadrati tra due mezzi, per misurare la separazione dei centri del cluster (nota: centri del cluster, non confronta i cluster effettivi - tecnicamente, la cella Voronoi del cluster tocca la cella Voronoi dei cluster vicini).
Nota che con k-significa che puoi migliorare la qualità ingenua del cluster aumentando k. La qualità misurata qui è un valore matematico, che potrebbe non corrispondere ai requisiti degli utenti. L'iride è in realtà un buon esempio, in cui k-mean converge spesso a risultati non soddisfacenti, anche dato l'informazione esterna che dovrebbero esserci esattamente 3 cluster.
Se vuoi una variazione basata sulla distanza di k-medie , guarda i k-medoidi . Qui la convergenza è assicurata sostituendo la media con il medoide:
- Ogni oggetto è assegnato al cluster più vicino (da una misura di distanza arbitraria)
- Il centro del cluster viene aggiornato sull'oggetto più centrale del cluster, ovvero con la distanza media più piccola rispetto a tutti gli altri.
In ogni passaggio, la somma delle distanze si riduce; esiste un numero finito di combinazioni, pertanto l'algoritmo deve terminare al minimo locale.