Basi del clustering k-means

Analisi di cluster in Python

Shaumik Daityari

Business Analyst

Perché il clustering k-means?

  • Un limite del clustering gerarchico: i tempi di esecuzione
  • K-means è molto più veloce su dataset grandi
Analisi di cluster in Python

Passo 1: Genera i centroidi

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: osservazioni standardizzate
  • k_or_guess: numero di cluster
  • iter: numero di iterazioni (default: 20)
  • thres: soglia (default: 1e-05)
  • check_finite: controlla che le osservazioni siano numeri finiti (default: True)

Restituisce due oggetti: centroidi, distorsione

Analisi di cluster in Python

Come si calcola la distorsione?

Analisi di cluster in Python

Passo 2: Genera le etichette di cluster

vq(obs, code_book, check_finite=True)
  • obs: osservazioni standardizzate
  • code_book: centroidi
  • check_finite: controlla che le osservazioni siano numeri finiti (default: True)

Restituisce due oggetti: elenco di etichette di cluster, elenco di distorsioni

Analisi di cluster in Python

Nota sulle distorsioni

  • kmeans restituisce un singolo valore di distorsione
  • vq restituisce un elenco di distorsioni.
Analisi di cluster in Python

Esecuzione di k-means

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Analisi di cluster in Python

Analisi di cluster in Python

Ora: esercizi!

Analisi di cluster in Python

Preparing Video For Download...