Základy shlukování k-means

Cluster Analysis in Python

Shaumik Daityari

Business Analyst

Proč shlukování k-means?

  • Hlavní nevýhoda hierarchického shlukování: výpočetní náročnost
  • K-means je na velkých datasetech výrazně rychlejší
Cluster Analysis in Python

Krok 1: Generování středů shluků

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: standardizovaná pozorování
  • k_or_guess: počet shluků
  • iter: počet iterací (výchozí: 20)
  • thres: prahová hodnota (výchozí: 1e-05)
  • check_finite: zda ověřit, že pozorování obsahují pouze konečná čísla (výchozí: True)

Vrací dva objekty: středy shluků, zkreslení

Cluster Analysis in Python

Jak se počítá zkreslení?

Cluster Analysis in Python

Krok 2: Generování štítků shluků

vq(obs, code_book, check_finite=True)
  • obs: standardizovaná pozorování
  • code_book: středy shluků
  • check_finite: zda ověřit, že pozorování obsahují pouze konečná čísla (výchozí: True)

Vrací dva objekty: seznam štítků shluků, seznam zkreslení

Cluster Analysis in Python

Poznámka ke zkreslení

  • kmeans vrací jednu hodnotu zkreslení
  • vq vrací seznam zkreslení.
Cluster Analysis in Python

Spuštění 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()
Cluster Analysis in Python

Cluster Analysis in Python

Nyní: cvičení!

Cluster Analysis in Python

Preparing Video For Download...