Hoeveel clusters?

Clusteranalyse in Python

Shaumik Daityari

Business Analyst

Hoe vind je de juiste k?

  • Geen absolute methode om het juiste aantal clusters (k) in k-means te vinden
  • Elbow-methode

Clusteranalyse in Python

Distortions herzien

  • Distortion: som van gekwadrateerde afstanden van punten tot clustercentra
  • Neemt af bij meer clusters
  • Wordt nul als het aantal clusters gelijk is aan het aantal punten
  • Elbow-plot: lijngrafiek tussen aantal clusters en distortion

Clusteranalyse in Python

Elbow-methode

  • Elbow-plot: plot van aantal clusters en distortion
  • Elbow-plot helpt het aantal clusters in de data inschatten
Clusteranalyse in Python

Elbow-methode in Python

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Clusteranalyse in Python

Clusteranalyse in Python

Laatste opmerkingen over de elbow-methode

  • Geeft alleen een indicatie van optimale k (aantal clusters)
  • Bepaalt niet altijd precies hoeveel k (aantal clusters)
  • Andere methoden: gemiddelde silhouette en gapstatistiek
Clusteranalyse in Python

Hierna: oefeningen

Clusteranalyse in Python

Preparing Video For Download...