Bazele clusterizării k-means

Analiza clusterelor în Python

Shaumik Daityari

Business Analyst

De ce clusterizare k-means?

  • Un dezavantaj major al clusterizării ierarhice: durata de execuție
  • K-means rulează semnificativ mai rapid pe seturi mari de date
Analiza clusterelor în Python

Pasul 1: Generarea centrilor clusterelor

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: observații standardizate
  • k_or_guess: numărul de clustere
  • iter: numărul de iterații (implicit: 20)
  • thres: prag (implicit: 1e-05)
  • check_finite: verifică dacă observațiile conțin doar numere finite (implicit: True)

Returnează două obiecte: centrii clusterelor, distorsiunea

Analiza clusterelor în Python

Cum se calculează distorsiunea?

Analiza clusterelor în Python

Pasul 2: Generarea etichetelor de cluster

vq(obs, code_book, check_finite=True)
  • obs: observații standardizate
  • code_book: centrii clusterelor
  • check_finite: verifică dacă observațiile conțin doar numere finite (implicit: True)

Returnează două obiecte: o listă de etichete de cluster, o listă de distorsiuni

Analiza clusterelor în Python

Notă despre distorsiuni

  • kmeans returnează o singură valoare a distorsiunii
  • vq returnează o listă de distorsiuni.
Analiza clusterelor în Python

Rularea 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()
Analiza clusterelor în Python

Analiza clusterelor în Python

Urmează exerciții!

Analiza clusterelor în Python

Preparing Video For Download...