Basis van k-means-clustering

Clusteranalyse in Python

Shaumik Daityari

Business Analyst

Waarom k-means-clustering?

  • Een groot nadeel van hiërarchisch clusteren: rekentijd
  • K-means is veel sneller op grote datasets
Clusteranalyse in Python

Stap 1: Clustercentra genereren

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: gestandaardiseerde observaties
  • k_or_guess: aantal clusters
  • iter: aantal iteraties (standaard: 20)
  • thres: drempel (standaard: 1e-05)
  • check_finite: controle of observaties alleen eindige waarden bevatten (standaard: True)

Retourneert twee objecten: clustercentra, distortie

Clusteranalyse in Python

Hoe wordt de distortie berekend?

Clusteranalyse in Python

Stap 2: Clusterlabels genereren

vq(obs, code_book, check_finite=True)
  • obs: gestandaardiseerde observaties
  • code_book: clustercentra
  • check_finite: controle of observaties alleen eindige waarden bevatten (standaard: True)

Retourneert twee objecten: een lijst met clusterlabels, een lijst met distorties

Clusteranalyse in Python

Opmerking over distorties

  • kmeans retourneert één waarde voor distortie
  • vq retourneert een lijst met distorties.
Clusteranalyse in Python

K-means draaien

# 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()
Clusteranalyse in Python

Clusteranalyse in Python

Daarna: oefeningen!

Clusteranalyse in Python

Preparing Video For Download...